¿Qué es un proceso o hilo zombie y qué los crea? ¿Los acabo de matar o puedo hacer algo para obtener un diagnóstico sobre cómo murieron?
multithreading
debugging
linux-development
DesarrolladorDon
fuente
fuente
Respuestas:
Un proceso zombie es un proceso muerto.
El sistema operativo solo guarda información para que el padre pueda verificar el código de salida de los procesos en algún momento posterior, por lo que el sistema operativo mantiene información sobre ellos y, por lo tanto, aparecen cuando se miran los procesos.
No. Ya están muertos.
El sistema operativo se limpiará cuando el padre muera u obtenga el código de estado del sistema operativo.
No. El padre puede pero no el caparazón.
fuente
Un hilo zombie es un hilo que ha terminado su ejecución pero no ha terminado limpiamente. Desasigna los recursos utilizados por el subproceso pero mantiene una entrada en la tabla de subprocesos / procesos.
Teóricamente, el hilo zombie sale de este estado ejecutando un _join (POSIX). Significa que cuando tu main esté terminado, el proceso zombie sería eliminado con el programa.
fuente
Un proceso zombie es un proceso que ha finalizado su ejecución y se ha eliminado de la lista de procesos programados , pero aún no se ha eliminado. Dependiendo del sistema operativo, tt puede o no tener varios recursos asignados, y puede ser consultado, pero no se ejecutará.
Algunos sistemas operativos (por diseño) no pueden crear o eliminar recursos dinámicamente más allá de un determinado punto de evento (por ejemplo, VxWorks Cert). Tales sistemas a menudo evitan esta limitación mediante el uso de grupos de recursos preasignados de los que recuperan, devuelven y reutilizan elementos. Sin embargo, cuando un proceso en un sistema de este tipo finaliza, no se puede eliminar y, en su lugar, se zombificará (finalizará y eliminará de la lista de programación).
Espero que esto ayude.
fuente
Cuando se mata el hilo / proceso, pero todavía hay un registro en la tabla correspondiente al respecto, se convierte en un zombi.
Esto puede suceder cuando, por ejemplo, un proceso padre crea un proceso hijo, pero termina antes que el hijo. Cuando el proceso secundario finaliza, le informa a su padre sobre la finalización. Posteriormente, el registro del proceso secundario se elimina de la tabla correspondiente. Pero su padre ya ha terminado, por lo que el registro aún permanece en la tabla.
No hay forma de deshacerse de los zombies sino reiniciar el
fuente