Está en la página 1de 15

2.2 Estado y Transiciones del Proceso.

Como se indic anteriormente, el proceso es la unidad de


procesamiento gestionada por el sistema operativo. Estos elementos se organizan
en tres grupos: estado del procesador, imagen de memoria y tablas del sistema
operativo.

Un proceso puede estar en cualquiera de los siguientes tres estados:
- Listo, En ejecucin y Bloqueado.
Los procesos en el estado listo son los que pueden pasar a estado de ejecucin si
el planificador los selecciona. Los procesos en el estado ejecucin son los que se
estn ejecutando en el procesador en ese momento dado. Los procesos que se
encuentran en estado bloqueado estn esperando la respuesta de algn otro
proceso para poder continuar con su ejecucin. Por ejemplo operacin de E/S.


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 algn 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.

Estado del procesador
El estado del procesador est formado por el contenido de todos sus registros,
que se enumeran seguidamente:
Registros generales. De existir registros especficos de coma flotante
tambin se incluyen aqu.
Contador de programa.

Informacin del proceso
Puntero de pila.
Registro o registros de estado.
Registros especiales. Como puede ser el RIED (registro identificador de
espacio de direccionamiento).
El estado del procesador de un proceso reside en los registros del procesador,
cuando el proceso est en ejecucin, o en el bloque de control de proceso (BCP),
cuando el proceso no est en ejecucin.
Cuando el proceso est ejecutando, el estado del procesador vara de acuerdo al
flujo de instrucciones maquina ejecutado. En este caso, la copia del estado del
procesador que reside en el BCP no est actualizada. Tngase en cuenta que los
registros de la maquina se utilizan para no tener que acceder a la informacin de
memoria, dado que es mucho ms lenta. Por tanto, no tiene sentido plantear que,
en cada modificacin de un registro, se actualice su valor en el BCP, puesto que
est en memoria.
Sin embargo, cuando se detiene la ejecucin de un proceso, como consecuencia
de la ejecucin de una interrupcin, es muy importante que el sistema
operativo actualice la copia del estado del procesador en su BCP. En trminos
concretos, la rutina del sistema operativo que trata las Interrupciones lo primero
que ha de hacer es salvar el estado del procesador en el BCP del proceso
interrumpido.

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 estn en
condiciones de hacerlo. Se dividen en:

Ejecucin. Estado en el que se encuentra un proceso cuando tiene el control del
procesador. En un sistema monoprocesador este estado slo lo puede tener un
proceso.
Preparado. Aquellos procesos que estn dispuestos para ser ejecutados, pero no
estn en ejecucin por alguna causa (Interrupcin, haber entrado en cola estando
otro proceso en ejecucin, etc.).
Bloqueado. Son los procesos que no pueden ejecutarse de momento por necesitar
algn 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 suspendido, pero no
tiene causa parta estar bloqueado.

Estados de los procesos
Nuevo: El proceso es creado.
Ejecucin: Se ejecutan instrucciones.
Espera: El proceso est en espera por la ocurrencia de algn evento.
Listo: El proceso est esperando a que le asignen el procesador.
Terminado: El proceso finaliza su ejecucin.
Diagrama de estados de los procesos.

Informacin asociada con cada proceso:
Estado del proceso
Program counter
Registros del CPU
Informacin de planificacin del CPU
Memoria
Informacin para administracin
Informacin de estatus de E/S

Creacin de Procesos.
En UNIX el lanzamiento de procesos se realiza a travs de la llamada al sistema
fork ().
Para utilizar esta llamada al sistema se emplea el header <unistd.h>.




Su sintaxis es:
Pid=fork ();

Una llamada exitosa a fork () crea un proceso que es una copia del proceso que lo
invoco. Duplica las variables del proceso original con una excepcin, el nuevo
proceso creado recibe el nombre de proceso hijo. El proceso que lo creo se
denomina proceso padre, y el sistema devuelve un 0 al proceso hijo y un valor
positivo distinto de 0 (pid del hijo) al proceso padre.

Despus de la llamada exitosa a fork (), tanto el proceso padre como el hijo corren
en forma simultnea a partir del punto siguiente a la invocacin del fork.

