Cos'è un processo o thread zombi e cosa li crea? Li uccido o posso fare qualcosa per ottenere una diagnosi su come sono morti?
Cos'è un processo o thread zombi e cosa li crea? Li uccido o posso fare qualcosa per ottenere una diagnosi su come sono morti?
Risposte:
Cos'è un processo o thread zombi e cosa li crea?
Un processo di zombi è un processo morto.
Il sistema operativo sta semplicemente conservando le informazioni in modo che il genitore possa controllare il codice di uscita dei processi in un secondo momento in quanto tale il sistema operativo mantiene le informazioni su di loro e quindi si presentano quando guardano i processi.
Li uccido e basta,
No. Sono già morti.
Il sistema operativo verrà pulito quando il genitore muore o ottiene il codice di stato dal sistema operativo.
o posso fare qualcosa per ottenere diagnosi su come sono morti?
No. Il genitore può ma non la shell.
Un thread zombi è 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.
Teoricamente, il thread zombi esce da questo stato eseguendo un _join (POSIX). Significa che quando il tuo principale è finito, il processo di zombi verrà ucciso con il programma.
Un processo zombi è un processo che ha sia terminato la sua esecuzione che è stato rimosso dall'elenco dei processi pianificati , ma non è stato ancora eliminato. A seconda del sistema operativo, a tt potrebbero essere o meno assegnate varie risorse e potrebbe essere interrogato, ma non funzionerà.
Alcuni sistemi operativi (in base alla progettazione) non sono autorizzati a creare o eliminare dinamicamente risorse oltre un determinato punto di evento (ad esempio VxWorks Cert). Tali sistemi aggirano spesso questa limitazione utilizzando pool di risorse pre-allocati da cui recuperano, restituiscono e riutilizzano gli elementi. Tuttavia, quando un processo su tale sistema termina, non può essere eliminato e verrà invece zombificato (terminato e rimosso dall'elenco di pianificazione).
Spero che questo ti aiuti.
Quando il thread / processo viene ucciso, ma c'è ancora un record nella tabella corrispondente su di esso, diventa uno zombi.
Ciò può accadere quando, ad esempio, un processo genitore crea un processo figlio, ma termina prima del figlio. Quando termina il processo figlio, indica al suo genitore di terminare. Successivamente il record del processo figlio viene rimosso dalla tabella corrispondente. Ma il suo genitore è già terminato, quindi il record rimane ancora nella tabella.
Non c'è modo di sbarazzarsi degli zombi ma riavviare il