Podríamos definir a los procesos
como programas que están corriendo en nuestro Sistema Operativo.
Dependiendo de la forma en que corren estos programas en LINUX se los puede
clasificar en tres grandes categorías:
- Procesos Normales.
- Procesos Daemon.
- Procesos Zombie.
Los procesos en GNU/Linux son organizados de forma jerárquica, cada proceso es lanzado por un proceso padre y es denominado proceso hijo. De está forma, todos los procesos en GNU/Linux son hijos de init ya que este es el primer proceso que se ejecuta al iniciar el ordenador y init es padre de todos los procesos. Si se mata al proceso padre, también desaparecerán los procesos hijos.
Procesos Normales
Los procesos de tipo normal generalmente son lanzados en una terminal (tty) Y corren a nombre de un usuario. Osea, son los programas que utiliza el usuario generalmente y se encuentran conectados a una terminal. El programa aparecerá el pantalla y interactuara con el usuario.
Proceso Daemon
Los
procesos de tipo Daemon corren a nombre de un usuario y no tienen
salida directa por una terminal, es decir corren en 2º plano.
Generalmente los conocemos como servicios. La gran mayoría de ellos en
vez de usar la terminal para escuchar un requerimiento lo hacen a través
de un puerto.
Proceso Zombie
En
sistemas operativos Unix un proceso zombie es un proceso que ha
completado su ejecución pero aún tiene una entrada en la tabla de
procesos. Esto se debe a que dicho proceso (proceso hijo) no recibió una
señal por parte del proceso de nivel superior (proceso padre) que lo
creó informándole que su vida útil ha terminado. Se pueden deber a
errores de programación, a situaciones no contempladas por el
programador y generalmente provocan lentitud y/o inestabilidad en el
Sistema.
Los principales estados en los que pueden encontrarse los procesos en Linux/Unix son los siguientes:
running (R) : Procesos que están en ejecución.
sleeping (S) : Procesos que están esperando su turno para ejecutarse.
stopped (D) : Procesos que esperan a que se finalice alguna operación de Entrada/Salida.
zombie (Z) : Procesos que han terminado pero que siguen apareciendo en la tabla de procesos.
Todos los procesos que corren en nuestro Sistema Operativo dependen del primer proceso que se lanza después del arranque: el proceso init, el padre de todos los procesos. Muchas veces los procesos no son únicos sino que dan lugar a muchos procesos secundarios.
Teóricamente
el padre de cada uno de ellos debería en todo momento vigilar que es lo
que hacen estos hijos. Si por alguna razón este padre falla en el
control se pueden llegar a producir procesos de tipo zombie que pueden
llenar el árbol de procesos, ocasionando que tengamos que reiniciar el
equipo.
¿Podemos ver el árbol de procesos? En nuestro Sistema Operativo está representado en el directorio /proc, que es una estructura de arbol virtual que genera y monta nuestro kernel durante el arranque. En virtud de esto, cada vez que querramos ver un proceso debemos mirar por esta ventana que nos muestra realmente qué es lo que está ocurriendo con nuestro kernel.
Para ver el estado de los procesos en el sistema operativo tenemos varios comandos.
Tecleando el comando top desde una terminal se nos mostrarán todos estos procesos; este comando monitoriza dinámicamente los procesos del sistema mostrando su estado, uso de CPU, cantidad de memoria, tiempo desde su inicio, nombre, etc.
Para ver el estado de los procesos en el sistema operativo tenemos varios comandos.
Tecleando el comando top desde una terminal se nos mostrarán todos estos procesos; este comando monitoriza dinámicamente los procesos del sistema mostrando su estado, uso de CPU, cantidad de memoria, tiempo desde su inicio, nombre, etc.
El comando ps es el encargado de mostrar todos los procesos que están ocurriendo en el sistema. Este comando no es interactivo, saca una foto de los procesos que están corriendo en ese mismo momento.
Fuente: http://es.wikibooks.org/wiki/Descripci%C3%B3n_del_proceso_init
Fuente: http://www.creangel.com/drupal/?q=node/116