Indietro

ⓘ Processo zombie




Processo zombie
                                     

ⓘ Processo zombie

Un processo zombie nei sistemi operativi Unix e Unix-like è un processo informatico che, nonostante abbia terminato la propria esecuzione, possiede ancora un PID ed un Process control block, necessario per permettere al proprio processo padre di leggerne il valore di uscita.

                                     

1. Origine del termine

Il termine processo zombie deriva dalla definizione comune di zombie: una persona non completamente morta. Seguendo questa metafora, il processo figlio è morto ma non è stato ancora mietuto dalla grande falciatrice la morte personificata ha con sé una falce fienaia.

                                     

2. Origine dei processi zombie

Quando un processo termina, tutta la memoria le risorse ad esso associate vengono liberate così da poter essere utilizzate da altri processi. Ciò nonostante, il process control block del processo resta nella tabella dei processi process table affinché il processo padre possa leggerne il valore di uscita eseguendo la chiamata di sistema wait, al seguito della quale il processo zombie viene definitivamente rimosso. La chiamata a wait può essere eseguita in normale codice sequenziale ma, più comunemente, viene invocata allinterno di un gestore del segnale SIGCHLD, il quale è inviato ad un processo padre ogniqualvolta un proprio processo figlio muore. In seguito alla rimozione del processo zombie, i relativi PID e process control block possono essere riutilizzati.

Quando il processo padre non invoca la chiamata di sistema wait, il processo zombie continua a rimanere nella tabella dei processi: in alcuni casi ciò viene fatto di proposito, ad esempio quando il processo padre, creando un nuovo processo figlio, vuole assicurarsi che questo abbia un PID diverso da un figlio creato in precedenza appena terminato.

Lo standard POSIX.1-2001, a differenza del precedente POSIX.1-1990, permette di ignorare esplicitamente il segnale SIGCHLD, impostandone SIGN IGN come gestore, così da poter scartare il valore di uscita di un processo ed evitare che questo diventi zombie. Questo comportamento è seguito ad esempio dai sistemi operativi basati su Linux a partire dalla versione 2.6 del kernel e da HP-UX, mentre altri sistemi, come gli storici sistemi BSD e UNIX System V, seguono comportamenti differenti che rendono luso di wait lunico modo certo per evitare la creazione di processi zombie.

                                     

3. Identificazione di processi zombie

I processi zombie possono essere identificati dalloutput del comando Unix ps tramite la presenza di una "Z" nella colonna STAT. Processi zombie che persistono più a lungo di un breve periodo di tempo tipicamente indicano un bug del programma padre. Come capita per altri tipi di memory leak, la presenza di pochi processi zombie non preoccupa di per sé, ma può prospettare un problema che sotto maggiori carichi di sistema diverrebbe serio. Dato che non vi è memoria allocata per i processi zombie a parte il process control block stesso, il problema principale non è il consumo di memoria quanto lesaurimento dei PID disponibili e il riempimento della tabella dei processi, cose che porterebbero allimpossibilità di creare nuovi processi.

                                     

4. Eliminazione di processi zombie

Per eliminare un processo zombie nel caso tipico in cui il suo processo padre non recupera il suo valore di uscita occorre eliminare il suo processo padre, ad esempio inviando a questultimo un segnale SIGTERM o SIGKILL.

Così facendo, il processo zombie diviene un processo orfano, che viene immediatamente adottato da init il quale esegue periodicamente la chiamata di sistema wait o waitpid, mietendo così i propri processi figli zombie.

                                     
  • lo zombie muore. Jim vorrebbe liberarlo, e chiede perdono allo zombie perché non può farlo Hurakan, commosso da questo gesto, si palesa allo zombie e
  • State of Decay zombie FPS stalks the Xbox 360, TGDailey, 23 agosto 2012. URL consultato il 5 settembre 2012. Fred Dutton, Zombie Epic Class3 Announced
  • formica ospite è tanto caratteristico da aver dato origine al termine formica zombie ed è tutto a beneficio del fungo. Raggiunta la sede adatta, l insetto ospite
  • orde di zombie un tempo detenuti e guardie del carcere. Costretti ad una fuga precipitosa, Hershel viene morso alla caviglia da uno degli zombie costringendo
  • degli Zombie dai suoi figli. Sull isola è presente un museo, dove George trova un indizio che lo indirizza all Isola degli Zombie Isola degli Zombie L isola
  • prende in prestito i suoi nemici da Resident Evil 2, con lo stesso genere di zombie e nemici come Licker, piante Ivy, Falene Giganti e Tyrant. Inoltre, in
  • vecchia sezione sono anche infestate da Cirripedi, Headcrabs e Headcrab - Zombie L architettura di questa sezione è un esempio di tecnologia di sviluppo
  • legali per il precedente processo di violazione del copyright. Nel 1986 John pubblicò il suo nuovo album, Eye of the Zombie che non ottenne però successo

Anche gli utenti hanno cercato:

linux process defunct, thread zombie,

...
...
...