Estados y transiciones de los procesos
El principal trabajo del procesador es ejecutar las
instrucciones de máquina que se encuentran en memoria principal. Estas
instrucciones se encuentran en forma de programas. Para que un programa pueda
ser ejecutado, el sistema operativo crea un nuevo proceso, y el procesador
ejecuta una tras otra las instrucciones del mismo. En un entorno de
multiprogramación, el procesador intercalará la ejecución de instrucciones de
varios programas que se encuentran en memoria. El sistema operativo es el
responsable de determinar las pautas de intercalado y asignación de recursos a
cada proceso. Aunque cada proceso se una entidad independiente, con su propio
contador de programa y estado interno, los procesos a menudo necesitan
interactuar con otros procesos. Un proceso podría generar ciertas salidas que
otro proceso utilizan como entradas, en el comando de Shell. Cuando un proceso
se bloquea, lo que hace porque le es imposible continuar lógicamente, casi
siempre porque está separando entradas que todavía no están disponibles,
también puede ser que un programa que conceptualmente está listo y en
condiciones de ejecutarse sea detenido porque el sistema operativo ha decidido
asignar la CPU a otro proceso durante un tiempo. Estas dos condiciones son
totalmente distintas, en el primer caso, la suspensión es inherente al problema
(no es posible procesar la línea de comandos del usuarios antes de que este la
teclee). En el segundo caso, se trata de un tecnicismo del sistema (no hay
suficiente: CPU para darle a cada proceso su propio procesador privado).
1.- Ejecutándose (usando realmente la CPU
en este instante).
2.- Listo (se puede ejecutar, pero se suspendió
temporalmente para dejar que otro proceso se ejecute).
3.- Bloqueo (no puede ejecutarse en tanto
no ocurra algún evento externo).
Puede haber cuánto transiciones entre
estos tres estados, como se muestra.
La transacción 1 ocurre cuando un proceso descubre que no
puede continuar. En algunos sistemas el proceso debe ejecutar una llamada al
sistema, block, para pasar al estado bloqueado. En otros sistemas, incluido
MINIX, cuando un proceso lee de un conducto o de un archivo especial, (p.ej.,
una terminal) y no hay entradas disponibles, se bloquea automáticamente.
Las transiciones 2 y 3 son causadas por el planificador de
procesos, un parte del sistema operativo, sin que el proceso se entere siquiera
de ellas.
La transición 2 ocurre cuando el planificador decide que el
proceso en ejecución ya se ejecutó durante suficiente tiempo y es ahora de
dejar que otros procesos tengan algo de tiempo de CPU.
La transacción 3 ocurre cuando todos los demás procesos han
disfrutado de una porción justa y es hora de que el primer proceso reciba otra
vez la CPU para ejecutarse.
La transacción 4 ocurre cuando acontece el suceso externo
que un proceso estaba esperando (como la llegada de entrada). Sin ningún otro
proceso se esta ejecutando en ese instante, se dispara de inmediato la
transacción 3 y el proceso comienza a ejecutarse.
En caso contrario, el proceso tal vez tenga que esperar en
el estado listo durante cierto tiempo hasta que la CPU este disponible. Usando
el modelo de procesos, es mucho mas fácil visualizar lo que esta sucediendo
dentro del sistema.
No hay comentarios.:
Publicar un comentario