PROCESO DEAMON
Un demonio, daemon o daemon (Disk And Execution MONitor)
En un sentido técnico, un proceso de un sistema basado en
Unix es un Daemon cuando su proceso padre es terminado y el proceso init es
asignado como nuevo padre del proceso Daemon, además, el proceso daemon no
posee ninguna interfaz con el usuario, esto quiere decir que el proceso es
iniciado y se ejecuta en segundo plato sin ninguna intervención del usuario,
además de esto el proceso Daemon no puede ser terminado o se reiniciara automáticamente
en caso de ser terminado.
Las tareas que puede desempeñar un demonio pueden ser muy
variadas: responder a peticiones de red, control de actividad de hardware y
software, configurar hardware (como devfsd en algunos sistemas
GNU/Linux, ejecutar tareas periódicas o pre programadas (como el
demonio cron), etc.
Un tipo especial de demonio son los Superdemonios o Superdaemons,
que son demonios que pueden controlar a otros demonios del sistema. U ejemplo
de ello es inetd, que es un demonio que gestiona las conexiones de varios
demonios. La ejecución de este tipo de demonios reduce la carga del sistema en
comparación con lo que significaría ejecutar cada uno de los demonios que
gestionan de forma individual.
PROCESO ZOMBIE
En un sistema operativo basado en Unix un proceso zombie es
un proceso que ha completado su ejecución pero aun tiene una entrada en la
tabla de procesos, esta entrada se sigue necesitando para que el proceso padre
pueda leer el retorno del proceso.
El proceso zombie no se puede terminar con comandos como
kill.
Cuando un proceso termina toda la memoria y los recursos
asociados con el son liberados pero el proceso continua en la tabla de procesos,
el proceso padre puede leer el retorno usando la llamada al sistema
"wait", solo así el zombie es removido de la tabla. La llamada wait
debe ser ejecutada en un proceso secuencial pero es comúnmente ejecutada en un
manejador de eventos por la señal SIGCHLD que recibe el padre cuando el hijo
muere.
Para remover Zombies del sistema se puede mandar SIGCHLD al
padre manualmente usando el comando kill, si el proceso padre se rehúsa a
enterrar al zombie, el siguiente paso es remover el proceso padre y el init se
convertirá en el nuevo padre. El proceso init periódicamente ejecuta la llamada
al sistema wait para terminar todos los zombies que estén asociados a él.
No hay comentarios:
Publicar un comentario