Informatik (Subject) / Rechnerarchitektur (Lesson)
There are 28 cards in this lesson
d
This lesson was created by Tahl.
This lesson is not released for learning.
- Programme Folge von Instruktionen kodiert in Binärform Ausführung von Programmen: logische Manipulation der Binärdaten des Programms Programme lassen sich behandeln wie andere Daten
- Von Neumann Modell abstraktes Muster für prinzipielle Organisation von Computern Statt für jedes neue Problem eine neue Maschine zu bauen gibt es eine problemunabhängige Maschine. Jedes neue Lösungsverfahren wird als neues Programm realisiert, welches im Speicher der Maschine abgelegt wird Eingabe/Ausgabe Datenbusse zu CPU(Steuerwerk, Rechenmwerk) Datenbuss zum Speicher
- Harvard Modell Gleichzeitiges Lesen von Anweisungen und Daten (durch getrennte Speicher) höhere Verarbeitungsgesch einfacherer Schutz von Speicher/Zugriffsrechten Problem durch Parallelität
- Hauptspeicher unterteilt in 2hochn Speicherzellen (Maschinenworte) Speicherzelle besteht aus gleicher Anzahl bits (16,32,64) werden als ganzes ausgelesen oder überschrieben
- Busse Datenleitungen, die die einzelnen Elemente miteinander verbinden (z.B.: USB) Breite des Buses definiert wie viel Bit gleichzeitig übertragen werden können Überschreiben: Kopiert Wert in Speicher Auslesen: Kopieren eines Wertes aus Speicher (ohne zu verändern)
- CPU Steuerwerk: Steuert Ausführung von Programmen (Programmzähler) Rechenwerk: Erledigt die logischen und arithmetischen Datenmanipulationen (auch ALU) --> Register Daten Programmanweisungen zur unmittelbaren Verarbeitung durch CPU Taktgeber gibt Takt vor, nach dem sich alle Operationen richten
- Ausführung von Programmen Durch das Steuerwerk: Jede Instruktion in einem Programm belegt ein Maschinenwort Programmzähler enthält Adresse der nächst auszuführenden Instruktion Ausführung Instruktion Inhalt der Adresse auf der Programmzähler steht auslesen ins Steuerwerk Bitmuster durchläuft logische Schaltung des Steuerwerks und kofiguriert richtige Schaltung um Daten auslesen zu können Daten werden aus Speicherzellen(deren Ausgangskanäle geöffnet wurden) in CPU ausgelesen Daten in CPU verarbeitet (durch logische Verschaltung) Ergebnis wird an Speicherstelle abgelegt, deren Eingangskanal zur CPU geöffnet wurde
- Inhalt Instruktionen welche Daten und wo zu finden wie müssen logische Verschaltungen der CPU konfiguriert werden, damit arithmetisch-logische Operationen durchgeführt werden an welche Hauptspeicheradresse Ergebnisse abzulegen sind
- Serielle Rechnerarchitektur einzelne Computer mit einer CPU Aufgabe in diskrete Anwendung/Instruktion zerlegen nacheinander ausführen zu jedem Zeitpunkt eine Anweisung
- Parallele Rechenarchitektur Gleichzeitige Nutzung verschiedener Berechnungsressourcen zu Leistungssteigerung ohne Takt steigern zu müssen: Darstellung komplexer, zur selben Zeit stattfindender Prozesse in der Natur Problem in diskrete Teile (gleichzeitig lösbar) Jedes Teil in Anweisungen zerlegen Instruktionsketten werden gleichzeitig abgearbeitet Sinnvoll wenn Berechnungszeit dadurch sinkt Darstellung durch: mehrere Prozessoren, über Kommunikationsnetz verbundene Computer
- Arten paralleler Rechnerarchitektur Einfache Daten Einfache Anweisungen (Von Neumann) Ein Befehl/Datenstrom pro Taktzyklus, deterministisch Multiple Daten und Anweisungen(MIMD) Pro CPU unterschiedliche Befehle und Daten SIMD MISD
- Maschinencode Code, den der Rechner ohne Übersetzung oder anderweitige Umwandlungen bzw. Konvertierungen direkt verarbeiten kann. Allen Sorten von Maschinencode ist gemeinsam sie enthalten Bits zur Identifikation der Rechenoperation enthalten Adressierungsmechanismus enthalten bedingte oder unbedingte Überschreibung von Programmzählern (Sprungbefehle) zur flexiblen abarbeitung von Programmen
- Sprungbefehle Normalerweise Instruktionen eines Programms nacheinander abgelegt (Instruktion beendet indem Counter +1) Sprungbefehle setzen Programmzähler auf anderen Wert logischer Ausdruck auswerten --> wahr sprung sonst +1 Sprachkonstrukte in Java werden in Sprungbefehle umgesetzt If while For Methodenaufruf, Beenden von Methoden
- Speicherhierachie CPU Register Cache Hauptspeicher Sekundär/Archivspeicher
- Cache Reaktion auf Von Neumannschen Flaschenhals (Zugriff auf Hauptspeicher determiniert die Ausführungsgeschwindigeit von Instruktionen) und Lokalitätsverhalten (Daten auf denen ein Programm arbeitet lassen sich in linerare abfolge bringen: Maschinenworte auf die nacheinander zugegriffen werden liegen nahe beieinander) kleiner Zwischenspeicher schnelle Transferzeit nicht nur einzelnes Maschinenwort wird aus Hauptspeicher in Cache geladen sondern Sequenz von Maschinenworten) wenn CPU anwortet wird als erstes im Cache geschaut
- Sekundärspeicher Festplatte permanente Speicherung, hohe Kapazität, hohe Zugriffszeit immer größere Speicherbereiche einlesen (Clustering) Datenbanksysteme
-
- Wozu Prozessmodelle Zur Planung und Struckturierung von Softwareprojekten. Diese können sehr komplex ausfallen. Bei schlechter Planung ist nicht sichergestellt, das Programme am Ende das machen, was sie sollen und es können ungeahnte Kosten entstehen
- Wasserfallmodell Naiver Ansatz (Wasserfallmodell) 1) Analyse des Problems 2) Planung einer Lösung durch Verfeinerung a. Klassendefinition b. fügen sukzessive Methoden dazu c. vorerst einmal ohne sie tatsächlich umzusetzen 3) Implementierung Testen
- Nachteile Wasserfallmodell Was sind Nachteile eines Wasserfallmodells: Wenn beim Testen festgestellt wird, dass etwas nicht richtig funktioniert oder sich Anforderungen an die Software verändern, muss man das erneuWasserfallmodell meist t durchlaufen, um dieses Problem beheben zu können. Z.B.: sollte festgestellt werden, dass der Fehler bereits in der Analyse der Systemanforderungen gemacht wurde, wird dies mit dem Modell erst spät erkannt (kurz vor der Einführung). Da Prozess nun noch mal durchlaufen werden muss kostet dies sehr viel Zeit è Verbesserung: Wenn man bei einem Schritt Problem feststellt wieder einen Schritt zurück gehenà Iteratives Wasserfallmodell
- V Modell XT Ebenfalls Wasserfallartiger ablauf, aber Validierung verschiedener Komponenten an verschiedenen Stellen möglich D.H.: Wenn das System integriert ist, kann man direkt schauen, ob der Systementwurf richtig ist Eignet sich sehr gut zur Dokumentation des Gesamten Prozesses der Projektentwicklung startend mit der Genehmigung des Projektes (Softwareentwicklung nur ein kleiner Ausschnitt)
- Rational Unified Process MOdell Metamodell der Softwarentwicklung. Einzelne Phasen werden iterativ durchlaufen um Fehler möglichst frühzeitig erkennen zu können Das Produkt wächst von Phase zu Phase Einteilung von Phasen (die sich überlappen können, nicht diskret) 1) Reception: Ausformulierung, was Ziel ist 2) Elaboration Planung und Konstruktion Prototyp 3) Construction: konkrete Umsetzung und Teile des Testens 4) Transition: Übergang zum Kunden Jede Iteration besteht aus neun Arbeitsschritten Verschiedene Disziplinen (ähnlich des Wasserfallmodell) (Vorraussetzungen, Analyse, Implementierung) Disziplinen werden in den 4 Phasen unterschiedlich stark berücksichtigt Darüber hinaus werden Rollen (wer), Produkte (Was) und Aufgaben(Wie wird was gemacht) festgelegt
- Extreme Programming Extreme Programming · Kurze Entwicklungszyklen · Häufiges Feedback mit dem Kunden (hierdurch mglw. ändernde Spezifikationen) o Feedback · Häufige Interaktion der Entwickler · Arbeiten in Paaren (intensives Testen, Review) o Einer schreibt, der andere reviewt Funktioniert für kleine Teams
- SCrum Product Owner: Möchte Produkt (legt Anforderung fest) Team: Entwickelt Produkt (trifft sich alle 24 Stunden) · 9-5 Personen mit versch. Fähigkeiten · Selbstorganisation (jeder wählt Aufgabe selbst aus) Master: Orchestriert Prozess (moderiert Scrum Meeting) Endnutzer: wird Programm später benutzen Sprint 2-4 Wochen Zyklus · Planungsmeeting · Entwurf, Kodierung, Test des Produkt Inkrements (nicht nacheinander sondern parallel) · keine Änderung während des Sprints · Tägliches Meeting (15 min): Information, wie weit man ist (Was getan, was wird tun, wo Hindernisse) · Sprint Review: Betrachtung des im Sprint erreichten (Was besser machen) Product Backlog: Sammlung verschiedener Features daraus wird Sprint Ziel (4 Wochen) ausgesucht Sprint Backlog: Zerlegung des Sprint Ziels in Teilaufgaben, die in 1-16 Stunden erledigt werden können (durch ganzes Team) à Schätzung der Zeit für einzelne Aufgaben Burndown Diagramm: Geschätzte Gesamttätigkeitszeit die noch bleibt Charakteristika · Selbst-organisierende Teams · Produkt schreitet in Serien / Abschnitten von monatlichen Sprints fort (analog Iteration) o Sprintdauer 2-4Wochen (Man möchte nicht Endprodukte auf einmal fertigen) · Anforderungen sind als Listeneinträge im Product Backlog festgehalten · Keine spezifische Entwicklungsmethode vorgeschrieben. stattdessen: · Generative Regeln um ein agiles Umfeld für die Auslieferung von Produkten zu schaffen
- Unterschied Scrum zu sonstigem Bei den meisten Softwarentwicklungsmethoden: · Prozesse, Werkzeuge vorgegeben · Dokumentation · Vertragsverhandlungen · Verfolgung festgelegter Plan Bei Scrum: · Individuen, Interaktion · Funktionierende Software · Kooperation mit Projektbetroffenen · Reaktion auf Änderungen
- Komplementärfarben CMY RGB
- Bilder Bilder: Matrizen/Tabellen aus Farbwerten (RGB-Tripel, einzelne Helligkeitswerte) Jeder Farbwert bezeichnet einen Bildpunkt, ein sogenanntes Pixel ( = Picture Element). · Position in der Matrix bestimmt seinen Ort im Bild. · das zugeordnete RGB-Tripel definiert den Farbwert Die Größe der Matrix ist die Größe des Bildes
- Speicherung Bilder Speicherung von Bildern Problem: Computer Speicher sind eindimensional, Bilder 2D · Farbwerte der Pixel werden einfach hintereinander gesetzt. · Am Anfang der Datei (,,im Header”) wird vermerkt, wie lang eine Zeile des Bildes ist. · Daraus kann das eigentliche Bild wiederhergestellt werden Header: Dateiformat (komprimiert, nicht komprimiert), Kommentare zum Inhalt, Datum Aufnahme, andere Hinweise
- Vektorgrafik Vektorgrafiken: Bilder werden nicht in Punkte(Pixel) zerlegt, sondern in geometrische Basiselemente (Punkte, Linien, Polygone, Kurven) è Diese lassen sich leichter skalieren