Skip to main content

Co je to zombie proces?

Zombie proces je instancí počítačového programu, který si zachovává záznam procesu tabulky, přestože dokončil provádění.Zaniklé procesy, jako jsou tyto, jsou obvykle spojeny s UNIX a další podobné operační systémy kvůli způsobu, jakým zpracovávají dětské procesy.Po dokončení provedení dítěte je rodič obvykle zodpovědný za jeho odstranění z procesní tabulky.Obvykle není možné přímo odstranit proces zombie s příkazem KILL, ačkoli rodič může být často vyroben, aby jej odstranil, pokud operátor používá oznámení signálu (Sigchld).Pokud toto selhání, zombie proces může být nepřímo odstraněn zabitím rodiče.

Zombie proces je metaforický popisný pojem, který odkazuje na živé mrtvé.Zaniklé procesy v UNIX REG;a podobné operační systémy lze považovat za analogické s zombie v tom, že udržují přítomnost procesní tabulky, přestože již nevykonávají své zamýšlené funkce.Když se proces dokončil, někdy se říká, že zemřel, zatímco prostředky, kterým operační systém obnoví přidělování tabulky procesu, lze znát jako sklizeň.Rodičovský proces zombie má technicky sklízet své děti, i když se to ne vždy děje.Poté, co dítě ukončí provádění, možná bude muset rodič spustit další instanci stejného programu později.Pokud nebyl zombie z tabulky procesu odstraněn, nové dítě nebude přiřazeno stejné identifikaci (ID) jako staré dítě.Některé programy mohou těžit z tohoto druhu diferenciace nebo dokonce vyžadovat.To se obvykle provádí pomocí příkazu KILL a odesílání signálu Sigchld do nadřazeného procesu.Pokud vše funguje správně, měl by nadřazený proces, který přijímá tento signál, sklízet své zombie děti, aby bylo možné znovu použít jejich ID a pozice procesní tabulky.Pokud k tomu dojde a operátor si stále přeje, aby byla tabulka procesu vyčištěna, může být rodičovský proces zabit.Jakékoli zombie, které vytvořil mateřský proces, pak budou přiřazeny jako děti k procesu INIT.Protože Inic pravidelně iniciuje příkaz čekání u svých dětí, budou z procesní tabulky nakonec odstraněny jakékoli zombie, za které je zodpovědný.