Каково состояние процесса Zombie?

Состояние процесса “Zombie” (зомби) в операционных системах, включая Linux, возникает, когда процесс завершается, но его запись в таблице процессов остается до тех пор, пока родительский процесс не запросит статус завершения потомка. Зомби-процесс не потребляет ресурсы и не выполняет никаких действий, но его запись все еще присутствует в системе, поэтому его PID (идентификатор процесса) не переиспользуется другими процессами.

Когда процесс завершается, он отправляет сигнал родительскому процессу, сообщая о своем статусе завершения. Родительский процесс, обычно вызывая системный вызов wait(), должен запросить этот статус и освободить ресурсы, связанные с завершившимся потомком. Если родительский процесс не выполняет этот шаг, запись о завершившемся потомке остается в таблице процессов как зомби.

Зомби-процессы обычно не представляют проблем, если их количество остается незначительным. Однако, если количество зомби-процессов становится значительным, это может привести к исчерпанию ресурсов системы, поскольку каждый зомби занимает запись в таблице процессов. Чтобы избежать такой ситуации, родительские процессы должны регулярно вызывать wait() или waitpid() для обработки завершившихся потомков и освобождения соответствующих ресурсов.