Durante
su vida, un proceso puede pasar por una serie de estados discretos, algunos de
ellos son:
· Listo o preparado: El proceso dispone
de todos los recursos para su ejecución, sólo le falta la CPU.
· Bloqueado: Al proceso le falta algún
recurso para poder seguir ejecutándose, además de la CPU. Por recurso se pueden
entender un dispositivo, un dato, etc. El proceso necesita que ocurra
algún evento que le permita poder proseguir su ejecución.
En estos
tres estados son posibles cuatro transiciones:
Transición
1: Ocurre
cuando un proceso descubre que no puede continuar. En algún sistema el proceso
debe ejecutar una llamada al sistema, BLOCK, para entrar en estado bloqueado.
Transición
2: Ocurre
cuando el planificador decide que el proceso en ejecución ya ha corrido el
tiempo suficiente y es tiempo de permitir que otro proceso tome tiempo de CPU.
Transición
3: Ocurre
cuando todos los procesos han utilizado su parte del tiempo y es hora de que el
primer proceso vuelva a correr.
Transición
4: Ocurre
cuando aparece el evento externo que estaba esperando un proceso (como el
arribo de alguna entrada). Si ningún otro proceso corre en ese instante, la
transición 3 se activará de inmediato y el proceso iniciara su
ejecución, de lo contrario tendrá que esperar, en estado listo.
Un proceso puede variar entre
5 distintos estados:
New: cuando el proceso está siendo creado.
Running: cuando el proceso se está ejecutando.
Waiting: cuando el proceso está esperando que se cumpla algún otro evento.
Ready: cuando el proceso esta pronto para ejecutar, esperando por la CPU.
Terminated: cuando el proceso está terminado.
Estado de los Procesos. Los bloques de control de los procesos se almacenan en colas, cada una de las cuales representa un estado particular de los procesos, existiendo en cada bloque, entre otras informaciones. Los estados de los procesos son internos del sistema operativo y transparente al usuario.
Los estados de los procesos se
pueden dividir en dos tipos: activos e inactivos.
1.- Estados activos: Son aquellos que compiten con
el procesador o están en condiciones de hacerlo. Se dividen en:
Ejecución. Estado en el que se encuentra un proceso cuando tiene el control del procesador. En un sistema monoprocesador este estado sólo lo puede tener un proceso.
Ejecución. Estado en el que se encuentra un proceso cuando tiene el control del procesador. En un sistema monoprocesador este estado sólo lo puede tener un proceso.
Preparado. Aquellos procesos que están dispuestos para ser ejecutados, pero no están en ejecución por alguna causa (Interrupción, haber entrado en cola estando otro proceso en ejecución, etc.).
Bloqueado. Son los procesos que no
pueden ejecutarse de momento por necesitar algún recurso no disponible
(generalmente recursos de entrada/salida).
2.- Estados inactivos: Son aquellos que no pueden
competir por el procesador, pero que pueden volver a hacerlo por medio de
ciertas operaciones. En estos estados se mantiene el bloque de control de
proceso aparcado hasta que vuelva a ser activado. Se trata de procesos que no han
terminado su trabajo que lo han impedido y que pueden volver a activarse desde
el punto en que se quedaron sin que tengan que volver a ejecutarse desde el
principio.
Son de dos tipos:
Suspendido bloqueado. Es el proceso que fue
suspendido en espera de un evento, sin que hayan desaparecido las causas de su
bloqueo.
Suspendido programado. Es el proceso que han sido suspendidos,
pero no tiene causa para estar bloqueado.
Transiciones
de estado de los procesos
A continuación se dan ejemplos de eventos
que pueden provocar transiciones de estado en un proceso en este modelo de tres
estados. La mayoría de estos eventos se discutirán con profundidad a lo largo
del curso:
· De ejecución á Bloqueado: al iniciar
una operación de E/S, al realizar una operación WAIT sobre un semáforo a
cero.
·
De Listo á en ejecución: cuando
lo requiere el planificador de la CPU (veremos el planificador de la CPU en el
tema de planificación de procesos).
· De Bloqueado á Listo: se
dispone del recurso por el que se había bloqueado el proceso. Por ejemplo,
termina la operación de E/S, o se produce una operación SIGNAL sobre
el semáforo en que se bloqueó el proceso, no habiendo otros procesos bloqueados
en el semáforo.
La única iniciada por el proceso de
usuario es el bloqueo, las otras tres son iniciadas por entidades externas al
proceso.
No hay comentarios:
Publicar un comentario