Middle
151
questionbank
В чем отличие между процессом-сиротой и зомби-процессом?
Ответ от нейросети
sobes.tech AI
Процесс-сирота (Orphan Process) — это процесс, родительский процесс которого завершился до того, как дочерний процесс завершил свое выполнение. Инициализирующий процесс (init, PID 1) автоматически перенимает сироту и становится его новым родителем для последующей утилизации ресурсов.
Зомби-процесс (Zombie Process) — это процесс, который завершил свое выполнение, но его запись в таблице процессов ядра (PCB) еще не была удалена, поскольку родительский процесс не вызвал системный вызов wait() или waitpid() для сбора статуса завершения дочернего процесса. Такой процесс не потребляет ресурсы CPU, но занимает место в таблице процессов.
Сравнение:
| Признак | Процесс-сирота | Зомби-процесс |
|---|---|---|
| Состояние | Выполняется (или ожидает выполнения) | Завершил выполнение |
| Родитель | Исходный родитель завершился, новый родитель - init (PID 1). |
Родитель существует, но/или не вызвал wait(). |
| Ресурсы CPU | Потребляет ресурсы CPU для выполнения своей задачи. | Не потребляет ресурсы CPU. |
| Место в таблице | Занимает место в таблице процессов как обычный работающий процесс. | Занимает место в таблице процессов, пока его статус не будет считан родителем. |
| Удаление | Будет завершен и очищен операционной системой после завершения. | Остается в таблице процессов до тех пор, пока родитель не вызовет wait() или пока родитель не завершится (в этом случае он становится сиротой init и будет очищен). |