1.3. Los estados de un proceso
Texto íntegro de la conversión. Las figuras y la disposición de las notas se pueden consultar en el PDF.
1.3. Los estados de un proceso
En un sistema multiprogramado, con muchos procesos y un procesador, como describimos en el subapartado anterior, en un momento determinado sólo puede haber un proceso en ejecución; el resto de los procesos pueden estar esperando su turno para acceder al procesador o pueden estar esperando la finalización de una operación de entrada/salida. Esta diversidad de situaciones se puede representar con un diagrama de estados como el de la figura 2, donde los nodos representan los estados en los que los procesos pueden estar, y los arcos son las acciones que hacen que un proceso cambie de estado.
Página 11
Cuando el sistema acaba de crear un proceso, este proceso se encuentra en el estado inicial (1), el estado ready. El sistema puede salir de este estado por las dos causas siguientes:
-
Un acontecimiento externo al propio proceso, que puede ser debido a la acción de otro proceso mediante una señal de software, provoca la finalización del proceso (2).
-
El sistema operativo le asigna la UCP (3) y el proceso empieza a ejecutar sus instrucciones y pasa al estado run.
Del estado run se puede salir por tres motivos:
-
El proceso ejecuta la última línea de código y acaba (4).
-
El proceso ha de esperar un acontecimiento externo. El ejemplo más normal es cuando se pide una operación de entrada/salida6 (5) y el proceso espera que
sea servida. En este caso, el proceso pasa al estado wait (blocked) y se espera hasta que la petición se haya servido.
- Cuando el sistema operativo trabaja en la modalidad de tiempo compartido, si el proceso supera la cuota máxima de tiempo de uso de UCP que tiene asignada (6), deja el procesador y vuelve al estado ready. Cuando un proceso sale del estado run para pasar a ready o wait, se produce un cambio de contexto, tal como hemos mencionado en el subapartado anterior.
Figura 2
Notas y pies de figura de la fuente
El estado ready Ready significa: "Lo tengo todo a punto y estoy preparado para recibir la CPU y trabajar". (6)Por ejemplo, una entrada de información por teclado. Ved también Podéis ver la ejecución de procesos en la modalidad de tiempo compartido en el subapartado 2.3 del módulo didáctico Introducción a los sistemas operativos.
Página 12
Finalmente, los procesos tienen dos destinos posibles cuando salen del estado wait:
-
Uno, hacia el estado ready, que es cuando finaliza la operación por la que esperaban (7). Dicho de otra manera, cuando el proceso tiene bastante información y puede continuar. Por ejemplo, si el proceso estaba pendiente de una operación de entrada/salida y ya ha llegado la información esperada porque el usuario ha pulsado una tecla.
-
Otro, hacia la finalización del proceso (8), debido a un acontecimiento externo al propio proceso, como sucedía en el estado ready.
Para saber qué hace cada uno de los procesos y así poder controlar sus recursos, el sistema operativo mantiene unas colas de procesos en función de su estado. Así, el sistema tiene una cola de procesos preparados (ready) y una de procesos en estado de espera (wait). No podemos hablar de una cola de procesos en ejecución, ya que en entornos monoprocesadores sólo hay un proceso en ejecución. De esta manera el procedimiento del núcleo del SO encargado de la planificación del procesador puede examinar la lista de procesos preparados con el fin de asignar el procesador al proceso que más convenga.
Figura 3
Ver fragmento extraído sin normalizar
1.3. Los estados de un proceso
En un sistema multiprogramado, con muchos procesos y un procesador, como
describimos en el subapartado anterior, en un momento determinado sólo
puede haber un proceso en ejecución; el resto de los procesos pueden estar
esperando su turno para acceder al procesador o pueden estar esperando la
finalización de una operación de entrada/salida. Esta diversidad de situaciones
se puede representar con un diagrama de estados como el de la figura 2, donde
los nodos representan los estados en los que los procesos pueden estar, y los
arcos son las acciones que hacen que un proceso cambie de estado.
## Página 11
<!-- source-page: 11 -->
GNUFDL • PID_00214802 11 La gestión de procesos
Cuando el sistema acaba de crear un proceso, este proceso se encuentra en el El estado ready
estado inicial (1), el estadoready. El sistema puede salir de este estado por las
dos causas siguientes: Ready significa: "Lo tengo todo
a punto y estoy preparado pa-
ra recibir la CPU y trabajar".
1) Un acontecimiento externo al propio proceso, que puede ser debido a la
acción de otro proceso mediante una señal de software, provoca la finalización
del proceso (2).
2) El sistema operativo le asigna la UCP (3) y el proceso empieza a ejecutar sus
instrucciones y pasa al estadorun.
Del estado run se puede salir por tres motivos:
1) El proceso ejecuta la última línea de código y acaba (4).
2) El proceso ha de esperar un acontecimiento externo. El ejemplo más normal (6)Por ejemplo, una entrada de in-
es cuando se pide una operación de entrada/salida6 (5) y el proceso espera que formación por teclado.
sea servida. En este caso, el proceso pasa al estadowait (blocked) y se espera
hasta que la petición se haya servido.
3) Cuando el sistema operativo trabaja en la modalidad de tiempo comparti- Ved también
do, si el proceso supera la cuota máxima de tiempo de uso de UCP que tiene
asignada (6), deja el procesador y vuelve al estado ready. Podéis ver la ejecución de pro-
cesos en la modalidad de tiem-
po compartido en el subapar-
tado 2.3 del módulo didáctico
Cuando un proceso sale del estado run para pasar a ready o wait, se produce un Introducción a los sistemas ope-
cambio de contexto, tal como hemos mencionado en el subapartado anterior. rativos.
Figura 2
## Página 12
<!-- source-page: 12 -->
GNUFDL • PID_00214802 12 La gestión de procesos
Finalmente, los procesos tienen dos destinos posibles cuando salen del estado
wait:
1) Uno, hacia el estado ready, que es cuando finaliza la operación por la que
esperaban (7). Dicho de otra manera, cuando el proceso tiene bastante infor-
mación y puede continuar. Por ejemplo, si el proceso estaba pendiente de una
operación de entrada/salida y ya ha llegado la información esperada porque
el usuario ha pulsado una tecla.
2) Otro, hacia la finalización del proceso (8), debido a un acontecimiento ex-
terno al propio proceso, como sucedía en el estado ready.
Para saber qué hace cada uno de los procesos y así poder controlar sus recursos,
el sistema operativo mantiene unas colas de procesos en función de su estado.
Así, el sistema tiene una cola de procesos preparados (ready) y una de proce-
sos en estado de espera (wait). No podemos hablar de una cola de procesos
en ejecución, ya que en entornos monoprocesadores sólo hay un proceso en
ejecución. De esta manera el procedimiento del núcleo del SO encargado de la
planificación del procesador puede examinar la lista de procesos preparados
con el fin de asignar el procesador al proceso que más convenga.
Figura 3