Co je proces zombie

? Zombie proces je počítačový proces v operačním systému Unix, který byl ukončen, ale v tabulce procesů operačního systému má stále ponechané identifikační číslo procesu. Jedná se o pozůstatky většího procesu nebo programu, který nedokázal vnímat a provést všechny výstupní příkazy pro případ ukončení procesu . Tyto procesy však nezabírají cykly procesoru ani místo v paměti. Protože

Chybný programový kód často vede k tomu, že se procesy neukončují správně, což vede ke vzniku zombie procesů, které se ocitají v běžících programech . Programátor nenaprogramoval nadřazený proces tak, aby použil systémové volání „wait“, které by umožnilo podřízenému procesu běžet nezávisle, zatímco je nadřazený proces pozastaven. To znamená, že podřízený proces vrátí rodiči zprávu o stavu ukončení pouze v případě, že rodič neobdrží oznámení o ukončení a podřízený proces se stane zombie procesem .
Úvahy

nespěchejte s ukončováním zombie procesů, jakmile je objevíte. Někdy nadřazené procesy záměrně ukončují zombie procesy, aby stejné ID procesu nebylo přiděleno dvěma různým procesům během života programu. Pokud se najednou objeví jen několik zombie procesů, které nejsou trvalé, mohou je nadřazené procesy nakonec ukončit . Pokud se však systém začne zpomalovat kvůli velkému množství spuštěných procesů, může ukončení některých zombie procesů zlepšit výkon .
Umístění zombie

pomocí unixového příkazového nástroje spustit příkaz „ps“ – zkratka pro process state – zobrazí všechny procesy běžící v systému. Každý proces uvedený ve sloupci Stat jako „z“ je zombie proces . Jakýkoli z těchto procesů, který existuje, zatímco nadřazený program nebo proces stále běží, svědčí o chybném kódu, zatímco zombie procesy běžící bez nadřazeného programu obvykle představují chybu v samotném operačním systému.
Zabíjení zombie Obrázky, ilustrace zombie proces

uchovávají čísla ID procesů v tabulce pro zadávání procesů, takže jejich příliš velký počet způsobí, že systém poběží na těchto číslech. Můžete však vynutit ukončení zombie procesů, aby se uvolnily hodnoty ID procesu ve skupině. Ukončete jej příkazem „kill- s SIGCHLD“ „Kde „ppid“ představuje ID procesu nadřazené zombie. Případně můžete vynutit ukončení rodičovských procesů, aby se ukončily i všechny podřízené procesy a zombie procesy, které vytvořily .

Napsat komentář