La siguiente muestra, la situacin:
..
Printf (Antes del fork \n);
Pid=fork ();
Printf (Despus del fork\n);
.
AC
A
Antes
------------------------------------------ fork ------------------------------------------------------------
Despus
..
Printf (Antes del fork \n); Pid=fork();

Printf (Despus del fork\n);
.

AC
..
Printf (Antes del fork \n); Pid=fork();

Printf (Despus del fork\n);
.
AC
B
A
Se muestran 3 lneas de cdigo de un proceso; un printf, un fork y otro printf.

Hay 2 secciones en la figura: antes y despus. La seccin antes muestra la
situacin antes de la invocacin al fork. Slo existe el proceso A. El Apuntador AC
(apuntador de cdigo) seala a la instruccin que se est ejecutando. Como se
est indicando el primer printf Imprime el texto Antes del fork.
La seccin despus muestra la situacin inmediatamente despus de la llamada a
fork. Existen ahora 2 procesos: Ay B. A es el proceso original, es decir, el proceso
padre. B es una copia de A, es decir el proceso hijo. Ambos corren en forma
simultnea. Dado que el apuntador AC, seala al ltimo printf, se imprime el texto
Despus del fork. Se imprime 2 veces, una por parte del padre y la otra por parte
del hijo.

Descriptor de procesos y recursos.
Es una estructura de datos asociada a una entidad informtica ya sea un
(Recurso o Proceso), en la cual se indica y actualiza todas las informaciones
relativas a dicha entidad.
En el caso de un proceso la informacin general que contiene es:
1).- Identificador: Que puede ser interno y externo.
- Interno: Sistemas.
- Externo: Usuario.
2).- Descripcin de la mquina virtual asociada: como espacio virtual asignado,
tipo de mapeo, tipo de acceso.
3).- Descripcin de los recursos de la mquina que usa como: Lista de recursos
que el proceso tiene derecho a solicitar, direccin real en la memoria principal,
estado de las variables internas del CPU, prioridad, etc.
4).- Estados funcionales del proceso: Los estados de los procesos son
internos del sistema operativo y transparente al usuario. Para ste, su
proceso estar siempre en ejecucin independientemente del estado en que
se encuentre internamente el sistema.


Los procesos se pueden encontrar en tres estados.
Estados de los procesos.
- Un proceso puede encontrarse en estado de ejecucin, bloqueado o listo
(que tambin se llama ejecutable).
De estos estados de los procesos se derivan las siguientes transiciones y estados:

Transicin: El paso de un estado a otro.
Transiciones:
1. El proceso se bloquea en la entrada.
2. El planificador elige otro proceso.
3. El planificador elige este proceso.
4. La entrada se vuelve disponible.


Estados:

