Middle
Care este diferența dintre un proces orfan și un proces zombie?
sobes.tech AI
Răspuns de la AI
Proces orfan (Orphan Process) — este un proces al cărui proces părinte s-a încheiat înainte ca procesul fiu să-și finalizeze execuția. Procesul de inițializare (init, PID 1) adoptă automat orfanul și devine noul său părinte pentru eliberarea ulterioară a resurselor.
Procesul zombie (Zombie Process) — este un proces care și-a încheiat execuția, dar înregistrarea sa în tabelul de procese al nucleului (PCB) nu a fost încă eliminată, deoarece procesul părinte nu a apelat sistemul wait() sau waitpid() pentru a colecta starea de finalizare a procesului fiu. Un astfel de proces nu consumă resurse CPU, dar ocupă spațiu în tabelul de procese.
Comparare:
| Caracteristică | Proces orfan | Proces zombie |
|---|---|---|
| Stare | În execuție (sau așteaptă să fie executat) | S-a încheiat |
| Părinte | Părintele inițial s-a încheiat, noul părinte este init (PID 1). |
Părintele există, dar nu a apelat wait(). |
| Resurse CPU | Consumă resurse CPU pentru a-și îndeplini sarcina. | Nu consumă resurse CPU. |
| Loc în tabel | Ocupă spațiu în tabelul de procese ca un proces normal în execuție. | Ocupă spațiu în tabelul de procese până când starea sa este citită de părinte. |
| Eliminare | Va fi încheiat și curățat de sistemul de operare după finalizare. | Rămâne în tabelul de procese până când părinte îl va apela wait() sau până când părinte se va încheia (în acest caz devine orfan init și va fi curățat). |