Interruptverarbeitung in Betriebssystemen · Prof. Dr. Peter Mandl Seite 3 Zielsetzung Konzepte und...

48
Prof. Dr. Peter Mandl Seite 1 Interruptverarbeitung in Betriebssystemen Sommersemester 2015 Prof. Dr. Peter Mandl

Transcript of Interruptverarbeitung in Betriebssystemen · Prof. Dr. Peter Mandl Seite 3 Zielsetzung Konzepte und...

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