¿Qué es un proceso de zombie?

Un proceso de zombie es una instancia de un programa de computadora que conserva un registro de la tabla de proceso a pesar de haber terminado de ejecutar. Los procesos desaparecidos como estos generalmente se asocian con Unix® y otros sistemas operativos similares debido a la forma en que manejan los procesos infantiles. Cuando un proceso infantil ha terminado de ejecutar, el padre suele ser responsable de eliminarlo de la tabla de proceso. Por lo general, no es posible eliminar directamente un proceso de zombie con el comando Kill, aunque a menudo se puede hacer el padre para eliminarlo si el operador usa la notificación Signal Child (SigChld). Al no esto, un proceso de zombie puede eliminarse indirectamente matando al padre.

El proceso de zombie es un término descriptivo metafórico que hace referencia a los muertos vivos. Los procesos desaparecidos en UNIX® y sistemas operativos similares pueden verse como análogos a los zombis, ya que mantienen una presencia en la tabla de procesos a pesar de no realizar más sus funciones previstas. Cuando un proceso ha terminado eXeCuting A veces se dice que murió, mientras que los medios por los cuales el sistema operativo recupera su asignación de tabla de proceso puede conocerse como cosecha. Se supone que el proceso principal de un zombie cosecha a sus hijos, aunque esto no siempre sucede.

Hay ciertos casos en los que la existencia de un proceso zombie puede ser intencional o incluso deseada. Después de que un proceso infantil haya cesado la ejecución, el padre puede necesitar ejecutar otra instancia del mismo programa más adelante. Si no se ha eliminado un zombie de la tabla de proceso, no se le asignará a un nuevo niño la misma identificación (ID) que el anciano. Ciertos programas pueden beneficiarse o incluso requerir este tipo de diferenciación.

Si un proceso principal no ha ejecutado el comando de espera para cosechar zombies de los que es responsable, puede ser posible forzar el problema. Esto se hace típicamente a través del comando matar y enviar el sigchdseñal al proceso principal. Si todo funciona correctamente, un proceso principal que recibe esta señal debe cosechar a sus hijos zombie para que se puedan reutilizar sus identificaciones y posiciones de la tabla de procesos.

Bajo ciertas circunstancias, un proceso principal puede ignorar la señal SIGCHLD. Si esto ocurre y el operador aún desea que se elimine la tabla de proceso, el proceso principal puede ser asesinado. Cualquier zombis que el proceso principal creado se asignará como niños al proceso de inicio. Dado que Init periódicamente inicia el comando de espera en sus hijos, cualquier zombis de los que sea responsable eventualmente se eliminará de la tabla de proceso.

OTROS IDIOMAS