Prof. Dr. Peter Mandl Seite 1
Interruptverarbeitung in Betriebssystemen
Sommersemester 2015
Prof. Dr. Peter Mandl
Prof. Dr. Peter Mandl Seite 2
Gesamtüberblick
1. Einführung in Computersysteme
2. Entwicklung von Betriebssystemen
3. Architekturansätze
4. Interruptverarbeitung in Betriebssystemen
5. Prozesse und Threads
6. CPU-Scheduling
7. Synchronisation und Kommunikation
8. Speicherverwaltung
9. Geräte- und Dateiverwaltung
10. Betriebssystemvirtualisierung
Interruptklassen
Faults
Traps
Unterbrechung vor der Ausführung, z. B. Page Fault = Seitenfehler
Unterbrechung vor der Ausführung, z. B. Division durch 0
Exceptions Systemcalls (Software-Interrupts)
Synchrone Interrupts (vorhersehbar und auch
reproduzierbar)
Asynchrone Interrupts (nicht vorhersehbar und auch
nicht reproduzierbar)
Prof. Dr. Peter Mandl Seite 3
Zielsetzung
Konzepte und Abläufe der Interruptverarbeitung in Betriebssystemen kennenlernen und verstehen
Unterscheidung der verschiedenen Interrupt-Klassen vornehmen können
Ablauf eines asynchronen Interrupts erläutern können
Ablauf eines (synchronen) Systemcalls erläutern können
Prof. Dr. Peter Mandl Seite 4
1. Begriffe und Klassifizierung
2. Zusammenspiel der Komponenten
3. Systemdienste und Systemcalls
Überblick
Prof. Dr. Peter Mandl Seite 5
Polling
Polling => Busy Waiting (aktives Warten)
while() {
for (alle Geräte) {
if (Gerät[i].Ready-Bit == 1 ) {
doAction();
}
}
}
Ready-Bit = 1 bedeutet, Gerät ist bereit, es sind z.B. Daten abzuholen
CPU
Gerät 1 Ready-Bit
Gerät 2 Ready-Bit
Gerät n Ready-Bit
…
Prof. Dr. Peter Mandl Seite 6
Interrupt
Interrupt = Unterbrechung = Trap
Abgrenzung zu Polling
- Kein aktives Abfragen von Ereignisquellen
Gründe für Interrupts:
- Betriebssystembedingungen
- Asynchrone Ereignisse
Verursacher: Hardware oder Software
Abschaltung (Maskierung) von Interrupts ist möglich, sollte aber für sehr kurze Zeit sein
Manchmal unbedingt erforderlich (siehe später
Interrupt Service Routinen)
Prof. Dr. Peter Mandl Seite 7
Synchron und asynchron
Synchrone Interrupts: Von der CPU ausgelöste Ausnahmen (für das laufende Programm gedacht)
- Division durch 0
- Speicherzugriffsverletzung
Asynchrone Interrupts: Treten unabhängig davon auf, was das System gerade ausführt
- Netzwerkadapter meldet ankommende Nachricht
- Plattenspeicher meldet Zustellung eines Blocks
Prof. Dr. Peter Mandl
Interrupt-Klassifizierung
Interruptklassen
Asynchrone Interrupts
(nicht vorhersehbar und auch
nicht reproduzierbar)
Synchrone Interrupts
(vorhersehbar und auch
reproduzierbar)
Exceptions
Systemcalls
(auch als Traps oder Software-
Interrupts bezeichnet)
Faults
Traps
Unterbrechung vor der Ausführung,
z.B. Page Fault = Seitenfehler
Unterbrechung nach der Ausführung,
z.B. Division durch 0
Seite 8
Prof. Dr. Peter Mandl Seite 9
1. Begriffe und Klassifizierung
2. Zusammenspiel der Komponenten
3. Systemdienste und Systemcalls
Überblick
Prof. Dr. Peter Mandl Seite 10
Interrupt-Bearbeitung: Zusammenspiel
Bus
Interrupt Controller
Festplatte
3: CPU-Handling CPU
Clock
Tastatur
Drucker
2: Interrupt
1: Gerät ist fertig
Interrupts führen dazu, dass Code außerhalb des normalen Programmflusses ausgeführt wird
Steuerung wird an eine definierte Position im Kernel übergeben Interrupt-Service-
Routine (ISR)
Prof. Dr. Peter Mandl Seite 11
Interrupt-Bearbeitung: Befehlszyklus
Prüfung, ob Interrupt anliegt, ist Teil des Befehlszyklus
Prüfung am Ende eines Maschinenbefehls
Fetch
(Befehl aus
Speicher holen)
Execute
(Befehl ausführen)
Prüfung, ob
Interrupt vorliegt
Programmzähler
auf Startadresse
der ISR setzen
ja
neinIRQ
Bei Multiprozessoren bzw. Mehrkernprozessoren:
Dispatching eines Prozessors/Kerns notwendig, um anstehenden Interrupt zu bearbeiten
Prof. Dr. Peter Mandl Seite 12
Interrupt-Vektor-Tabelle und Adressierung
Interrupt Request (IRQ) wird vom Gerät gesendet und identifiziert das Gerät
Abbildung IRQ Int-Nr durch Hardware in einem
Interrupt Controller
Int-Nr ist der Index für die Interrupt-Vektor-Tabelle (IVT)
Die IVT wird über die CPU adressiert
IVT-Aufbau durch Prozessor vorgegeben:
Bei Intel 256 IVT-Einträge für Exceptions, Systemcalls (Traps) und Geräteinterrupts
Interruptvektor Interruptvektor
…
SVR 0
IVT 0 1
3 2
SVR 1
IRQInt-Nr
Prof. Dr. Peter Mandl Seite 13
Interrupt-Service-Routine (ISR)
Interrupt-Vektor-
Tabelle
Usermodus
Kernelmodus
ISR2
ISR10102
03
n
ISR3
ISRn
Verteiler
(Interrupt-Bearbeitung)
AnwendungsprogrammInterrupt
Interrupt
Controller
Adressraum
Ack
1:
2:
3:4:5:
ISR = Interrupt Service Routine
- E/A-Geräte benachrichtigen die CPU, wenn sie einen Dienst benötigen
- Dadurch kann die CPU maximal ausgenutzt werden, da sie parallel zur Ein-/Ausgabe etwas anderes machen kann
Prof. Dr. Peter Mandl Seite 14
Interrupt-Bearbeitung: Ablauf
Zeitpunkt des
Interrupt
Normale Programmbearbeitung
fortsetzen
Normale
Programmbearbeitung
Laufender Maschinenbefehl wird
noch zu Ende geführt.
Registersatz wird auf den Stack
gerettet. Adressierung über Interrupt-
Vektortabelle
Beliebiges
ProgrammISR
RückkehrAlten Zustand wieder-
herstellen (Register,...).
Niedriger priorisierte Inter-
rupts werden deaktiviert.
...
Prof. Dr. Peter Mandl Seite 15
Beispiel: Intel 8259A-Controller
Intel 8259A PIC = Programmable Controller = Multiplexer für Hardware-Interrupts
- Ein integrierter Schaltkreis zur Verwaltung mehrerer Hardware-Interrupts
- Aufgabe: Überwacht Interrupt-Leitungen (IRQ), speichert sie und gibt sie an die CPUs weiter
- 8 Interrupt-Eingänge: Eingang 0 hat höchste Priorität
- Seit IBM PC XT eingesetzt
- Oft wurden zwei PICs in einem PC genutzt
Neuere Versionen
- APIC = Advanced PIC mit 256 Interrupt-Eingängen wird bei x86-Architekturen eingesetzt
- SAPIC = Streamlined Advanced Programmable Interrupt Controller wird bei IA64-Architekturen eingesetzt
Prof. Dr. Peter Mandl
Gerät - Interrupt-Controller - CPU - Betriebssystem
IRQ 0
D0-D7
CPU
INT
INTA
8259A Betriebs- system
Gerät 1
Gerät 2
Gerät 8
Interrupt- Handling
IRQ 1
IRQ 7
...
Übertragung der Interrupt-Request-Nummer, Mapping IRQ Int-Nr.
Seite 16
Prof. Dr. Peter Mandl Seite 17
Beispiel: Intel 8259A-Controller
Innenleben Intel 8259A, vereinfacht
Daten- bus-
Puffer
Interrupt- Request-
Register(IRR)
In-Service- Register (ISR)
IRQ0-7 D0-D7
Interrupt-Masken- Register (IMR)
Steuerlogik
CPU
INTR
INTA
8259A
Prof. Dr. Peter Mandl Seite 18
Beispiel: Intel 8259A-Controller kaskadiert
PIC = Programmable Interrupt Controller
APIC = Advanced PIC
Intel 8259
Master
CPU INTR
Intel 8259
Slave
CPU INTA
0 timer output
1 keyboard
IRQ 0
08 real time clock
09 s/w - int a0h
10 reserved
11 reserved
12 PS/2 mouse
13 coprocessor
14 hard disk
15 reserved
03 serial 2
04 serial 1
05 parallel 2
06 floppy
07 parallel 1
CPU
(Bearbeitung durch CPU bestätigt)
(Adressierung des
Interrupts)
IRQ 2
INTA = Interrrupt Acknowledge
INTR = Interruptmeldung an CPU
IMR = Interrupt Mask Register
IRQ = Interrupt Request
IMR
D0 – D7
Prof. Dr. Peter Mandl Seite 19
Interrupt-Dispatching bei Mehrkernprozessoren
Dispatching-Algorithmus im Interrupt-Dispatcher wählt einen Kern aus, der den Interrupt bearbeiten soll
Interrupt Controller
Kommunikationssystem
Kern 1
Kern 2
Kern n
…
Mehrkernprozessor
Interrupt Dispatcher (z.B. I/O-APIC im Chipsatz)
Interrupts
Local APIC
Local APIC
Local APIC
Prof. Dr. Peter Mandl
Fallbeispiel: Windows, Interrupt-Bearbeitung (1)
Interrupt-Service-Routinen
Ausnahmen
verteiler
Seitenfehler-
Handler
Synchrone Interrupts
Asynchrone Interrupts
E/A-Geräte, Taktgeber
Busfehler, Stromausfall,
Division durch 0,...
Ausnahme-
HandlerAusnahme-
HandlerAusnahme-
Handler
Hardware-Interrupt
Systemcall
Exceptions (Traps, Abort)
Page Faults
Ausnahme-
HandlerAusnahme-
HandlerInterrupt-Service-
Routine
Ausnahme-
HandlerAusnahme-
HandlerSystemdienste
Seite 20
Prof. Dr. Peter Mandl Seite 21
Fallbeispiel: Windows, Interrupt-Bearbeitung (2)
Windows hat eine eigene Interrupt-Verwaltung
Über sog. Interrupt Request Levels (IRQL) ordnet der Kernel den Interrupts eigene Prioritäten zu
Nur Interrupts mit höherem IRQL können Interruptbearbeitung auf niedrigerem IRQL unterbrechen
Über eine Interrupt Dispatch Tabelle (IDT) wird festgehalten, welche ISR für welchen Interrupt zuständig ist
Prof. Dr. Peter Mandl Seite 22
Fallbeispiel: Windows, Interrupt-Bearbeitung (3)
Interrupt Request Levels (IRQLs) in der IA32-Architektur
IRQL Bezeichnung Beschreibung
31 High-Level Maschinen-Check und katastrophale Fehler
30 Power-Level Strom/Spannungsproblem
29 IPI-Level Interprocessor Interrupt
28 Clock-Level Clock-Interrupt
27 Sync-Level Prozessorübergreifende Synchronisation
3-26 Device-Levels Abbildung auf IRQs der Geräte je nach verbautem Interrupt-Controller
2 Dispatch/DPC-Level Dispatching und Ausführung von Deferred Procedure Calls
1 APC-Level Ausführung von Asynchronous Procedure Calls nach Ein-/Ausgabe-Requests
0 Passive-Level Normale Threadausführung
Prof. Dr. Peter Mandl
Fallbeispiel: Windows, Interrupt-Bearbeitung (4)
Interrupt Request Levels (IRQLs) in der x64- und der IA64-Architektur
IRQL Bezeichnung Beschreibung
15 High-Level Maschinen-Check und katastrophale Fehler
14 Power-Level Strom/Spannungsproblem und Interprozessor-Interrupt
13 Clock-Level Clock-Interrupt
12 Synch-Level Prozessorübergreifende Synchronisation
3-11 Device-Levels Abbildung auf IRQs der Geräte je nach verbautem Interrupt-Controller
2 Dispatch/DPC-Level Dispatching und Ausführung von Deferred Procedure Calls
1 APC-Level Ausführung von Asynchronous Procedure Calls
0 Passive-Level Normale Threadausführung
Seite 23
Prof. Dr. Peter Mandl
Fallbeispiel: Windows, Interrupt-Bearbeitung (5)
Interrupt
Dispatch Table0102
03
n
Adresse
(ISR)
...
...
...
1: Interrupt Request (IRQ)
2: Int-Nr. weiterreichen
I/O-System (Datenstrukturen
und Code)
4: Interrupt Service Routine aufrufen5: DPC-Eintrag
Erzeugen und in
Queue einstellen
Interrupt-Verteiler-Code
im I/O-System
Interrupt Controller
(8259A PIC)Gerät
Interrupt-Service-
Routine (im Treiber)
3: IRQL ermitteln und ISR-
Adresse lesen
IRQL als Index
IRQ Int-Nr.
DPC = Deferred (verzögerter) Procedure Call
Abarbeitung in IRQL 2
Seite 24
Prof. Dr. Peter Mandl
ISR 2
IRQL
Device1-
Level
Dispatch-
Level
APC-
Level
Thread1 aktiv
ISR 3
ISR 2
t
Interrupt von
Device 2
Passive-
Level
Device2-
Level
Device3-
Level
Interrupt von
Device 3
DPC-Bearbeitung + Dispatching
Thread1 aktiv
IRQL 0-3
maskiert
IRQL 0-4
maskiert
DPC-
Queue-
Anker
DPC-Objekt
aus ISR3
DPC-Objekt
aus ISR2
1
2
3
4
5
IRQL-Nutzung am Beispiel, Singleprozessor
Seite 25
Prof. Dr. Peter Mandl
Fallbeispiel: Windows, Interrupt-Bearbeitung (6)
Bei x86-Systemen unterbricht der Interrupt-Controller (meist 8259-Baustein) die CPU auf einer Leitung (Hardware)
Die CPU fragt den Controller ab, um eine Unterbrechungsanforderung (IRQ) zu erhalten (Hardware)
Interrupt-Controller übersetzt IRQ in eine Interrupt-Nummer (Hardware)
Aus Interrupt-Nummer wird IRQL ermittelt (Software, Windows)
Die IDT enthält Adresse der anzustoßenden Interruptverteilroutine
Seite 26
Prof. Dr. Peter Mandl Seite 27
Fallbeispiel: Windows, Interrupt-Bearbeitung (7)
Interruptverteilroutine wird aufgerufen und ermitteln die Adresse der ISR
ISR wird aufgerufen
ISR erzeugt meist nur ein DPC-Objekt (Deferred Procedure Call) und hängt es in eine DPC-Queue ein
- Kurze Bearbeitungszeiten in der ISR wird angestrebt
- Kurze Bearbeitung in hoher Prioritätsstufe (IRQL)
- Systembelastung gering halten
DPC-Routine wird dann später mit niedrigerer Priorität (IRQL = 2) aufgerufen und ist unterbrechbar(er)
Prof. Dr. Peter Mandl Seite 28
Fallbeispiel: Windows, APC-Bearbeitung (8)
APC = Asynchronous Procedure Call
Anwendungsbeispiel:
- Bei read-Aufrufen an eine Festplatte wird die Threadbearbeitung zunächst unterbrochen
- Nachdem der read-Aufruf vom Kernel abgearbeitet wurde, wird ein APC-Objekt erzeugt und in die APC-Queue des rufenden Threads eingehängt
- Die nachfolgende Bearbeitung der APC-Queue erfolgt dann mit IRQL 1
Je eine APC-Queue pro Thread im Kernel- und im Usermodus, je nachdem, von wo der read-Aufruf abgesetzt wurde
Hinweis: Threads sind leichtgewichtige Prozesse (später mehr dazu)
Prof. Dr. Peter Mandl
Fallbeispiel: Linux
Linux nutzt auch eine Tabelle mit Referenzen auf die Interrupt-Handler (ISR)
Jeder Interrupt-Request wird auf eine Interrupt-Nummer (= Index in der Tabelle) abgebildet
Meist wird in der ISR nur ein Tasklet erzeugt
Tasklets dienen der schnellen Behandlung von Interrupts (ähnlich dem Windows-DPC-Mechanismus)
Seite 29
Prof. Dr. Peter Mandl Seite 30
Fallbeispiel: Linux, Interrupt-Vektor-Tabelle
Die Interrupt-Vektor-Tabelle ist im System wie folgt definiert: extern irq_desc_t irq_desc [NR_IRQS];
Aufbau eines Tabelleneintrags: typedef struct { unsigned int status; // IRQ-Status hw_irq_controller *handler; // Zeiger auf verantwortlichen // Controller struct irqaction *action; // Zeiger auf Action-Liste unsigned int depth; // Spezielles Feld zum Aktivieren und // Deaktivieren des IRQ } ____cacheline_aligned irq_desc_t;
Prof. Dr. Peter Mandl Seite 31
Fallbeispiel: Linux, Action-Liste
struct irqaction { // Verweis auf Interrupt-Service- // Routine void (*handler)(int, void *, struct pt_regs *); unsigned long flags; // Eigenschaften des Interrupt-Handlers const char *name // Name des Interrupt-Handlers void *dev_id; // Eindeutige Identifikation des // Interrupt-Handlers struct irqaction *next; // Verweis auf nächsten Eintrag in der // Action-Liste };
action = Action-Descriptor, Struktur mit Verweis auf eigentliche ISR
Verkettete Liste
Prof. Dr. Peter Mandl Seite 32
Fallbeispiel: Linux, Datenstrukturen im Kernel
*handler
Interrupt-Vektor-
Tabelle
irq_dec_t
*enable
*disable
*startup
...
irq_dec_t
irq_dec_t
.......
Abstrakter Interrupt-
Controller (konkret
z.B. PIC8259A)
*handler
....irqaction*next
*action
irqaction
hw_irq_controller
*handler
name
*next
...ISR
Action-Descriptor
Prof. Dr. Peter Mandl Seite 33
1. Begriffe und Klassifizierung
2. Zusammenspiel der Komponenten
3. Systemdienste und Systemcalls
Überblick
Prof. Dr. Peter Mandl Seite 34
Wiederholung: Interrupt-Klassifizierung
Interruptklassen
Asynchrone Interrupts
(nicht vorhersehbar und auch
nicht reproduzierbar)
Synchrone Interrupts
(vorhersehbar und auch
reproduzierbar)
ExceptionsSystemcalls
(Software-Interrupts)
Faults
Traps
Unterbrechung vor der Ausführung,
z.B. Page Fault = Seitenfehler
Unterbrechung nach der Ausführung,
z.B. Division durch 0
Prof. Dr. Peter Mandl Seite 35
Anwendungsprogramme nutzen die Dienste des Betriebssystems, die über sog. Systemcalls aufgerufen werden
Wohldefinierte Einsprungpunkte ins Betriebssystem
Spezieller Aufrufmechanismus für einen Systemcall
- Software-Interrupt (als Trap bezeichnet) oder Supervisor Call (SVC)
- Vorteil: Anwendungsprogramm muss Adressen der Systemroutinen nicht kennen
Alle Systemcalls zusammen bilden die Schnittstelle der Anwendungsprogramme zum Betriebssystemkern
- Zugang zu Systemcalls wird meist in Bibliotheken bereitgestellt
Dienste des Betriebssystems
Prof. Dr. Peter Mandl Seite 36
Umschaltung in den Kernelmodus
Systemcalls werden im Kernelmodus ausgeführt
Beim Aufruf wird durch den Prozessor vom Usermodus in den Kernelmodus umgeschaltet
Anwendungssoftware,...
Betriebssystemkern
open() close() mount()
Prof. Dr. Peter Mandl Seite 37
Systemcall-Ablauf
Befehlsfolge eines Systemaufrufs
Programm-
instruktionen
Betriebssystemkern
System Call
Programm- instruktionen
Softwareinterrupt Parameter auf Stack legen PC Adresse (Systemroutine) Umschalten auf Kernel Mode
Zurück vom Kernel Mode Ergebnis vom Stack holen PC Adresse (nach Systemcall) Umschalten auf User Mode
Code eines Anwendungsprogramms
t
Prof. Dr. Peter Mandl Seite 38
Systemcall-Ablauf unter Linux/x86-CPUs (1)
x86-Befehl: int n // Aufruf des Interrupts mit der Interrupt-Vektor-Nummer n
int $0x80 // Trap, Systemcall
C-Code: main() { open(“mandl.txt“,1); // Datei zum Lesen öffnen }
Maschinencode: (gcc-Compiler): .LCO: .string “mandl.txt“ .text .globl main main: ... call open ...
Prof. Dr. Peter Mandl Seite 39
Systemcall-Ablauf unter Linux/x86-CPUs (2)
Open-Routine in der Linux C-Library: __libc_open: ... mov 0xc(%esp,1), %ecx // Parameter für Open in Register laden mov ... mov $0x5, %eax // Systemcall-Code für open-Funktion int $0x80 // Systemcall ... ... iret // zurück zum Aufrufer
Interrupt-Vektor-Nummer $0x80 ist Index für die Adressierung der Interrupt-Vektor-Tabelle (IVT)
Prof. Dr. Peter Mandl Seite 40
Systemcall-Ablauf unter Linux/x86-CPUs (3)
IVT = Interrupt-Vektor-Tabelle,
SVR = Serviceroutine, bearbeitet Systemcall
Systemcall-Tabelle verweist auf Implementierungen der Systemdienste
int $0x80
…
…
IVT
Usermodus
Kernelmodus
Verteiler
Systemcall-Tabelle (syst_call_table)
SVR …
Prof. Dr. Peter Mandl
Systemcall-Ablauf unter Linux: Sequenzdiagramm
1: open()
2: int 0x80 (EAX=5,...)
4: Aufruf der open-Routine
5: Open-
Ausführung
Kernel-
VerteilroutineC-Library
Anwendungs-
programmSystemcall-Impl.
für open()
3: Adresse open-Routine =
Systemcall-Tabelle[EAX]
6: return
7: return
8: return
Usermodus Kernelmodus
Systemcall-Tabelle enthält alle Verweise auf Systemcalls (struct sys_call_table)
Seite 41
Prof. Dr. Peter Mandl
Vergleichbare Befehle in anderen Prozessoren
EPC-Befehl = Enter Privileged Mode in IA64
- Übergabe von max. 8 Parametern in Registern und die restlichen Parameter im Kernelstack
syscall-Befehl in x64
- Übergabe der Systemcall-Nr. im EAX-Register
- Max. 8 Parameter in Registern und die restlichen Parameter im Kernelstack
sysenter-Befehl in x86 Pentium II
SVC-Befehl in ARM-Architektur
- früher SWI = Software-Interrupt
Seite 42
Prof. Dr. Peter Mandl
Systemcalls bei POSIX
Systemcalls sind standardisiert in IS 9945-1
POSIX-Konformität erfüllen die meisten Unix-Derivate
Beispiele:
- fork(): Prozesserzeugung
- execve(): Aufruf eines Programms
- exit(): Beenden eines Prozesses
- open(): Datei öffnen
- close(): Datei schließen
- read(): Daten aus Datei lesen
- write(): Daten in Datei schreiben
POSIX = Portable Operating System Unix
Seite 43
Prof. Dr. Peter Mandl Seite 44
Systemcalls bei Win32-API
In Windows-Systemen sind die Systemcalls in der Windows-API (Application Programming Interface) definiert
Es gibt einige 1000 API-Funktionen, einige davon sind Systemcalls
Beispiele:
- CreateProcess() Prozesserzeugung
- exitProcess(): Beenden eines Prozesses
- CreateFile(): Erzeugen und Öffnen einer Datei
- CloseHandle(): Datei schließen
- ReadFile(): Daten aus Datei lesen
- WriteFile(): Daten in Datei schreiben
Prof. Dr. Peter Mandl Seite 45
Systemcall-Ablauf unter Windows
int, epc, syscall, sysenter Usermodus
Kernelmodus
Systemdienst- schnittstelle
Systemservice- Dispatcher
(KiSystemService) Systemservice- Routine
Win-API
Windows- Anwendung
Prof. Dr. Peter Mandl Seite 46
1. Begriffe und Klassifizierung
2. Zusammenspiel der Komponenten
3. Systemdienste und Systemcalls
Überblick
Prof. Dr. Peter Mandl Seite 47
Zusammenfassung Interruptverarbeitung
Polling und Interrupts
Synchrone und asynchrone Interrupts
Interrupt-Requests (IRQ) und Interrupt-Bearbeitung
Interrupt-Vektor-Tabelle (IVT) zur Adressierung von
Interrupt-Service-Routinen (ISR) für synchrone und
asynchrone Interrupts
Systemcalls = synchrone Software-Interrupts, (oft
auch, etwas verwirrend als Traps bezeichnet)
Prof. Dr. Peter Mandl
Gesamtüberblick
Einführung in Computersysteme
Entwicklung von Betriebssystemen
Architekturansätze
Interruptverarbeitung in Betriebssystemen
5. Prozesse und Threads
6. CPU-Scheduling
7. Synchronisation und Kommunikation
8. Speicherverwaltung
9. Geräte- und Dateiverwaltung
10. Betriebssystemvirtualisierung
Seite 48