Che cos'è un processo o una sequenza di zombie?

10

Che cos'è un processo o thread zombie e cosa li crea? Li uccido o posso fare qualcosa per ottenere la diagnostica su come sono morti?

    
posta DeveloperDon 07.09.2012 - 09:37
fonte

4 risposte

15

What is a zombie process or thread, and what creates them?

Un processo zombi è un processo morto.
Il sistema operativo si limita a mantenere le informazioni in giro in modo che il genitore possa controllare il codice di uscita dei processi in un secondo momento, in quanto tale sistema mantiene le informazioni su di essi e quindi si presentano quando guardano i processi.

Do I just kill them,

No. Sono già morti.
Il sistema operativo pulirà quando il genitore muore o ottiene il codice di stato dal sistema operativo.

or can I do something to get diagnostics about how they died?

No. Il genitore può ma non la shell.

    
risposta data 07.09.2012 - 09:53
fonte
4

Un thread zombie è un thread che ha terminato la sua esecuzione ma non è terminato in modo pulito. Distribuisce le risorse utilizzate dal thread ma mantiene una voce nella tabella thread / processo.

In teoria, il thread zombie esce da questo stato eseguendo un _join (POSIX). Significa che quando il tuo main è finito, il processo zombi verrebbe ucciso con il programma.

    
risposta data 07.09.2012 - 09:49
fonte
2

Un processo zombi è un processo che ha entrambi terminato la sua esecuzione ed è stato rimosso dall'elenco dei processi programmati , ma non è ancora stato eliminato. A seconda del sistema operativo, tt potrebbe o potrebbe non avere ancora varie risorse assegnate e potrebbe essere interrogato, ma non verrà eseguito.

Alcuni SO (in base alla progettazione) non sono autorizzati a creare o eliminare dinamicamente le risorse oltre un certo punto di evento (ad esempio, Cert di VxWorks). Tali sistemi spesso aggirano questa limitazione utilizzando pool di risorse pre-allocate da cui recuperare, restituire e riutilizzare gli articoli. Tuttavia, quando un processo su un sistema di questo tipo termina, non può essere cancellato e diventerà zombificato (terminato e rimosso dalla lista di pianificazione).

Spero che questo aiuti.

    
risposta data 07.09.2012 - 14:10
fonte
0

Quando il thread / processo viene ucciso, ma c'è ancora un record nella tabella corrispondente, diventa uno zombie.

Questo può accadere quando, ad esempio, un processo genitore crea un processo figlio, ma termina prima del bambino. Quando il processo figlio termina, indica al genitore di chiudere. Successivamente il record del processo figlio viene rimosso dalla tabella corrispondente. Ma il genitore è già terminato, quindi il record rimane ancora nella tabella.

Non c'è modo di sbarazzarsi degli zombi, ma riavviare

    
risposta data 07.09.2012 - 12:17
fonte

Leggi altre domande sui tag