Prozesse, Threads und Interrupts
Prozesse, Threads und Interrupts
Ein Prozess ist ein Programm in Ausführung. Erst wenn Programmcode geladen wird, Ressourcen erhält und vom Betriebssystem verwaltet wird, entsteht daraus ein laufender Prozess.
Speicherbereiche eines Prozesses
Ein Prozess besteht typischerweise aus mehreren Speicherbereichen.
| Bereich | Inhalt |
|---|---|
| Text | Programmcode, meist nur lesbar. |
| Data | Globale und statische Variablen. |
| Heap | Dynamisch zur Laufzeit reservierter Speicher. |
| Stack | Funktionsaufrufe, lokale Variablen, Parameter und Rücksprungadressen. |
Diese Trennung hilft dem Betriebssystem, Speicher kontrolliert zu verwalten und Schutzrechte zu setzen.
Ein- und Ausgabe
I/O-Operationen sind oft deutlich langsamer als CPU-Operationen. Ein Prozess kann zum Beispiel auf Festplatte, Netzwerk oder Benutzereingaben warten.
Zwei grundlegende Möglichkeiten:
| Verfahren | Beschreibung |
|---|---|
| Polling | CPU fragt regelmäßig nach, ob ein Gerät bereit ist. |
| Interrupts | Gerät meldet sich aktiv bei der CPU. |
Polling kann CPU-Zeit verschwenden. Interrupts sind effizienter, weil die CPU währenddessen andere Arbeit erledigen kann.
Interrupts
Ein Interrupt unterbricht den normalen Programmablauf. Danach führt die CPU eine passende Interrupt-Service-Routine aus.
Ablauf vereinfacht:
- Ein Ereignis tritt auf.
- Die CPU erkennt den Interrupt.
- Aktueller Zustand wird gesichert.
- Die Interrupt-Service-Routine wird ausgeführt.
- Der ursprüngliche Prozess wird fortgesetzt.
Arten:
- Hardware-Interrupts
- Software-Interrupts
- Traps
- Exceptions
System Calls
Normale Programme dürfen nicht direkt auf kritische Ressourcen zugreifen. Dafür verwenden sie System Calls.
Beispiele:
- Datei öffnen
- Datei lesen
- Datei schreiben
- Prozess erzeugen
- Prozess beenden
- Nachrichten zwischen Prozessen senden oder empfangen
System Calls wechseln kontrolliert vom User Mode in den Kernel Mode.
Process Control Block
Das Betriebssystem speichert Prozessinformationen im Process Control Block.
Typische Inhalte:
- Prozess-ID
- Prozesszustand
- Instruction Pointer / Program Counter
- CPU-Register
- Speicherinformationen
- Accounting-Informationen
- Informationen zu geöffneten Ressourcen
Der PCB ist wichtig, damit ein Prozess nach einer Unterbrechung korrekt weiterlaufen kann.
Prozesszustände
Ein Prozess kann verschiedene Zustände haben.
| Zustand | Bedeutung |
|---|---|
| New | Prozess wird erstellt. |
| Ready | Prozess ist bereit und wartet auf CPU-Zeit. |
| Running | Prozess läuft gerade auf der CPU. |
| Waiting / Blocked | Prozess wartet auf ein Ereignis. |
| Terminated | Prozess wurde beendet. |
Scheduling entscheidet, welcher bereite Prozess als Nächstes ausgeführt wird.
Threads
Ein Prozess kann mehrere Threads enthalten. Threads teilen sich Ressourcen des Prozesses, können aber unabhängig ausgeführt werden.
Vorteile:
- bessere Reaktionsfähigkeit
- einfachere Ressourcenteilung
- parallele oder nebenläufige Ausführung
- effizienter als mehrere vollständig getrennte Prozesse
Risiko: Weil Threads gemeinsamen Speicher nutzen, entstehen leichter Race Conditions.
Merksatz
Prozesse geben Programmen eine geschützte Ausführungsumgebung. Threads machen Arbeit innerhalb eines Prozesses parallelisierbar, benötigen aber saubere Synchronisation.
Zuletzt aktualisiert: 6. Juni 2026