Sobes.tech
Middle

Was ist der Unterschied zwischen einem verwaisten Prozess und einem Zombie-Prozess?

sobes.tech KI

Antwort von AI

Waisenprozess (Orphan Process) — ist ein Prozess, dessen Elternprozess beendet wurde, bevor der Kindprozess seine Ausführung abgeschlossen hat. Der Initialisierungsprozess (init, PID 1) übernimmt automatisch den Waisenprozess und wird sein neuer Elternprozess für die anschließende Ressourcenfreigabe.

Zombie-Prozess (Zombie Process) — ist ein Prozess, der seine Ausführung beendet hat, aber sein Eintrag in der Prozess-Tabelle des Kernels (PCB) noch nicht entfernt wurde, da der Elternprozess den Systemaufruf wait() oder waitpid() nicht aufgerufen hat, um den Beendigungsstatus des Kindprozesses zu sammeln. Ein solcher Prozess verbraucht keine CPU-Ressourcen, belegt aber Platz in der Prozess-Tabelle.

Vergleich:

Merkmal Waisenprozess Zombie-Prozess
Zustand Läuft (oder wartet auf Ausführung) Beendet
Elternprozess Der ursprüngliche Elternprozess hat beendet, der neue Elternprozess ist init (PID 1). Der Elternprozess existiert, hat aber wait() nicht aufgerufen.
CPU-Ressourcen Verbraucht CPU-Ressourcen für seine Aufgabe. Verbraucht keine CPU-Ressourcen.
Platz in Tabelle Belegt Platz in der Prozess-Tabelle wie ein normal laufender Prozess. Belegt Platz in der Prozess-Tabelle, bis sein Status vom Elternprozess gelesen wird.
Entfernung Wird vom Betriebssystem nach Beendigung beendet und bereinigt. Bleibt in der Prozess-Tabelle, bis der Elternprozess wait() aufruft oder der Elternprozess beendet wird (in diesem Fall wird er zu init-Waisen und wird bereinigt).