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