¿Qué estado debe obtener un proceso del proceso padre para convertirse en zombie?
sobes.tech AI
Respuesta de la IA
El proceso se convierte en un zombi o en un "proceso fantasma" cuando termina su ejecución (pasa a un estado EXIT_ZOMBIE), pero la entrada sobre él en la tabla de procesos aún existe, esperando a que su proceso padre lea su estado de finalización mediante la llamada al sistema wait() o waitpid(). Hasta ese momento, ocupa recursos mínimos (prácticamente solo la entrada en la tabla de procesos), pero no libera completamente los recursos asociados.
En la tabla de procesos, dicho proceso generalmente se muestra con el indicador <defunct>.
# Ejemplo de salida del comando ps, mostrando un proceso zombi
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
...
someuser 1234 0.0 0.0 0 0 pts/0 Z+ 10:00 0:00 [defunct_process]
...
Para que el proceso zombi desaparezca, el proceso padre debe llamar a wait() o waitpid(). Si el proceso padre termina antes de leer el estado de sus hijos zombi, estos hijos pasan a ser hijos del proceso init (con ID 1), que llama automáticamente a wait() para sus procesos hijos, eliminando así los zombis.
Por lo tanto, el estado principal que recibe un proceso del proceso padre para convertirse en zombi es el estado de finalización, que el padre aún no ha procesado mediante las llamadas wait*.