miércoles, 15 de febrero de 2012

Diagrama de los posibles estados que tiene un proceso

Para representar un proceso debemos recoger toda la información que nos de el estado de ejecución de un programa: el código y datos del programa, una pila de ejecución, el PC indicando la próxima instrucción, los valores actuales del conjunto de registros de la CPU, un conjunto de recursos del sistema (memoria, archivos abiertos, etc.).
Varios procesos pueden ejecutar incluso el mismo programa (p.ej. un editor) pero cada uno uno tiene su propia representación.
Cada proceso está en un estado de ejecución que caracteriza lo que hace y determina las acciones que se pueden sobre él.
Preparado - en espera de la CPU.
Ejecutándose - ejecutando instrucciones.
Bloqueado - esperando por un suceso.
Conforme un programa se ejecuta, pasa de un estado a otro.





A su vez el proceso (o partes del espacio de memoria virtual del proceso) puede estar cargado en memoria o "swapped" a disco.

Además de estos estados básicos un proceso puede estar detenido (stopped). En este caso se le prohibe ejecutar al proceso. Hay mecanismos para detener y rearrancar un proceso a través de las señales STOP y CONT que veremos más adelante.
El estado stopped es el estado en que queda un proceso lanzado a correr desde un interprete de comandos (shell) cuando se presiona o la tecla configurada como "suspend" en el terminal que estemos utilizando.
Finalmente el otro estado en que a menudo un administrador encuentra a un proceso es el estado zombie o exiting. Un proceso en este estado está en proceso de terminación. Este caso se discute más en detalle en el apartado "Ciclo de vida de un proceso".

No hay comentarios:

Publicar un comentario