Sobes.tech
Middle

Qual è la differenza tra un processo orfano e un processo zombie?

sobes.tech AI

Risposta dell'AI

Processo orfano (Orphan Process) — è un processo il cui processo genitore si è concluso prima che il processo figlio completasse la sua esecuzione. Il processo di init (PID 1) adotta automaticamente l'orfano e diventa il suo nuovo genitore per la successiva liberazione delle risorse.

Processo zombie (Zombie Process) — è un processo che ha terminato la sua esecuzione, ma la sua voce nella tabella dei processi del kernel (PCB) non è ancora stata rimossa, poiché il processo genitore non ha chiamato la system call wait() o waitpid() per raccogliere lo stato di terminazione del processo figlio. Tale processo non consuma risorse CPU, ma occupa spazio nella tabella dei processi.

Confronto:

Caratteristica Processo orfano Processo zombie
Stato In esecuzione (o in attesa di esecuzione) Terminato
Genitore Il genitore originale è terminato, il nuovo genitore è init (PID 1). Il genitore esiste, ma non ha chiamato wait().
Risorse CPU Consuma risorse CPU per svolgere il suo compito. Non consuma risorse CPU.
Posto nella tabella Occupa spazio nella tabella dei processi come un processo normale in esecuzione. Occupa spazio nella tabella dei processi finché il suo stato non viene letto dal genitore.
Eliminazione Verrà terminato e pulito dal sistema operativo dopo la conclusione. Rimane nella tabella dei processi finché il genitore non chiama wait() o finché il genitore non termina (in tal caso diventa orfano init e sarà pulito).