2 Prozesse & ThreadsOperationen auf Prozessen

Operationen auf Prozessen

Auf einen Blick

Aus Programmierersicht zählen die Operationen: erzeugen (fork), überlagern (exec), beenden (exit), warten (wait), Priorität ändern (nice), Zustand ändern (sleep, sched_yield).

Die Unix-Operationen

OperationUnix-AufrufBedeutung
Erzeugenfork()erzeugt eine Kopie des Erzeugers (Eltern → Kind)
Überlagernexec()ersetzt das Prozessabbild durch ein anderes Programm
Beendenexit()beendet den Prozess (→ terminated)
Priorität ändernnice()beeinflusst das Scheduling
Zustand ändernsleep(), sched_yield()schlafen legen / CPU freiwillig abgeben
Wartenwait()Elternprozess wartet auf ein Kind

Das fork/exec-Muster

Unter Unix ist die Erzeugung eines neuen Programms typischerweise zweistufig:

pid_t pid = fork();        // 1. Kopie des aktuellen Prozesses
if (pid == 0) {
    exec("/bin/ls", ...);  // 2. Kind überlagert sich mit neuem Programm
} else {
    wait(NULL);            // Eltern wartet auf das Kind
}

fork() legt einen neuen Eintrag in der Prozesstabelle an. Vergisst der Elternprozess das wait(), bleibt das beendete Kind als Zombie im Zustand terminated hängen.

Bez


⬅️ Prozesskontext & Kontextwechsel · Threads ➡️

Built with LogoFlowershow