<< 2.1 System-Architekturen | Index | 2.3 Ressourcen-Klassifikation >>


2.2 Interrupt und Systemaufruf

  • Aktuelle Betriebssysteme arbeiten ereignisgesteuert
  • Auftreten eines Ereignisses wird durch einen Interrupt? signalisiert
    • Bei Hardware (z. B. I/O): dedizierte Interrupt-Leitungen/-Busse
    • Bei Software über System-Calls?

Interrupts

  • Betriebssystem verwaltet Tabelle mit den Adressen (Interrupt-Vektor?) der Funktionen, die bei den jeweiligen Interrupts aufgerufen werden sollen (Interrupt-Handler?)
  • Abfolge einer Interrupt-Behandlung:
    1. Interrupt wird signalisiert, CPU unterbricht laufendes Programm
    2. CPU wechselt in den priviligierten System-Modus (Register, PC, usw. des vorherigen Programmes werden gespeichert)
    3. Suche nach dem Interrupt-Handler in der Interrupt-Vektor-Tabelle
    4. Ausführung der Handler-Routine
    5. Wiederherstellen von Register und PC, Fortsetzen des ursprünglichen Programmes

System-Calls (Systemaufruf)

  • Analogie zum Interrupt, jedoch Software-Unterbrechung
  • Dient als Schnittstelle zwischen Betriebssystem und Prozessen
  • Auszuführender System-Dienst wird über Nummer identifiziert
  • Ablauf eines System-Calls:
    1. Nummer des System-Dienstes wird in ein Register gespeichert, Funktionsparameter werden entweder direkt oder als Pointer auf dem Stack gelegt
    2. Aufruf einer trap-Funktion führt zu Modus-Wechsel und übergibt Kontrolle an Betriebssystem
    3. Betriebssystem unterbricht aufrufendes Programm und sichert Status (Register, PC)
    4. Suchen der Adresse der System-Funktion über die Dienst-Nummer in einer Tabelle
    5. Ausführen der System-Funktion
    6. Wiederherstellen des Programm-Status, Fortsetzen des Programms

Nach oben

Zuletzt geändert am 26 Februar 2005 22:04 Uhr von chrschn