2 Prozesse & ThreadsProzessverwaltung & PCB

Prozessverwaltung & PCB

Auf einen Blick

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: stateProzess-Zustandsmodell, prioScheduling-Grundlagen, mmVirtual Memory, filesDateisystem-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

← Kapitelübersicht


⬅️ Prozess · Prozess-Zustandsmodell ➡️

Built with LogoFlowershow