codice del programma difettoso porta spesso a processi non terminano correttamente , causando processi zombie derivanti programmi in esecuzione . Il programmatore non ha programmato un processo padre di utilizzare il sistema "wait" chiamare per consentire un processo figlio per eseguire in modo indipendente , mentre il padre viene sospeso . Ciò significa che il processo figlio non restituisce un messaggio di stato di uscita al genitore quando termina , in modo che il genitore non riceve l'avviso circa la cessazione , e il processo figlio diventa un processo zombie . 
 Considerazioni 
 
 non abbiate fretta di terminare i processi zombie , non appena li trovate . A volte i processi principali processi zombie lasciano di proposito in modo che lo stesso numero ID del processo non è dato a due processi separati durante la durata della vita del programma. Se si vede solo pochi processi zombie in un momento che non sono persistenti , i processi genitori possono eventualmente di porvi fine. Tuttavia, se il sistema inizia a rallentare , con una grande quantità di processi in esecuzione , terminare qualche processo zombie può migliorare le prestazioni . 
 Individuazione Zombies 
 
 Utilizzando un strumento di comando Unix per eseguire il comando " ps " - abbreviazione di stato del processo - elenca tutti i processi attualmente in esecuzione su un sistema . Qualsiasi processo indicato come " z" sotto la colonna Stat è un processo zombie . Uno qualsiasi di questi processi che esistono , mentre il processo padre o il programma è ancora in esecuzione è indicativo del codice imperfetto , mentre i processi zombie in esecuzione senza un programma genitore di solito rappresentano un bug nel sistema operativo stesso . 
 Uccidere gli zombie 
 processi zombie 
 conservano i numeri ID di processo nella tabella voce di processo, in modo da avere anche molti di loro fanno causare il sistema a corto di questi numeri . Tuttavia, è possibile forzatamente terminare i processi zombie per liberare i loro valori ID di processo nella tabella. Terminate loro utilizzando il comando " kill- s SIGCHLD 
 
              
              Informazioni correlate
                  
sistemi © www.354353.com