1. Ejecucin (que en realidad hace uso del CPU en ese instante).
2. Bloqueado (incapaz de correr hasta que suceda algn evento externo.
3. Listo (ejecutable; se detiene temporalmente para permitir que se ejecute
otro
Proceso).

En estos tres estados son posibles cuatro transiciones:

1. Ocurre cuando un proceso descubre que no puede continuar. En algn
sistema el proceso debe ejecutar una llamada al sistema, BLOCK, para entrar en
estado bloqueado.
2 y 3. Son ocasionadas por el planificador del proceso, que es parte del sistema
operativo sin que el proceso llegue a saber de ella.
2. Ocurre cuando el planificador decide que el proceso en ejecucin ya ha
corrido el tiempo suficiente y es tiempo de permitir que otro proceso tome tiempo
de CPU.
3. Ocurre cuando todos los procesos han utilizado su parte del tiempo y es
hora de que el primer proceso vuelva a correr.
4. Ocurre cuando aparece el evento externo que estaba esperando un
proceso (como el arribo de alguna entrada). Si ningn otro proceso corre en ese
instante, la transicin 3 se activar de inmediato y el proceso iniciara su
ejecucin, de lo contrario tendr que esperar, en estado listo.

* Estados activos.
Son aquellos que compiten por el procesador o estn en condiciones de
hacerlo.
Estados de un proceso y sus transiciones.

. Ejecucin. Estado en el que se encuentra un proceso cuando tiene el control
del procesador. En un sistema monoprocesador este estado slo lo puede tener
proceso.
. Listo. Aquellos procesos que estn dispuestos para ser ejecutados, pero no
estn en ejecucin por alguna causa (interrupcin, haber entrado, en la cola
estando otro proceso en ejecucin, etc.
. Bloqueados. Son los procesos que no pueden ejecutarse de momento por
necesitar algn recurso no disponible (generalmente recursos de E/S).

* Estados inactivos.
Son aquellos que no pueden competir por el procesador, pero que puedan
volver a hacerlo por medio de ciertas operaciones. En estos estados se mantiene
el bloque de control de proceso suspendido hasta que vuelva a ser activado.
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 preparado.
Es el proceso que ha sido suspendido, pero no tiene causa para estar bloqueado.

Transiciones de estado.

Todo proceso a lo largo de su existencia puede cambiar de estado varias veces.
Cada uno de estos cambios se denomina transicin de estado.

Transiciones de estado de proceso.
Transiciones de estado.
La asignacin del CPU al primer proceso de la lista de listos es llamada despacho,
y es ejecutado por la entidad del sistema llamada despachador. Indicamos esta
transicin de la manera siguiente:

Despacho (nombre del proceso): Listo en ejecucin.
Mientras el proceso tenga CPU, se dice que est en ejecucin. Para
prevenir que cualquier proceso monopolice el sistema, ya sea de manera
accidental o maliciosamente el sistema operativo ajusta un reloj de interrupcin del
hardware para permitir al usuario ejecutar su proceso durante un intervalo de
tiempo especfico o cunto. Si el proceso no abandona voluntariamente el CPU,
antes de que expire el intervalo, el reloj genera una interrupcin, haciendo que el
sistema operativo recupere el control. El sistema operativo hace que el proceso
que anteriormente se hallaba en estado de ejecucin pase al de listo, y hace que
el primer proceso de la lista de listos pase al estado de ejecucin.

Estas transiciones de estado se indican como:

- tiempo excedido (nombre del proceso): en ejecucin Listo
- bloqueado (nombre del proceso): en ejecucin
bloqueado

El proceso cambia del estado bloqueado al estado listo:
- despertar (nombre del proceso): bloqueado Listo.

Con esto tenemos definidas 4 transacciones de estado.
- despacho (nombre del proceso): Listo en ejecucin
- tiempo excedido (nombre del proceso): en ejecucin Listo
- bloqueado (nombre del proceso): en ejecucin bloqueado
- despertar (nombre del proceso): bloqueado Listo.

Suspensin y Reanudacin.
Un proceso suspendido no puede proseguir sino hasta que lo reanuda otro
proceso. Reanudar (o activar) un proceso implica reiniciarlo a partir del punto en el
que se suspendi.

Las operaciones de suspensin y reanudacin son importantes por diversa
razones:

* Si un sistema est funcionando mal y es probable que falle, se puede suspender
los procesos activos para reanudarlos cuando se haya corregido el problema.
* Un usuario que desconfe de los resultados parciales de un proceso puede
suspenderlo (en vez de abortarlo) hasta que verifique si el proceso funciona
correctamente o no.
* Algunos procesos se puede suspender como respuesta a las fluctuaciones a
corto plazo de la carga del sistema y reanudarse cuando las cargas regresen a
niveles normales.

Transiciones de estados de los procesos con suspensin y reanudacin.
Muestra el diagrama de transiciones de estado de los procesos, modificado
para incluir las operaciones de suspensin y reanudacin. Se han aadido dos
nuevos estados, denominados suspendido-listo y suspendido bloqueado; no hay
necesidad de un estado suspendido-ejecutado. Sobre la lnea discontinua se
encuentran los estados activos, y debajo de ella los estados suspendidos.
Una suspensin puede ser iniciada por el propio proceso o por otro. En un
sistema con un solo procesador el proceso en ejecucin puede suspenderse a s
mismo; ningn otro proceso podra estar en ejecucin al mismo tiempo para
realizar la suspensin (aunque otro proceso s podra solicitar la suspensin
cuando se ejecute). En un sistema de mltiples procesadores, un proceso en
ejecucin puede suspender a otro que se est ejecutando en ese mismo momento
en un procesador diferente.
Solamente otro proceso puede suspender un proceso listo. La transicin
correspondiente es:
1) Suspender (nombre_del_proceso): Listo Suspendido-Listo.
Un proceso puede hacer que otro proceso que se encuentre en el estado
suspendido-listo pase al estado listo. La transicin correspondiente es:

2) reanudar (nombre_del_proceso): Suspendido-Listo Listo.
Un proceso puede suspender a otro proceso que est bloqueado. La transicin
correspondiente es:
3) suspender (nombre_del_proceso): Bloqueado Suspendido-Bloqueado.
Un proceso puede reanudar otro proceso que est suspendido-bloqueado. La
transicin correspondiente es:
4) reanudar (nombre_del_proceso): Suspendido-Bloqueado Bloqueado.
Como la suspensin es por lo general una actividad de alta prioridad, se debe
realizar de inmediato. Cuando se presenta finalmente el trmino de la operacin
(si es que termina), el proceso suspendido-bloqueado realiza la siguiente
transicin.
5)completar (nombre_del _proceso): suspendido-bloqueado suspendido-listo.
6)suspender (nombre_del_proceso): Ejecucin Suspendido-Listo.
En conclusin los sistemas que administran procesos deben ser capaces de
realizar ciertas operaciones sobre procesos y con ellos. Tales operaciones
incluyen:
- Crear un proceso.
- Destruir un proceso.
- Suspender un proceso.
- Reanudar un proceso.
- Cambiar la prioridad de un proceso.
- Bloquear un proceso.
- Despertar un proceso.
- Despachar un proceso.

