John-von-Neumann Architektur
Grundsteine
Programmierbarkeit
Daten & Programme im gleichen Speicher
Daten werden über berechenbare Adressen angesprochen
Erweiterbarkeit
Nachteile:
Eingeschränkte Echtzeitfähigkeit
Flaschenhals Speicherzugriff
Bestandteile
CPU
Steuerwerk
Rechenwerk
Hauptspeicher
Ein-/Ausgabewerk (I/O)
Bussystem
Befehlsverarbeitung
Was ist ein Bus?
Ein Bus ist ein gemeinsamer Datenweg, an den mehrere Funktionseinheiten angeschlossen werden können.
Dabei ist es egal, ob die Funktionseinheiten externe Geräte, Einheiten auf einem Motherboard oder sogar auf einem Mikroprozessor-Chip sind.
Ein Bus besteht aus Steuer-, Adress- und Datenleitungen.
Zu jedem Zeitpunkt kann nur eine der angeschlossenen Einheiten den Bus nutzen um Adressen, Daten oder Befehle zu übertragen.
Ein Bussystem kann mehrere Signalleitungen haben, die parallel genutzt werden können.
Hardware Interrupt
asynchron (wird von einer Komponente ausgelöst)
nicht vorhersagbar
meist nicht reproduzierbar
Beispiele
Taste wird gedrückt
Timer ist abgelaufen
Software Interrupt
synchron (wird von einem Prozess ausgelöst)
vorhersagbar
i.d.r. reproduzierbar
kein Hardware-Interrupt
Beispiel
Systemaufrauf
Division durch 0
Exception
vom Prinzip her ein Software-Interrupt
aber nicht immer vorhersagbar (z.B. bei Fehlverhalten des Prozesses)
Womit werden Interrupts verarbeitet?
Mit Hilfe von Interrupt Service Routinen (ISR)
Manchman auch genannt:
Interrupthandler
Unterbrechungsroutine
Unterbrechungsbehandlung
Was ist der Interruptvektor?
Die Adresse, an der der Code steht.
Welcher Ablauf wird innerhalb der ISR eingehalten?
weitere Interrupts verhindern
Zustand des unterbrochenen Prozesses sichern
Anforderung des Interrupts bearbeiten
andere Interrupts wieder zulassen
unterbrochenen Prozess wiederherstellen und fortsetzen
Wie wird der Code außerhalb des normalen Programmflusses bei einem Interrupt ausgeführt?
Die CPU fordert Daten von einem ext. Gerät, z. B. einer Festplatte
Wenn die Antwort vorliegt, wird der Controller benachrichtigt
Der Controller meldet die Anforderung an den Prozessor (Direkte Leitung!)
Die Steuerung wird an eine definierte Position im Kernel übergeben, die Interrupt-Service-Routine (ISR).
Zuletzt geändertvor einem Jahr