Kurzer Systemcheck: Zombie-Prozesse

Zombies und Halloween gehören untrennbar zusammen. Doch auch in der IT sind Zombies keine Unbekannten. Im Gespräch erklärt Florian Klemenz, Mitarbeiter der Abteilung Zentrale Systeme am RRZE, was man darunter versteht und wann Zombie-Begegnungen stattfinden können.

An Halloween kommen wieder überall Zombies aus ihren Löchern. Auch beim Betriebssystem Linux gibt es Zombies, sogenannte Zombie-Prozesse. Erkläre doch mal in einfachen Worten was ihr darunter versteht.

Florian Klemenz: Als Zombie-Prozess wird ein eigentlich bereits beendeter Prozesses bezeichnet, der darauf wartet von seinem Eltern-Prozess abgeholt zu werden. Passiert das nicht, wird der Prozess zum elternlosen Zombie.

Wann treten Zombie-Prozesse auf und sind sie gefährlich?

Aus Sicherheitsgründen zur Erhöhung der Stabilität oder zur besseren Auslastung von modernen CPUs mit vielen Kernen, werden von einem Eltern-Prozess oft ein oder mehrere Kind-Prozesse gestartet.

Ein Webbrowser führt zum Beispiel oft jedes Tab in einem separaten Kind-Prozess aus. So können die verschiedenen Webseiten parallel verarbeitet werden und wenn ein Tab nicht mehr reagiert, ist nicht der ganze Browser betroffen.

Nach Beendigung – zum Beispiel nach dem Schließen eines Tabs – wartet das Kind darauf, dass der Eltern-Prozess abfragt, auf welche Art der Kind-Prozess beendet wurde: erfolgreich, mit Fehler, abgestürzt, abgebrochen etc. Das ist das Abholen.
Passiert dies nicht – zum Beispiel durch einen Programmierfehler – so bleibt der Kind-Prozess als Zombie zurück. Das ist allerdings in der Regel nicht schlimm, da diese Prozesse bereits beendet sind und so gut wie keine Ressourcen mehr im System belegen. Außerdem werden sie nach einer Weile automatisch vom System erkannt und aufgeräumt.

In der Regel bemerkt man als Nutzer nichts von auftretenden Zombie-Prozessen.

Habt nur ihr Informatiker damit zu tun oder merken die Nutzenden auch etwas von Zombie-Prozessen?

In der Regel bemerkt man als Nutzer nichts von auftretenden Zombie-Prozessen. Problematisch kann es werden, wenn ein Programm sehr viele Kind-Prozesse startet, zum Beispiel um eine hochparallelisierte Berechnung durchzuführen, und diese Prozesse danach nicht wieder aufräumt. Diese Zombie-Flut kann in manchen Situationen dazu führen, dass keine weiteren Prozesse mehr gestartet werden können, bis die Zombies durch das System erkannt und zur letzten Ruhe geleitet wurden.

 

Vielen Dank für das Gespräch!

 


Das Gespräch führte Corinna Russow