From: Alexander Hartmann (hartmann_at_fim.informatik.uni-mannheim.de)
Date: 26. Jan 1999
On Mon, 25 Jan 1999, Mark Seuffert (Pirates) wrote:
> Der ist aber schon tot und gegen Zombies hab ich kill -15 :)
Tut mir ja echt leid fuer dich, aber weder in schlechten Horrorfilmen noch
in Betriebssystemen kann man Zombie killen.
Wen es interessiert, was Zombies genau sind :
Ein Prozess kann einen Kindprozess erzeugen. Normalerweise ruft dann der
Vater irgendwann mal eine Funktion "wait" auf, um auf die Temrinierung des
Sohnes zu warten und seinen Return-Wert zu erfahren (insoweit der
interessiert). Wenn jetzt der Sohn terminiert, bevor der Vater den
Warteaufruf ausfuehrt, muss ja der Returnwert (und andere Informationen,
z.b. ueber Rechenzeit) beibehalten werden, der Prozess kann also nicht
ganz verschwinden. Von diesem Prozess wird also der Prozessleitblock, in
dem alle moeglichen Informationen drinstehen, weiter im Speicher behalten.
Solche einzelnen Prozessleitbloecke nennt man "Zombies", und sie duerfen
ja nicht "gekillt" werden, da die Information gebraucht wird.
Zombies verschwinden, soweit ich weiss, dann, wenn der Vater das Ergebnis
abfraegt ("wartet"), oder der Vaterprozess ohne Abfrage terminiert.
Dazu noch ein Ausschnitt aus einer Frage von einem Uebrungsblatt zu einer
Betriebssysteme-Vorlesung, die ich gehoert habe :
"Was sind Zombies, und wieso kann man sie nicht killen? Beantworten Sie
diese Frage bitte im Zusammenhang mit den Themen der Vorlesung :-)"
Tschau,
Alex
_
~0 (_| Alexander Hartmann
|(_~|^~~| < hartmann_at_fim.informatik.uni-mannheim.de >
TT/_ T"T If brute force doesn't solve your problem,
^^^^^^^^^^^^ your not using enough of it.
Dieses Archiv wurde generiert von hypermail 2.1.2 : 11. Mar 2002 CET