Prozessverwaltung & PCB
Prozessverwaltung & PCB
Das OS verwaltet Prozesse über eine Prozesstabelle. Jeder Prozess hat dort einen Eintrag (Prozess-Struktur / -Deskriptor), der u.a. die PID und den Prozesskontrollblock (PCB) mit dem CPU-Zustand enthält.
Prozesstabelle & Deskriptor
Jeder Prozess hat einen Eintrag in der Prozesstabelle. Bei der Erzeugung eines Prozesses wird primär dieser Eintrag geschrieben. Zur Prozess-Struktur gehören:
- die Prozess-ID (PID) — charakterisiert jeden Prozess eindeutig
- Verweise auf den benötigten Hauptspeicher und die offenen Dateien
- der Prozess-Kontrollblock (PCB) — speichert den Zustand der CPU (Register) = der physische Zustand
- der aktuelle logische Zustand (Prozess-Zustandsmodell)
Beispiel: Linux task_struct
struct task_struct {
volatile long state; /* logischer Zustand */
int prio, static_prio; /* Priorität (Scheduling) */
struct list_head tasks; /* doppelt verkettet */
struct mm_struct *mm; /* Speicher */
pid_t pid;
struct task_struct *parent; /* Elternprozess */
uid_t uid, euid, suid, fsuid; /* Rechte */
struct thread_struct thread; /* CPU-spezifischer Zustand */
struct files_struct *files; /* offene Dateien */
};
Man erkennt direkt die Bausteine: state → Prozess-Zustandsmodell, prio → Scheduling-Grundlagen, mm → Virtual Memory, files → Dateisystem-Grundlagen.
Bedeutung des PCB
Der PCB ist der Schlüssel zum Kontextwechsel: Beim Verdrängen eines Prozesses werden seine Register in den PCB gesichert und beim nächsten Mal von dort wiederhergestellt.
Verwandte Notes
Prozess · Prozess-Zustandsmodell · Prozesskontext & Kontextwechsel · Scheduling-Grundlagen