- Permitir que un proceso se comunique con otro (esto se denomina
Comunicacin entre procesos).

Crear un proceso implica operaciones como:
- Dar un nombre a un proceso.
- Insertarlo en la lista de procesos conocidos del sistema ( o tabla de procesos)
- Determinar la prioridad inicial de proceso.
- Crear el bloque de control de proceso.
- Asignar los recursos iniciales al proceso.

Un proceso puede crear un nuevo proceso. Si lo hace el proceso creador se
denomina proceso padre, y el proceso creado, proceso hijo. Slo se necesita un
padre para crear un hijo. Tal creacin origina una estructura jerrquica de
procesos. No se puede destruir un proceso cuando este ha creado otros procesos.
Destruir un proceso implica eliminarlo del sistema. Se le remueve de la tabla o
listas del sistema, sus recursos se devuelven al sistema y su bloque de control de
proceso se borra (es decir, el espacio de memoria ocupado por su PCB se
devuelve al espacio de memoria disponible.

Operaciones de procesos y recursos.
Los sistemas operativos poseen una serie de funciones cuyo objetivo es el
de la manipulacin de los procesos. En general las operaciones que se pueden
hacer sobre un proceso son las siguientes:
. Crear el proceso. Se produce con la orden de ejecucin del programa y suele
necesitar
Varios argumentos, como el nombre y la prioridad del proceso.

Creacin de un proceso.
La creacin de un proceso puede ser de dos tipos:
. Jerrquica. En ella cada proceso que se crea es hijo del proceso creador y
hereda el entorno de ejecucin de su padre. El primer proceso que ejecuta un
usuario ser hijo del intrprete de comandos con el que interacta.

Jerarqua de procesos.
. No jerrquico. Cada proceso creado por otro proceso se ejecuta
independientemente de su creador con un entorno diferente. Es un tipo de
creacin que no suele darse en los sistemas operativos actuales.

Adems de los dos tipos anteriores se pueden realizar las operaciones siguientes:

. Destruir un proceso. Se trata de la orden de eliminacin del proceso con la cual
el sistema operativo destruye su PCB (Proces control Block).
. Suspender un proceso. Es una operacin de alta prioridad que paraliza un
proceso que puede ser reanudado posteriormente. Suele utilizarse en ocasiones
de mal funcionamiento o sobrecarga del sistema.
. Reanudar un proceso. Trata de activar un proceso que ha sido
previamente suspendido.
. Cambiar la prioridad de un proceso.
. Temporizar la ejecucin de un proceso. Hace que un determinado proceso se
ejecute cada cierto tiempo (segundos, minutos, horas,...) por etapas o de una sola
vez, pero transcurrido un periodo de tiempo fijo.
. Despertar un proceso. Es una forma de desbloquear un proceso que habr sido
bloqueado previamente por temporizacin o cualquier otra causa.

También podría gustarte