Beruflich Dokumente
Kultur Dokumente
Consideramos que todo proceso puede estar, como mínimo, en uno de los siguientes tres estados:
Activo: el proceso está empleando la CPU, por tanto, está ejecutándose. Puede haber
tantos procesos activos como procesadores haya disponibles. Por tanto, si el sistema
dispone de un único procesador, únicamente puede haber un proceso activo a la vez.
-
Diagrama de Estados Ampliado
En espera / Preparación: Estado por el que pasan los procesos antes de pasar a estar
preparados por primera vez. Los procesos, cuando comienzan a existir, no están
preparados para comenzar a ejecutar instrucciones hasta que el sistema no ha llevado a
cabo una serie de actividades. Una vez que el proceso está completamente cargado, ya se
puede producir la primera transición al estado preparado.
Terminado: La transición de activo a este estado ocurre cuando el proceso realiza una
llamada al sistema solicitando su propia terminación. En estas circunstancias, hay
estructuras de datos correspondientes al proceso que no pueden ser liberadas hasta que
el proceso padre del que está terminando recoja el código de terminación del mismo.
Hasta que esto ocurra, estas estructuras se mantendrán y el proceso seguirá existiendo en
estado terminado.
Hay tres posibles situaciones en las que se ejecutará el planificador del sistema operativo:
El proceso que se encuentra en el estado activo hace una llamada al sistema que, por su
naturaleza, resulta en una transición al estado bloqueado. Este es el caso de las llamadas
read (), write (), wait (), pause (), entre muchas otras. Al pasar a estado bloqueado, se
invoca al planificador para que decida que otro proceso se asignará al procesador.
Si el proceso que se encuentra en el estado activo excede el tiempo máximo de
asignación, en caso de que lo hubiere.
Si el proceso que hasta ese momento se encontraba en estado activo termina de ejecutar
su código.
Además, algunos sistemas operativos disponen de un estado terminado en el que los procesos
pasan antes de terminar su ejecución.
En el caso del núcleo de Linux, existen tres tipos de estados bloqueados y dos estados
terminados: http://www.ibm.com/developerworks/linux/library/l-task-killable/.