- Modelo de procesos.
Estados de los procesos - Programación
Concurrente. Grafos de precedencia - Condiciones de
concurrencia y especificación - Jerarquía
entre procesos - Bibliografía
Modelo de procesos.
Estados de los procesos
Como ya se indicó, el concepto de proceso juega
un rol fundamental en la teoría y práctica de los
sistemas operativos.
Se señaló que un proceso era simplemente
un programa en ejecución, lo que implicaba la tenencia de
áreas de memoria, valores de registros, contador de
programa, puntero de la pila, etc.
La información acerca de los procesos presentes
en un instante de tiempo se conserva en la tabla de procesos, la
que permite restaurar un proceso que perdió antes el
control de ejecución.
Cada entrada de esta tabla se corresponde con un proceso
en el sistema y recibe el nombre de bloque de control del proceso
(PCB). Este contiene diferentes grupos de información para
un proceso en específico, tales como (Fig 4.8 del
Peterson):
? Estado del proceso.
? Contador de programa.
? Registros del CPU (acumuladores,
índice, propósito general, estado).? Uso de memoria (Dirección, Inicio y
longitud de los segmentos, tablas de páginas,
etc).? Información de contabilidad (Cantidad
de tiempo real y del CPU utilizado, límites de tiempo,
número del proceso, etc).? Información del estado de E/S
(dispositivos asignados, lista de ficheros abiertos,
solicitud de E/S, etc).? Información de planificación
del CPU (prioridad, punteros a las colas de
planificación, etc).
En el modelo de procesos todo el Software ejecutable, a
menudo incluyendo el propio sistema de operación, se
organiza como procesos secuenciales. Aparentemente cada proceso
tiene su propio procesador central, pero en realidad este cambia
de uno a otro de acuerdo con el concepto de
multiprogramación (seudoparalelismo).
Los procesos son totalmente aleatorios en el tiempo y el
comportamiento de un conjunto de ellos dependerá de las
condiciones en un instante dado. Esto implica que los programas
no pueden ser elaborados asumiendo lo que pasará en el
futuro cuando se están procesando.
Un proceso puede tener diferentes estados durante sus
existencia. El número de estados dependerá del
diseño del sistema operativo, pero al menos hay tres que
siempre estarán presentes:
? En ejecución: El proceso está
en posesión del CPU en ese instante.? Bloqueado: El proceso está esperando
hasta que ocurra un evento externo (por ejemplo, una
E/S).? Listo: El proceso está en condiciones
de ejecutar, pero está detenido temporalmente para
permitir a otro proceso la ejecución.
Si a estos tres estados le agregamos las transiciones
entre ellos se obtendría el siguiente grafo.
Las cuatro transiciones que aparecen en el grafo
dirigido se explican en la forma siguiente:
? La transición 1 implica que el proceso
estaba en ejecución y se bloquea debido a que necesita
esperar la ocurrencia de un evento externo. Esta
transición se logra con la propia ejecución de
una llamada al sistema con este fin o forzado por el sistema
operativo (se realizó una solicitud que no puede ser
satisfecha en ese instante).
? La transición 2 ocurre cuando el
planificador del procesador (Scheduler, una parte del sistema
operativo) decide que se debe entregar el control del CPU a
un proceso, aún cuando el actual estaría en
condiciones de continuar. Esta decisión puede estar
motivada por el hecho de que el proceso ya consumió el
quantum de tiempo asignado o está listo otro que tiene
mayor prioridad que el actual.
? La transición 3 también es
realizada por el planificador del procesador y consiste en
entregar el control de este a un proceso que está
listo (debido a que el actual terminó, se
bloqueó o se le quitó).
? La transición 4 ocurre cuando el
evento externo que el proceso estaba esperando tiene lugar.
Si en ese instante no hay otro proceso ejecutando o su
prioridad es superior al que está, de inmediato
ocurrirá también la transición 3, en
caso contrario tendrá que esperar en el estado de
listo.
Haciendo uso del modelo de procesos resulta más
fácil comprender como puede ser un sistema operativo por
dentro. Algunos de los procesos constituyen programas mandados a
ejecutar por los usuarios en sus comandos, pero otros son parte
del sistema (sistema de ficheros, administrador de memoria y
manejadores de dispositivos). Todos estos procesos se bloquean
cuando necesitan esperar por algo y al ocurrir el evento pasan a
listo, son ilegibles para ejecutarse (por supuesto el evento que
espera un manejador de dispositivo es la interrupción
correspondiente).
Página siguiente |