Prozess
Eine Aufgabe ist in der Computerwelt eine einzelne, definierte Handlung oder Operation, die von einem Computer ausgeführt wird. Alle Aufgaben, die ein Computer durchführt, sind oft im Hintergrund verborgen und laufen automatisiert ab.
Diese Aufgaben können von der Verarbeitung von Daten bis hin zur Ausführung von Programmen oder Befehlen reichen. In komplexeren Systemen werden Aufgaben in Prozesse unterteilt, die gleichzeitig ablaufen können, wobei der Computer je nach Ressourcen und Anforderungen diese Aufgaben effizient ausführt.
Ein Prozess ist eine Instanz eines Programms, das in Ausführung ist, und besteht aus einer Reihe von Aufgaben, die nacheinander oder parallel bearbeitet werden, um das gewünschte Ergebnis zu erzielen.
Genauer: Ein Prozess ist der aktuelle Zustand eines laufenden Programms — Maschinencode + Programmzähler + alle Variablen & Registerinhalte.
Das Programm ist das Rezept (statisch). Der Prozess ist der aktuelle Kochvorgang: bereitgelegte Zutaten, Zustand der Töpfe, Herdtemperatur und der Punkt im Rezept, an dem man gerade ist (= Programmzähler).
Prozesszustände
Ein Prozess ist immer in genau einem von drei Zuständen:
| Zustand | engl. | Bedeutung |
|---|---|---|
| Rechnend | running | wird gerade auf der CPU ausgeführt |
| Bereit | ready | will rechnen, wartet aber auf CPU-Zeit |
| Blockiert | blocked | wartet auf ein Ereignis, bewirbt sich nicht um CPU |
(2) CPU zugeteilt
┌────────┐ ──────────────► ┌──────────┐
│ BEREIT │ │ RECHNEND │──(6)─► beendet
└────────┘ ◄────────────── └──────────┘
▲ ▲ (3) Zeit abgelaufen │
│ │ (Scheduler) │ (4) wartet auf
(1) │ └───────────────┐ │ Ereignis (I/O)
gestartet │ ▼
(5) Ereignis ┌───────────┐
eingetroffen ──│ BLOCKIERT │
└───────────┘
Die Übergänge steuert das Scheduling; den Wechsel selbst macht der Kontextwechsel. Läuft ein terminierter Prozess fehlerhaft weiter → Zombieprozess.