Академический Документы
Профессиональный Документы
Культура Документы
El diseo de un sistema operativo debe reflejar con claridad y seguridad los requisitos que se
pretende que ste cumpla. Teniendo en cuenta que la mayor parte de los sistemas operativos son
multiprogramados, una de sus funciones esenciales es dar soporte a aquellas tareas construidas en
torno al concepto de proceso, que representa la unidad de trabajo en el sistema.
Se denomina proceso a una instancia de un programa en ejecucin, si bien un mismo
programa puede dar lugar a varios procesos. Cada proceso ocupa un espacio en memoria y maneja
unos determinados datos, pero para el sistema operativo un proceso no es sino un conjunto de
estructuras de datos que se deben gestionar.
Los requisitos principales que debe satisfacer un sistema operativo, en lo relativo a los
procesos, son los siguientes:
Puesto que el proceso es un concepto fundamental para la mayora de los requisitos clave de
los sistemas operativos, este tema estudia la forma en que se representa la informacin necesaria para
controlar los procesos en los sistemas operativos. Para ello se analizarn, en primer lugar, las
estructuras de datos necesarias para que los sistemas operativos representen el estado de los
procesos, as como otras caractersticas y atributos de los mismos que resultan necesarias para que el
sistema operativo alcance sus objetivos. A continuacin se analizar ms profundamente el concepto
real de proceso, realizando un estudio de los dos conceptos esenciales de un proceso: el relativo a la
propiedad de los recursos y el que se refiere a la ejecucin. Esta distincin ha producido algunos
cambios en el desarrollo de los sistemas operativos, introduciendo una estructura conocida como
hilo (thread) y dando lugar a las estructuras actuales de monohilo y multihilo. Posteriormente, se
examinarn los distintos estados por los que pueden pasar los procesos, que caracterizan el
comportamiento de los mismos y que servirn de base para la planificacin de los mismos. A
continuacin se detallan los algoritmos que se pueden utilizar para la planificacin de los procesos.
Finalmente, se analizarn las diversas formas de controlar los procesos en los sistemas operativos y
los distintos conceptos expuestos en este tema.
2. DESCRIPCIN DE PROCESOS
El sistema operativo debe ser capaz de controlar todos los sucesos que se producen en un sistema
informtico. Por tanto, es necesario que planifique e introduzca los procesos en el procesador,
asignando los recursos necesarios a los procesos y respondiendo a las solicitudes de servicios
realizadas por las aplicaciones de usuario.
Como ya se ha dicho, el sistema operativo funciona esencialmente como una entidad que
administra los recursos del sistema (tiempo de CPU, memoria, dispositivos de E/S, etc.) y el uso que
de dichos recursos hacen los distintos procesos. En un entorno de multiprogramacin existir un
nmero variable de procesos (P1, P2, , Pn) que han sido creados y que por tanto existen en la
memoria. Durante el curso de su ejecucin, cada proceso necesita tener acceso a ciertos recursos del
sistema, entre los que se incluyen el procesador, los dispositivos de E/S y la memoria interna. Los
APUNTES DE SISTEMAS OPERATIVOS
detalles de gestin de estos recursos por parte del sistema operativo para la ejecucin de los distintos
procesos se estudiar posteriormente.
PROCESOS
P1
P2
E/S
E/S
. . . . . . . . . . . . . . .
Pn
RECURSOS
PROCESADOR
E/S
MEMORIA
TABLAS DE
IMAGEN DE
MEMORIA
LOS PROCESOS
PROCESO 1
MEMORIA
TABLAS DE
DISPOSITIVOS
DISPOSITIVOS E/S
FICHEROS
TABLAS DE
ARCHIVOS
PROCESO 2
.
PROCESOS
TABLA DE PROCESOS
PROCESO 1
PROCESO 2
.
.
PROCESO n
PROCESO n
Las tablas de memoria se utilizan para controlar los procesos situados en la memoria interna
y en el almacenamiento secundario. En este aspecto ser preciso tener en cuenta que una parte de la
memoria principal est reservada para el uso del sistema operativo y el resto est disponible para el
uso de los procesos. Los procesos se mantienen en el almacenamiento secundario mediante alguna
forma de memoria virtual o por un simple mecanismo de intercambio.
Las tablas de memoria deben incluir la siguiente informacin:
Las tablas de E/S son utilizadas por el sistema operativo para administrar los controladores y
los canales de E/S, pues en un momento determinado un dispositivo de E/S puede estar o bien
disponible o bien asignado a un proceso en particular. Adems, si hay una operacin de E/S en
marcha, el sistema operativo necesita conocer el estado de dicha operacin y las posiciones de
memoria que est utilizando como origen y/o destino para las transferencias de informacin.
Las tablas de archivos ofrecen al sistema operativo informacin sobre la existencia de los
archivos, su posicin en la memoria secundaria, su estado actual y otros atributos. Una gran parte de
esta informacin es mantenida y utilizada por el sistema de gestin de archivos. En algunos sistemas
operativos el gestor de archivos es independiente y esta informacin es, por tanto, externa.
Finalmente, las tablas de procesos permiten al sistema operativo administrar y controlar los
procesos, con el objeto de conocer dnde est ubicado cada proceso y los atributos necesarios para
su administracin.
2.2. Representacin fsica de la imagen de un proceso
Antes de analizar la ubicacin de los procesos y los atributos que son necesarios para su
administracin, es preciso abordar una cuestin importante: la representacin fsica de la imagen de
un proceso.
Un proceso est formado por las instrucciones del programa o conjunto de procedimientos
que tienen que ser ejecutados, junto con los datos que manejan los mismos (variables locales y
globales, constantes definidas, etc.). Por lo tanto, un proceso necesitar memoria suficiente para
albergar sus instrucciones y sus datos. Adems, en la ejecucin de un proceso normalmente se utiliza
una pila para llevar la cuenta tanto de las llamadas a procedimientos como de los parmetros que se
pasan entre los mismos. Por ltimo, asociada a cada proceso existe una estructura de datos que el
sistema operativo utiliza para su control. A dicha estructura, que almacena informacin importante
sobre el proceso, se conoce como bloque de control del proceso (PCB, del ingls Process Control
Block). El conjunto de programa, datos, pilas y PCB, es lo que se conoce como imagen de un
proceso.
Las instrucciones, los datos y las pilas se almacenan en la memoria de procesos de usuario,
mientras que el PCB, al ser una estructura de gestin ajena al propio proceso, se almacena en la
memoria destinada al sistema operativo. La ubicacin concreta de la imagen de un proceso depende
del esquema de gestin de memoria utilizado. En el caso ms sencillo posible la imagen del proceso
se guarda como un bloque contiguo de memoria que se mantiene en el almacenamiento secundario,
normalmente en disco. No obstante, para que el sistema operativo pueda administrar y controlar un
proceso, al menos una pequea parte de su imagen, la que contiene la informacin a utilizar por el
sistema operativo, debe mantenerse en la memoria principal. Eso s, para ejecutar el proceso debe
cargarse en la memoria principal la imagen completa, para lo cual el sistema operativo necesita
APUNTES DE SISTEMAS OPERATIVOS
conocer la ubicacin de cada proceso en el disco y tambin la ubicacin del resto de los procesos que
estn en la memoria principal.
En la figura XXX se representa la estructura de la informacin de ubicacin. Tal y como se
muestra, existe una tabla principal de procesos con una entrada para cada proceso, cada una de las
cuales contiene, al menos, un puntero a la imagen de un proceso. Para permitir una gestin ms
eficiente, las cuatro tablas estn enlazadas entre s mediante punteros que permiten, por ejemplo,
acceder desde los datos de un proceso a los dispositivos de E/S que ste maneja.
2.3. Bloque de control del proceso (PCB)
Para administrar cada proceso, los sistemas multiprogramados requieren una gran cantidad de
informacin. Dicha informacin reside en el denominado bloque de control del proceso, que es la
estructura de datos central y ms importante de un sistema operativo en lo relativo a la gestin de
procesos. El PCB contiene toda la informacin necesaria sobre un proceso, para que el sistema
operativo pueda efectuar el control de los mismos en todo momento. Los elementos bsicos que
contienen la informacin de un bloque de control del proceso se pueden agrupar en tres categoras:
a) Identificacin del proceso.
b) Informacin de estado del procesador.
c) Informacin de control del proceso.
En cuanto a la informacin sobre identificacin, aunque puede variar en funcin del sistema
operativo de que se trate, los elementos ms significativos son los que figuran a continuacin:
La informacin de estado del procesador comprende los datos necesarios para la continuacin del
proceso tras una interrupcin. Cuando se produce un cambio de contexto, el proceso que se est
ejecutando debe ceder el procesador; en ese momento el sistema operativo copia los valores
almacenados en los registros del procesador en el PCB del proceso saliente y actualiza los registros
del procesador con los valores del nuevo proceso. La naturaleza y el nmero de registros a guardar
vara segn el diseo del procesador, aunque los elementos ms habituales son:
Finalmente, la informacin de control del proceso contiene los datos necesarios para que el sistema
operativo pueda controlar y coordinar los diferentes procesos activos. Naturalmente, segn se realice
el anlisis los diferentes detalles de funcionalidad de los sistemas operativos, se ver con ms claridad
la necesidad de todos estos datos. Esta informacin es la siguiente:
Unidad de propiedad de los recursos, segn la cual a cada proceso se le asigna un espacio de
direcciones en el almacenamiento secundario para albergar la imagen del proceso. Gracias a ello,
al proceso se le pueden asignar el procesador, la memoria y otros recursos, tales como canales de
E/S, dispositivos de E/S y archivos.
Unidad de expedicin, segn la cual un proceso representa un camino de ejecucin (denominado
traza) constituido por una secuencia de instrucciones, a travs de uno o ms procedimientos.
Esta ejecucin puede ser intercalada con la de otros procesos, por lo que un proceso puede tener
un estado de ejecucin o de no ejecucin y una prioridad de expedicin. La unidad planificada
y expedida por el sistema operativo es el proceso.
Tambin es habitual en la literatura el empleo del trmino hebra como traduccin del trmino ingls thread.
El contexto del procesador, que debe salvarse cuando el hilo no se est ejecutando.
Una pila de ejecucin.
Un almacenamiento esttico para almacenar las variables locales.
El acceso a la unidad propietaria de los recursos del proceso, los cuales se comparten con
el resto de hilos del proceso.
Aceleracin de la ejecucin, donde un proceso con hilos mltiples puede procesar un lote
de datos mientras lee el lote siguiente de un dispositivo. De este modo, en un sistema con
multiproceso, varios hilos de un mismo proceso se podran ejecutar a la vez.
Organizacin de los programas, ya que todos aquellos programas que realizan mltiples
actividades o que tienen una gran variedad de orgenes y destinos de entrada y salida,
pueden hacerse ms fciles de disear e implementar mediante hilos.
CONTADOR DE
PROGRAMA
PROCESO A
80K
ESP. LIBRE
90K
PROCESO B
140K
Para poder disear y construir el sistema operativo de una forma efectiva, se necesita tener un
modelo claro del comportamiento de un proceso, con objeto de disear un programa, que controle
los procesos segn el modelo establecido.
El modelo ms sencillo que podemos establecer, sera el que tiene en cuenta que, en un
momento determinado, un proceso puede estar ejecutndose en el procesador o en espera de poder
hacerlo, por lo tanto segn este modelo, los estados en que se puede encontrar un proceso seran:
Ejecucin.
No ejecucin.
EXPEDIR
NO EJECUCIN
EJECUCIN
SALIDA
PAUSA
En este modelo, cuando el sistema operativo crea un nuevo proceso, este queda situado en el
estado de No ejecucin; de este modo el proceso existe, es conocido por el sistema operativo y
est esperando la oportunidad de ejecutarse, de cuando en cuando, el proceso que se esta ejecutando
ser interrumpido y el programa distribuidor del sistema operativo seleccionar un nuevo proceso,
para que se ejecute. El proceso que se interrumpe pasa al estado de No ejecucin y uno de los
procesos que estn a la espera, pasar al estado de ejecucin.
Este modelo tan simple puede servir de introduccin, para construir un modelo ms
complejo, sin embargo en este modelo, ya se pueden apreciar algunos elementos de diseo del
sistema operativo, como pueden ser, que cada proceso debe representarse de forma que, el sistema
operativo pueda seguirle la pista, esto es, debe haber informacin relativa a cada proceso, incluyendo
su estado actual y su posicin en memoria y adems aquellos procesos que no se estn ejecutando,
tienen que guardarse en algn tipo de cola, para que esperen su turno de ejecucin.
ENTRADA
COLA DE ESPERA
EXPEDIR
CPU
SALIDA
PAUSA
Antes de intentar refinar este simple modelo de dos estados, podramos precisar algo sobre la
creacin y finalizacin de los procesos, independientemente del modelo que se emplee, para el
comportamiento de los procesos, ya que la vida de un proceso, esta limitada por su creacin y su
terminacin.
Respecto a la creacin de los procesos se puede decir, que cuando se aade un proceso a los
que ya esta administrando el sistema operativo, hay que construir las estructuras de datos, que se
utilizan para el control y administracin del proceso asignndole un espacio de direcciones en el
almacenamiento secundario para situar la imagen del proceso.
Estas acciones constituyen la creacin de un proceso, tal y como se ha expresado
anteriormente, por lo tanto, la creacin de un proceso se puede realizar, en funcin de los sucesos
que figuran a continuacin:
10
Respecto a la finalizacin de los procesos se podra decir que, en cualquier sistema operativo,
debe existir algn modo, para indicar que un proceso ha terminado y esto ocurrir de diferentes
formas segn el entorno en el que estamos trabajando:
En un entorno de trabajo por lotes debe existir una instruccin, que produzca una llamada
al sistema operativo para la finalizacin.
En un entorno interactivo, es la accin del usuario la que indica cuando termina la sesin
de trabajo. Por ejemplo, en un sistema de tiempo compartido, la sesin de trabajo de un
usuario particular terminar, cuando este se desconecte del sistema o apague el terminal.
En un ordenador personal o una estacin de trabajo, el usuario puede abandonar una
aplicacin en un momento determinado, como por ejemplo un procesador de textos o una
hoja de clculo.
Todas estas acciones provocan una peticin de servicio al sistema operativo, para terminar
con el proceso que se estaba ejecutando, pero adems, pueden existir condiciones de fallo, que nos
pueden conducir a una terminacin anormal del proceso. Por ltimo, en algunos sistemas operativos,
un proceso puede ser eliminado por el proceso que lo cre o al terminar el proceso padre.
Teniendo en cuenta las consideraciones expuestas, podemos introducirnos en un modelo ms
complejo como puede ser un modelo de cinco estados en el que se supone que un proceso, adems
del estado de ejecucin puede estar en otros estados que pasaremos a comentar.
Si todos los procesos estuvieran siempre listos para ejecutarse, entonces la disciplina de cola
de espera expuesta para el modelo de dos estados sera eficaz, ya que la cola es una lista primero en
entrar primero en salir (FIFO, First-In, First-Out) y el procesador opera segn un turno rotatorio
(RR, Round-Robin) con todos los procesos disponibles, es decir, a cada proceso de la cola se le
otorga una cierta cantidad de tiempo para ejecutar y luego vuelve a la cola, a menos que se bloquee,
sin embargo, aun en el simple ejemplo que se ha descrito no es adecuada.
Lgicamente, puede ocurrir que algunos procesos en el estado de No ejecucin estn listos
para ejecutarse, mientras que otros estn bloqueados, esperando a que termine una operacin de E/S.
De esta manera, utilizando una cola sencilla, el distribuidor del sistema operativo, podra no
seleccionar exactamente el proceso que esta en la cola en primer lugar y por lo tanto, recorrer la lista
buscando el primer proceso que no este bloqueado.
Una forma ms natural de afrontar esta situacin es dividir el estado de No ejecucin en
dos estados: Listo y bloqueado. Adems ser preciso incorporar otros dos estados para los procesos
que se crean y los que finalicen.
NUEVO
ADMITIR
LISTO
OCURRE EL
SUCESO
ADMITIR
COLA DE LISTOS
EXPEDIR
FIN DE PLAZO
BLOQUEADO
EJECUCIN
LIBERAR
TERMINADO
ESPERA DE
UN SUCESO
A EJECUCIN
CPU
LIBERAR
FIN DE PLAZO
OCURRE
EL SUCESO
ESPERA UN SUCESO
COLA DE BLOQUEADOS
Esta situacin da origen a los cinco estados que se representan grficamente en el diagrama
anterior y que pueden ser definidos como se expresa a continuacin:
APUNTES DE SISTEMAS OPERATIVOS
11
Los estados Nuevo y Terminado, son construcciones tiles para la gestin de procesos y
tienen el significado que expresamos a continuacin.
El estado Nuevo corresponde a los procesos que acaban de ser definidos. Por ejemplo, si un
nuevo usuario intenta conectarse a un sistema de tiempo compartido o tambin si un nuevo trabajo
batch es remitido para su ejecucin, el sistema operativo puede definir un nuevo proceso, realizando
algunas tareas necesarias para su gestin interna, asocindole un identificador y construyendo
algunas tablas necesarias para llevar a cabo su control.
Todo esto significa que el sistema operativo ha realizado las acciones necesarias para crear el
proceso pero no se ha comprometido an a su ejecucin, de esta manera, el sistema operativo, puede
limitar la cantidad de procesos que pueden estar en el sistema por razones de rendimiento o de
limitacin de memoria.
El estado Terminado corresponde a un proceso que sale del sistema. Esto ocurre cuando el
proceso llega al punto normal de terminacin, cuando se abandona debido a un error irrecuperable o
cuando otro proceso con la debida autoridad hace que el proceso abandone. La finalizacin pasa el
proceso al estado terminado, por lo tanto este proceso ya no se elige mas para la ejecucin, sin
embargo, las tablas y otras informaciones asociadas con el trabajo son conservadas temporalmente
por el sistema operativo y este tiempo es aprovechado por una serie de programas auxiliares o de
soporte para extraer la informacin necesaria.
Si volvemos al ejemplo planteado al principio para explicar el modelo de dos estados,
podemos obtener el diagrama correspondiente al modelo que estamos definiendo de cinco estados,
implementando si fuese necesario una disciplina de colas.
En este modelo tenemos dos colas, una de procesos listos para ejecutarse y otra para los
procesos que estn bloqueados; a medida que se van admitiendo procesos en el sistema se sitan en
la cola de listos para ejecutarse y cuando llega la hora de elegir un proceso para su paso a ejecucin,
el sistema operativo lo selecciona de esta cola.
En ausencia de un esquema de prioridades, esta puede ser una simple cola FIFO. Cuando un
proceso que esta ejecutando es apartado de la ejecucin o bien finaliza o bien se le coloca en la cola
de procesos bloqueados, en espera de que se produzca un determinado suceso, dependiendo de las
circunstancias del proceso.
Por ultimo cuando se produce un suceso, todos los procesos de la cola de bloqueados que
estaban esperando a dicho suceso, pasan a la cola de listos para ejecutarse.
Esta ultima medida significa que, cuando se produce el suceso, el sistema operativo debe
recorrer toda la cola de bloqueados, buscando aquellos procesos que esperan al suceso.
12
En un sistema operativo grande, puede haber cientos o incluso miles de procesos en dicha
cola, por lo tanto, seria ms eficiente tener una serie de colas, una para cada suceso, en este caso,
cuando se produzca un suceso, la lista entera de procesos de la cola correspondiente al suceso,
puede pasarse al estado de listos para ejecutarse.
Si la expedicin de procesos esta dictada por un esquema de prioridades, entonces es
conveniente tener un cierto nmero de colas de listos para ejecutarse, una para cada nivel de
prioridad, de esta manera el sistema operativo, podr determinar fcilmente cual es el proceso de
prioridad ms alta que lleva ms tiempo esperando.
Procesos suspendidos.
Los tres estados principales expresados anteriormente (Listo, Ejecucin, Bloqueado), ofrecen
una forma sistemtica de modelar el comportamiento de los procesos y de guiar la implementacin
del sistema operativo.
Se han construido muchos sistemas operativos empleando solamente estos tres estados, sin
embargo, existe una buena justificacin para aadir ms estados al modelo. Para ver los beneficios de
estos nuevos estados, consideraremos un sistema que no utiliza la memoria virtual, por lo tanto,
todos los procesos de todas las colas deben estar residentes en la memoria principal.
Si nos apoyamos en los conceptos anteriormente expuestos, sobre la lentitud de las
operaciones de E/S en comparacin con la velocidad de ejecucin del procesador, puede ser habitual
que en un momento determinado, que todos los procesos situados en la memoria estn esperando
por una operacin de E/S.
Una solucin utilizada frecuentemente en los sistemas operativos, teniendo en cuenta la
limitacin de la memoria principal, es el intercambio de los procesos que estn situados en la
memoria principal, con los procesos que estn situados en el almacenamiento secundario.
Esta solucin tiene por objeto trasladar al almacenamiento secundario los procesos que estn
bloqueados, cuando en la memoria principal no existe ningn proceso listo para ejecutarse, dando
origen a un nuevo estado en el modelo de comportamiento de los procesos anteriormente descrito,
que es el estado Suspendido.
Cuando el sistema operativo ha realizado una operacin de intercambio, es decir, un proceso
que estaba en la memoria principal se lo ha llevado al almacenamiento secundario, existen dos
opciones para seleccionar el proceso, que se va a traer a la memoria principal. Una de ellas puede ser
introducir un nuevo proceso y la otra sera traer nuevamente a la memoria principal un proceso
previamente suspendido.
Normalmente la opcin ms eficaz sera traer un proceso suspendido, ya que introducir un
nuevo proceso, hara crecer la carga total de procesos en el sistema, sin embargo, no sera lgico
traer a la memoria principal un proceso bloqueado, que todava no esta listo para ejecutarse.
Esto nos obliga a pensar nuevamente sobre este aspecto del diseo y nos indica que es
preciso establecer una diferencia mas, es decir, distinguir dentro de los procesos que estn
suspendidos, los que estn suspendidos pero en el momento actual ha cesado la situacin de bloqueo
y los que estn suspendidos y continan con la situacin de bloqueo.
NUEVO
ADMITIR
EXPEDIR
LISTO
ACTIVAR
LISTO Y
SUSPENDIDO
EJECUTAR
EJECUCIN
FIN DE PLAZO
OCURRE EL
SUCESO
OCURRE EL
SUCESO
SUSPENDIDO
ESPERA DE
UN SUCESO
LIBERAR
TERMINADO
13
SUSPENDER
BLOQUEADO
Estas consideraciones nos obligan a introducir dos estados ms en el modelo que estamos
desarrollando, incluyendo los estados:
Suspendido y listo.
Suspendido y bloqueado.
Hasta ahora, hemos identificado el concepto de proceso suspendido, con un proceso que esta
bloqueado en espera de un suceso determinado, sin embargo se puede generalizar este concepto de
proceso suspendido a otras situaciones:
PLANIFICACIN DE MONOPROCESADORES.
En este tema se tratar de analizar las relaciones que existen, entre estas clases de
planificacin y se ver que las planificaciones a largo plazo y medio plazo, estn orientadas hacia el
uno de los objetivos principales del sistema, en los aspectos de rendimiento relativos al grado de
multiprogramacin y se estudiarn con detalle, cuando se analice el tema de Gestin de Memoria,
por lo tanto, en este tema hay que centrarse en la planificacin a corto plazo, limitando el estudio de
la planificacin, a la existencia de un solo procesador y dejando para el prximo curso la complejidad
adicional que se produce con la presencia de varios procesadores.
14
La planificacin a corto plazo, consiste en asignar los procesos al procesador, para que sean
ejecutados en algn momento, de forma que se cumplan objetivos del sistema tales como, el tiempo
de respuesta, la productividad y la eficiencia del procesador.
La figura que se expresa a continuacin relaciona las funciones de planificacin, con el
diagrama de transicin de estados de un proceso.
NUEVO
ADMITIR
ADMITIR
LISTO
PLANIFICACIN
LARGO PLAZO
LISTO Y
SUSPENDIDO
EJECUTAR
EJECUCIN
LIBERAR
TERMINADO
PLANIFICACIN
CORTO PLAZO
ESPERA DE
UN SUCESO
La planificacin a largo plazo se lleva a cabo al crear un proceso nuevo y tiene por objeto
decidir si se debe aadir un proceso ms al conjunto de procesos activos. Para ello, es preciso
determinar cuales son los procesos admitidos en el sistema, controlando de esta manera el grado de
multiprogramacin.
Una vez admitido un trabajo o un proceso de usuario, se convierte en un proceso y es
aadido a la cola del planificador a corto plazo.
PLANIFICACIN
TRABAJOS
COLA DE LOTES
A LARGO
PLAZO
FIN DE PLAZO
POR LOTES
USUARIOS INTERACTIVOS
COLA DE LISTOS
Y SUSPENDIDOS
OCURRE EL SUSCESO
COLA DE SUSPENDIDOS
OCURRE EL
SUCESO
LIBERAR
PLANIFICACIN
A MEDIO
PLAZO
ESPERA UN
SUCESO
COLA DE BLOQUEADOS
En un sistema de proceso por lotes, los procesos recin incorporados permanecen en una cola
de procesamiento por lotes y el planificador a largo plazo crear los procesos a partir de la cola
cuando sea posible. Para ello el planificador primero debe decidir si el sistema operativo puede
acoger algn proceso ms y segundo decidir que trabajos sern los ms adecuados para convertirse
en procesos listos para ejecutarse.
La decisin de cuando crear un nuevo proceso viene dada, en general, por el grado de
multiprogramacin, ya que cuantos ms procesos se crean, menor es el porcentaje de tiempo, para la
ejecucin de los procesos, por lo tanto, el planificador a largo plazo puede limitar el grado de
multiprogramacin para ofrecer un servicio satisfactorio al conjunto de procesos actuales.
15
Los criterios orientados al usuario, se refieren al comportamiento del sistema tal y como lo
perciben los usuarios o los procesos individuales. Un posible ejemplo es el tiempo de respuesta de un
sistema interactivo. El tiempo de respuesta es el periodo de tiempo transcurrido, desde que se emite
una solicitud hasta que la respuesta aparece en la salida.
Este valor es perceptible para el usuario, para quien tiene un inters evidente, por lo tanto,
seria conveniente disponer de una poltica de planificacin que ofrezca un buen servicio a diversos
usuarios. Un tiempo de respuesta adecuado podra ser menor de dos o tres segundos, por lo tanto, el
objetivo del mecanismo de planificacin debera ser maximizar el nmero de usuarios, que pueden
recibir un tiempo de respuesta medio de dos o tres segundos.
Los criterios orientados al sistema, se centran en el uso eficiente del procesador. Un posible
ejemplo puede ser la productividad, que es una medida muy valida del rendimiento del sistema y que
por lo tanto sera deseable maximizar. Estos criterios son interesantes para el administrador del
sistema, pero no tanto, para el conjunto de usuarios normales.
Estas definiciones que acabamos de realizar, nos indican que los criterios orientados al
usuario, son importantes en todos los sistemas, mientras que los criterios orientados al sistema tienen
en general una menor importancia en los sistemas monousuario.
APUNTES DE SISTEMAS OPERATIVOS
16
Estos criterios son dependientes entre s y es imposible optimizar todos de forma simultnea.
Por ejemplo, obtener un buen tiempo de respuesta, puede exigir un algoritmo de planificacin que
alterne entre los procesos con una gran frecuencia, lo cual incrementa la sobrecarga del sistema y
reduce la productividad.
Una observacin final es que, en la mayora de los sistemas operativos de tipo interactivo,
bien sean de un solo usuario o mltiples usuarios, el requisito fundamental es un tiempo de respuesta
adecuado. Por la importancia de este requisito y debido a que la definicin de adecuado cambia de
una aplicacin a otra, lo trataremos con mayor profundidad posteriormente.
Una poltica importante en la planificacin es el uso de prioridades, ya que en muchos
sistemas, cada proceso tiene una prioridad asignada y el planificador seleccionar siempre a un
proceso de mayor prioridad antes que los de menor prioridad.
En las figuras anteriormente expuestas, para mayor claridad, el diagrama de colas estaba
simplificado, ignorando la existencia de varias colas de bloqueo y del estado suspendido.
En esta figura vemos que, en vez de una sola cola de Listos para ejecutarse, se ofrece un
conjunto de colas en orden de prioridad descendente, por lo tanto, cuando se vaya a realizar una
seleccin de planificacin, el planificador comenzar por la cola de Listos de mayor prioridad, si hay
uno o ms procesos en esta cola, se selecciona uno mediante alguna poltica de planificacin, si dicha
cola esta vaca, se examina la cola siguiente y as sucesivamente.
RQ 0
A EJECUCIN
CPU
LIBERAR
RQ 1
ENTRADA
RQ n
OCURRE EL
SUCESO
.
.
.
EXPULSIN
ESPERA UN
SUCESO
COLA DE BLOQUEADOS
Uno de los problemas de los esquemas de planificacin por prioridades puras, es que los
procesos de prioridad ms baja pueden sufrir inanicin, si siempre hay un flujo continuo de procesos
listos de alta prioridad. Para superar este problema, la prioridad de un proceso puede cambiar en
funcin de su edad o su historial de ejecucin.
Se podra realizar exactamente lo mismo para la cola de Bloqueados, ofreciendo una cola
para cada uno de los posibles sucesos del sistema, por lo tanto, cuando se produce un suceso, todos
los procesos que estn en la cola de ese suceso, pasaran automticamente a la cola de preparados.
ADMITIR
COLA DE LISTOS
A EJECUCIN
FIN DE PLAZO
COLA SUCESO 1
OCURRE SUCESO 1
ESPERA UN SUCESO 1
CPU
LIBERAR
17
.
.
COLA SUCESO N
ESPERA UN SUCESO 2
ESPERA SUCESO N
Desde un punto de vista general, las polticas de planificacin se fundamentan en las dos
caractersticas que figuran a continuacin:
La funcin de seleccin.
El modo de decisin.
La funcin de seleccin tiene por objeto determinar que proceso, de entre los que estn listos
para ejecutarse, se elige para ejecutar a continuacin y esa funcin puede estar basada en
prioridades, necesidades de recursos o en las caractersticas de ejecucin de los procesos.
Los valores ms significativos de las caractersticas de ejecucin de los procesos, son los que
figuran a continuacin:
No apropiativo, indica que una vez que el proceso pasa al estado de ejecucin, contina
ejecutndose hasta que termina o hasta que se bloquea en espera de una operacin de E/S
o al solicitar algn servicio del sistema.
Apropiativo, indica que el proceso que esta ejecutndose actualmente, puede ser
interrumpido y pasado al estado de listos para ejecutarse, por parte del sistema operativo.
La decisin de apropiarse de la CPU puede llevarse a cabo cuando llega un nuevo proceso,
cuando se produce un suceso, que lleva a un proceso bloqueado al estado de listo para ejecutarse o
peridicamente en funcin de una interrupcin del reloj.
Las polticas apropiativas suponen un mayor coste que las no apropiativas, pero dan un
servicio mejor al conjunto de todos los procesos, puesto que evitan que un proceso pueda
monopolizar el procesador durante mucho tiempo.
En general, el clculo de la prioridad se lleva a cabo por una funcin que ser diferente en
cada sistema, dependiendo de los parmetros que la definan. La prioridad as calculada, se puede
denominar prioridad interna y la fijar el sistema, para diferenciarla de la que establezca el usuario,
para sus procesos y que denominaremos prioridad externa o simplemente prioridad.
La prioridad interna que tiene un proceso, desde el punto de vista del planificador a corto
plazo, es el valor obtenido por esta funcin de acuerdo con diversos parmetros que intervendrn en
su clculo:
Necesidades de memoria.
Carga del sistema
Prioridad externa definida por el usuario.
Una seal del reloj del sistema
Tiempo de procesador utilizado por el proceso.
18
Extrnseca, que son los datos independientes de la naturaleza del proceso y de sus
caractersticas, por lo que pueden ser fcilmente definidos por el sistema. Como ejemplo
de este tipo de informacin podramos mencionar el instante de carga en el sistema, la
prioridad externa del proceso, la prioridad marcada por el reloj del sistema, etc.
Intrnseca, compuesta por aquellos datos que son inherentes a la naturaleza del propio
proceso. Estos datos pueden conocerse por el sistema gracias a la informacin que
suministre el usuario en el momento inicial de la carga del proceso en memoria o bien
basndose en datos histricos de las ejecuciones anteriores de este proceso dentro del
sistema. Los datos que se pueden englobar dentro de este tipo de informacin son el
tiempo de ejecucin, tiempo total de servicio, tiempo que le queda al proceso para
terminar su trabajo, etc.
ALGORITMOS DE PLANIFICACIN.
El planificador a corto plazo, tiene como misin la asignacin del procesador, a los procesos
que estn preparados y cuando un proceso haya terminado su ejecucin totalmente, dejar de existir
para el planificador.
En los sistemas comerciales actuales existen diversas polticas de planificacin, puestas en
prctica por medio de diversos algoritmos, que pueden servir para comprender la forma de actuar de
los sistemas operativos y as poder obtener el mejor provecho de los mismos.
A continuacin vamos a describir las ms importantes, que servirn de base para el desarrollo
de otras polticas, que puedan ser necesarias al resolver los problemas que se presenten en el futuro,
que en principio se podran dividir en dos grandes grupos:
Aquellas que para el clculo de la prioridad interna, se utilizan datos extrnsecos, es decir,
independientes de la naturaleza del proceso.
Las que para el clculo de la prioridad interna se utilizan datos intrnsecos, es decir, que
son inherentes a la naturaleza del propio proceso.
Para describir las distintas polticas de planificacin, se utilizar como ejemplo el siguiente
conjunto de procesos que se ejecutarn en los instantes especificados en la tabla que figura a
continuacin y que se representan en el eje de tiempos de la figura.
0
10
A= 3
B=5
C=2
D=6
E=4
11
12
13
14
15
16
17
18
19
20
19
Instante
Llegada
0
1
4
5
8
Tiempo de
Servicio (Ts)
3
5
2
6
4
Prioridad
Externa
0
1
0
2
1
COLA DE LISTOS
E D
C B
EJECUCIN
FINAL
CPU
10
11
12
13
14
15
16
17
18
19
20
A= 3
B=5
C=2
E=4
D=6
La tabla que se muestra a continuacin nos indica como acta este algoritmo sobre los
procesos del ejemplo propuesto:
Nombre Instante
Proceso Llegada
A
0
B
1
C
4
D
5
E
8
Tiempo de
Servicio (Ts)
3
5
2
6
4
Prioridad
Externa
0
1
0
2
1
Instante de
Finalizacin
3
8
10
20
14
Tiempo de
Retorno (Tq)
3
7
6
15
6
Tiempo de Retorno
Normalizado (Tq/Ts)
1,00
1,40
3,00
2,50
1,50
Un valor que puede ser til es el tiempo de retorno normalizado, que es la razn entre el
tiempo de retorno y el tiempo de servicio. Este valor indica el retardo relativo experimentado por un
proceso, es decir, normalmente cuanto mayor es el tiempo de servicio, mayor es el retardo absoluto
20
que puede tolerarse, el valor mnimo para esta proporcin es de 1,00, los valores mayores
corresponden a niveles decrecientes del servicio.
Otro valor que se puede utilizar es el tiempo de retorno medio, que se calcula sumando los
tiempos de retorno de todos los procesos y dividindolo por el nmero de ellos.
En el caso de que la prioridad si sea apropiativa, los procesos se introducirn en el
procesador de la siguiente forma:
ENTRADA
COLA DE LISTOS
E D
C B
EJECUCIN
FINAL
CPU
10
11
12
13
14
15
16
17
18
19
20
A= 3
B=1
B=4
C=2
E=4
D=6
La tabla que se muestra a continuacin nos indica como acta este algoritmo sobre los
procesos del ejemplo propuesto:
21
Nombre Instante
Proceso Llegada
A
0
B
1
C
4
D
5
E
8
Tiempo de
Servicio (Ts)
3
5
2
6
4
Prioridad
Externa
0
1
0
2
1
Instante de
Finalizacin
3
10
6
20
14
Tiempo de
Retorno (Tq)
3
9
2
15
6
Tiempo de Retorno
Normalizado (Tq/Ts)
1,00
1,80
1,00
2,50
1,50
Primero en llegar, Primero en ser servido. (FCFS, First Come, First Served).
La poltica ms simple de planificacin es la de primero en llegar, primero en servirse, que
tambin se denomina, primero en entrar, primero en salir, ( FIFO, First-In, First-Out), segn esta
poltica cada vez que un proceso est listo para ejecutarse, se incorpora a la cola de Listos y cuando
el proceso que se est ejecutando actualmente cese en su ejecucin, se selecciona el proceso ms
tiempo lleve en la cola.
Los mecanismos que debe adoptar esta poltica para determinar a que proceso se le debe
conceder el uso del procesador en un instante dado, se basan nica y exclusivamente en el orden de
llegada de los procesos, por lo que hacen una poltica muy simple y sencilla de llevar a la prctica,
pero muy pobre en cuanto a su comportamiento.
ENTRADA
COLA DE LISTOS
E D
C B
EJECUCIN
FINAL
CPU
10
11
12
13
14
15
16
17
18
19
20
A= 3
B=5
C=2
D=6
E=4
La tabla que se muestra a continuacin nos indica como acta este algoritmo sobre los
procesos del ejemplo propuesto:
Nombre Instante
Proceso Llegada
A
0
B
1
C
4
D
5
E
8
Tiempo de
Servicio (Ts)
3
5
2
6
4
Instante de
Finalizacin
3
8
10
16
20
Tiempo de
Retorno (Tq)
3
7
6
11
12
Tiempo de Retorno
Normalizado (Tq/Ts)
1,00
1,40
3,00
1,83
3,00
El algoritmo FCFS tiende a favorecer a los procesos largos, en relacin a los cortos o tambin,
a los procesos con carga de CPU, frente a los que tienen carga de E/S, as por ejemplo, si tenemos un
conjunto de procesos y uno de ellos utiliza principalmente la CPU, mientras que otros realizan
frecuentemente operaciones de E/S, si el proceso que utiliza la CPU se encuentra en ejecucin, todos
los restantes procesos tienen que esperar, por lo tanto, no es una alternativa atractiva para un sistema
monoprocesador.
Sin embargo, se combina frecuentemente con un esquema de prioridades para obtener un
planificador efectivo, ya que de esta forma, el planificador puede mantener un conjunto de colas, una
para cada nivel de prioridad y expedir cada cola con un algoritmo FCFS.
Turno Rotatorio.
22
Esta poltica trata de reducir la penalizacin que sufren los trabajos cortos con la poltica
FCFS y consiste en hacer intervenir el concepto de apropiacin dependiente del reloj. Esta poltica
que tambin se denomina Round-Robin, ( RR), genera peridicamente una interrupcin del reloj y en
ese momento, el proceso que estaba en ejecucin se sita en la cola de Listos y se selecciona el
siguiente trabajo, normalmente segn el algoritmo (FCFS).
Esta poltica, concede a cada proceso una fraccin de tiempo que se denomina cuanto y
transcurrido ese tiempo, si el proceso no ha terminado o no se ha quedado bloqueado por una
operacin de E/S, se devuelve el proceso al final de la cola de Listos y se concede un nuevo cuanto
al proceso que est el primero de la cola, de esta forma continua la asignacin de procesos, que sern
ejecutados cclicamente hasta que terminen.
La cuestin principal en el diseo de esta poltica consiste en determinar la longitud del
cuanto de tiempo o fraccin que se va a usar. Si el cuanto es muy pequeo, los procesos cortos
pasan por el sistema rpidamente, pero producen una sobrecarga enorme, en la gestin de las
interrupciones del reloj y en las funciones de planificacin y expedicin, por lo tanto se deben evitar
los cuantos pequeos. En general una referencia que puede ser til, consiste en que el cuanto sea
ligeramente mayor que el tiempo necesario para llevar a cabo una interaccin.
ENTRADA
COLA DE LISTOS
E D
C B
EJECUCIN
FINAL
CPU
APROPIACIN
PARA UN CUANTO = 1
0
A
B
A
B
10
11
12
13
14
15
16
17
18
19
20
A
B
C
D
D
E
D
E
D
E
La tabla que se muestra a continuacin nos indica como acta este algoritmo sobre los procesos del
ejemplo propuesto para un cuanto igual a uno:
Nombre Instante
Proceso Llegada
A
0
B
1
C
4
D
5
E
8
Tiempo de
Servicio (Ts)
3
5
2
6
4
Instante de
Finalizacin
5
13
9
20
18
Tiempo de
Retorno (Tq)
5
12
5
15
10
Tiempo de Retorno
Normalizado (Tq/Ts)
1,67
2,40
2,50
2,50
2,50
23
10
11
12
13
14
15
16
17
18
19
20
A= 3
B = 3
B = 2
C = 2
D = 3
D = 3
E = 3
E=1
La tabla que se muestra a continuacin nos indica como acta este algoritmo sobre los
procesos del ejemplo propuesto pero para un cuanto igual a tres:
Nombre Instante
Proceso Llegada
A
0
B
1
C
4
D
5
E
8
Tiempo de
Servicio (Ts)
3
5
2
6
4
Instante de
Finalizacin
3
13
8
19
20
Tiempo de
Retorno (Tq)
3
12
4
14
12
Tiempo de Retorno
Normalizado (Tq/Ts)
1,00
2,40
2,00
2,33
3,00
FIN DE PLAZO
ENTRADA
COLA DE LISTOS
A EJECUCIN
CPU
LIBERAR
COLA AUXILIAR
COLA 1 DE E/S
ESPERA 1 E/S
ESPERA DE
SUCESOS
.
.
COLA N-ESIMA DE E/S
ESPERA N-ESIMA E/S
24
Al tomar la decisin sobre el siguiente proceso a expedir, los procesos de la cola auxiliar
tienen preferencia sobre los de la cola principal de Listos, pero hay que tener en cuenta que cuando
se expide un proceso desde la cola auxiliar, no puede ejecutar ms que un tiempo igual al cuanto
bsico, menos el tiempo total de ejecucin consumido, la ultima vez que fue seleccionado de la cola
de Listos.
CRITERIOS QUE UTILIZAN DATOS INRNSECOS PARA EL CALCULO DE LA PRIORIDAD INTERNA.
1
n 1
Tn
Sn
n
n
Esta formula da el mismo peso a todos los casos y normalmente, resulta ms conveniente, dar
un peso mayor a los casos ms recientes, ya que es ms probable, que reflejen mejor el
comportamiento futuro.
En el planificador a corto plazo, el mtodo que se utiliza para la estimacin del prximo ciclo
de UCP de cada uno de los procesos de la cola, se realiza en funcin de la duracin de los ciclos
anteriores, efectuando la prediccin de los valores futuros a partir de una serie de valores pasados.
La formula utilizada, se denomina exponencial media de las longitudes medias de los ciclos
anteriores y se obtiene, haciendo 1/n = , si se sustituye este valor en la formula anterior:
Sn+1 = Tn + Sn (1 )
25
En el caso de que el valor de sea pequeo, estamos dando ms peso a los valores pasados,
reflejados en el tiempo estimado para el ciclo anterior, sin embargo en el caso de tener un valor de
grande, estamos dando un peso mayor a los valores ms recientes, reflejados mediante la duracin
del ciclo anterior.
Si consideramos un valor de igual a , estaremos dando el mismo peso a los valores ms
recientes y a los mas lejanos.
0
A
10
11
12
13
14
15
16
17
18
19
20
A= 3
B = 5
C = 2
D = 6
E = 4
Nombre Instante
Proceso Llegada
A
0
B
1
C
4
D
5
E
8
Tiempo de
Servicio (Ts)
3
5
2
6
4
Instante de
Finalizacin
3
8
10
20
14
Tiempo de
Retorno (Tq)
3
7
6
15
6
Tiempo de Retorno
Normalizado (Tq/Ts)
1,00
1,40
3,00
2,50
1,50
El riesgo que existe al utilizar esta poltica, consiste en la posibilidad de inanicin, para los
procesos largos, mientras exista un flujo continuo de procesos ms cortos y no es conveniente para
entornos de tiempo compartido o de procesamiento de transacciones, debido a la ausencia de
apropiacin.
Prximo proceso, el de tiempo restante ms corto.
Esta poltica de menor tiempo restante SRT, Shortest Remaining Time, es una versin
apropiativa del SJF, en la que el planificador siempre elige, al proceso que le queda menos tiempo
esperado de ejecucin.
Cuando se aade un nuevo proceso a la cola de Listos, puede quedarle un tiempo esperado
de ejecucin, menor que al proceso que est ejecutndose en ese momento, por consiguiente, el
planificador puede introducir en el procesador el nuevo proceso que ha entrado en la cola de Listos.
La poltica SRT, no presenta el favoritismo a los procesos largos del algoritmo FCFS, no se
generan tantas interrupciones adicionales como en el algoritmo RR, pero se deben guardar los
tiempos de servicio transcurridos.
Esta poltica trata de obtener las ventajas de los algoritmos RR y SJF, por lo tanto debe
producir unos tiempos de respuesta mejores, que con el algoritmo SJF, no obstante, para su
utilizacin el planificador debe disponer de una estimacin del tiempo de proceso para poder llevar a
cabo la funcin de seleccin y seguir existiendo el riesgo de inanicin para los procesos largos.
26
10
11
12
13
14
15
16
17
18
19
20
A= 3
B=1
B = 4
C = 2
D = 6
E = 4
Nombre Instante
Proceso Llegada
A
0
B
1
C
4
D
5
E
8
Tiempo de
Servicio (Ts)
3
5
2
6
4
Instante de
Finalizacin
3
10
6
20
14
Tiempo de
Retorno (Tq)
3
9
2
15
6
Tiempo de Retorno
Normalizado (Tq/Ts)
1,00
1,80
1,00
2,50
1,50
w
S
0
ws
s
donde:
PA=(0+3)/3= 1
A= 3
10
11
B = 5
C = 2
13
14
15
16
17
18
19
20
PC = (4+2) / 2= 3
PD = (3+6) / 6=1,5
PE = (0+4) / 4 = 1
PB = (2+5) / 5 = 1,4
12
PD = (5+6) / 6 = 1,8
PE = (2+4) / 4 = 1,5
D = 6
E = 4
Tiempo de
Servicio (Ts)
3
5
Instante de
Finalizacin
3
8
Tiempo de
Retorno (Tq)
3
7
Tiempo de Retorno
Normalizado (Tq/Ts)
1,00
1,40
27
4
5
8
2
6
4
10
16
20
6
11
12
3,00
1,83
3,00
Hasta el momento actual la regla de planificacin ha sido, que cuando el proceso actual
termina o se bloquea, se elige el proceso listo con un valor mayor de RR. Este mtodo es atractivo
porque tiene en cuenta la edad del proceso, aunque se favorece a los trabajos ms cortos, ya que un
denominador menor produce una razn mayor, el envejecimiento sin que haya servicio incrementa el
valor de la razn, de forma que los procesos ms largos pasen finalmente primero, en competicin
con los ms cortos.
El tiempo esperado de servicio debe estimarse antes de emplear la tcnica del mayor ndice de
respuesta, tal y como suceda con las polticas SRJ y SRT.
Colas mltiples.
Esta poltica de colas Mltiples, que se denomina MQ, Multiple Queues, se utiliza cuando los
procesos que se van a ejecutar en el sistema, pueden ser clasificados en diversos grupos,
asignndolos a diferentes colas con distinta planificacin y de esta manera darles el servicio que
realmente necesitan.
Un ejemplo claro de esta situacin es el caso de los procesos batch y los procesos
interactivos, que necesitan diferentes tiempos de respuesta y por lo tanto, pueden ser gestionados
por diferentes algoritmos de planificacin.
Esta poltica, divide la cola de procesos listos para ejecutarse, en varias colas separadas, de
esta manera, los procesos se asignan de forma permanente a una determinada cola segn sus
necesidades y tipo.
Cada cola tiene asociado un algoritmo de planificacin diferente y as por ejemplo, la cola de
procesos interactivos, puede gestionarse con un algoritmo RR, Round-Robin, y la de procesos batch
con el algoritmo FCFS, First Come, First Served.
COLA DE PROCESOS
INTERACTIVOS
EJECUCIN
CPU
LIBERAR
RR
COLA DE PROCESOS
BATCH
EJECUCIN
CPU
LIBERAR
FCFS
Para resolver el problema de cuando se le debe dar el control a cada cola, para que los
procesos situados en ellas, puedan acceder al procesador, se establece un algoritmo de planificacin
entre las colas, que normalmente es apropiativo de prioridad fija.
De esta manera, la cola de procesos interactivos tendr asociada una prioridad ms alta que la
de procesos batch, por lo tanto, si la cola de procesos interactivos esta vaca, se podrn ejecutar los
proceso batch, pero si existe algn proceso interactivo, ser este el que se ejecute.
28
RRQ1
EJECUCIN
CPU
LIBERAR
RR
NIVEL 2
RRQ2
EJECUCIN
CPU
LIBERAR
FCFS
.
.
NIVEL n
FCFS
CPU
La utilizacin de esta poltica permitir, que los procesos cortos terminen rpidamente sin
descender demasiado en la jerarqua de las colas de Listos, sin embargo, un proceso largo ser
gradualmente llevado hacia los ltimos niveles. As pues, con esta poltica se favorece a los procesos
ms nuevos y cortos, antes que a los ms viejos y largos.
En cada cola o nivel, se le concede al proceso un determinado tiempo de procesador, de
manera que, si se excede, el proceso se pasa a la cola de nivel inmediatamente inferior, es decir, su
prioridad se ver disminuida en una unidad.
En el caso de que un proceso llegue a la ultima cola y no logre terminar su ejecucin en el
tiempo asignado a esta cola, se producir un error indicando que se ha excedido del tiempo de
procesador asignado al proceso.
Otra posibilidad es hacer infinito el tiempo de procesador, que se pueda asignar en la cola de
menor prioridad del sistema, por lo que todos los procesos podran terminar y no se producira nunca
el error anterior.
El nico dato que resta por fijar es el tiempo que se debe asignar a cada proceso en la
primera cola o nivel de mayor prioridad. La eleccin de este tiempo varia mucho de un sistema a
otro, del numero de procesos existentes, de su tipo y del numero de colas que haya que gestionar.
APUNTES DE SISTEMAS OPERATIVOS
29
Todo esto se puede describir prcticamente, suponiendo que los algoritmos elegidos para
gestionar cada cola, sean de tipo RR, Round- Robin. En este caso, una vez que un proceso haya
consumido el cuanto de su cola un determinado nmero de veces, habiendo agotado el tiempo que se
le permita residir en esa cola y no haya finalizado su ejecucin, ser colocado al final de la del nivel
inmediatamente inferior.
Resumiendo, este tipo de planificacin se puede definir por los siguientes parmetros:
El nmero de colas.
El algoritmo de planificacin de cada cola.
El mtodo de paso de un proceso de una a otra cola.
En que cola debe ser introducido el proceso al comienzo de su ejecucin.
El algoritmo de planificacin entre las distintas colas.
La Poltica FB intenta conseguir dar un trato justo por medio de la separacin de los procesos
por categoras, para as darles el servicio que necesitan, ya que si los procesos estn limitados por el
procesador, terminaran en las colas de menor prioridad, es decir en el nivel ms bajo, dejando en las
colas de mayor prioridad a aquellos procesos muy interactivos.
0
10
11
12
13
14
15
16
17
18
19
20
3
2
3
1
2
1
2
1
3
1
4
3
En la tabla que se expresa a continuacin se indica como acta esta poltica en los procesos
del ejemplo que se viene considerando en las polticas anteriormente descritas:
Nombre Instante
Proceso Llegada
A
0
B
1
C
4
D
5
E
8
Tiempo de
Servicio (Ts)
3
5
2
6
4
Instante de
Finalizacin
11
18
7
20
17
Tiempo de
Retorno (Tq)
11
17
3
15
9
Tiempo de Retorno
Normalizado (Tq/Ts)
3,67
3,40
1,50
2,50
2,25
CONTROL DE PROCESOS.
En este punto se trata de exponer como se realiza el control de los procesos por parte del
sistema operativo, para ello, ser preciso tener en cuenta en primer lugar, los modos de ejecucin de
ejecucin del procesador, ya que la mayora de los procesadores dan soporte para dos modos de
ejecucin por lo menos:
30
Este cambio en el control del procesador se fundamenta, en un bit que reside en la palabra
estado de programa (PSW), este bit indica en todo momento, el modo de ejecucin del procesador y
cambia como respuesta a ciertos sucesos, as por ejemplo, cuando el usuario hace una llamada a un
servicio del sistema operativo, el modo cambia del estado usuario al estado sistema.
Este cambio se realiza ejecutando una instruccin de cambio de modo ( CHM, Change Mode),
de tal forma que cuando el usuario, hace una llamada para ejecutar un servicio del sistema o cuando
se produce una interrupcin, se transfiere el control a una rutina del sistema.
Para ello, lo primero que hace es ejecutar la instruccin CHM, para entrar en el estado sistema
y a continuacin se producir el cambio de PSW,s cargando en la PSW actual la correspondiente a la
rutina que se va a ejecutar, posteriormente se ejecutar dicha rutina y finalmente se cargar
nuevamente en la PSW actual la correspondiente al proceso interrumpido y antes de devolver el
control al proceso del usuario, se volver a ejecutar la instruccin CHM, para cambiar del modo
sistema al modo usuario.
Anteriormente se han expresado los sucesos que conducen a la creacin de un nuevo proceso
y las estructuras de datos asociadas a los procesos, por lo tanto, estamos en condiciones de describir
brevemente los pasos a realizar para la creacin real de los procesos, teniendo en cuenta que la vida
de un proceso est definida por su creacin y su finalizacin.
Por lo tanto, una vez que el sistema operativo decide, por alguna razn, crear un nuevo
proceso, se producirn los siguientes pasos:
Asignar un nico identificador al nuevo proceso, en este momento se aade una nueva
entrada a la tabla principal de procesos, que contiene una entrada por cada proceso.
Asignar espacio para el proceso, que incluye todos los elementos de la imagen del
proceso, por lo tanto, el sistema operativo debe conocer el espacio necesario para situar
los programas, los datos y pila del proceso del usuario. Si un proceso es generado por
otro, el proceso padre puede pasarle al sistema operativo, los valores necesarios como
parte de la solicitud de creacin del proceso y si algn espacio de direcciones existente se
va a compartir, se deben establecer los enlaces adecuados.
Debe inicializarse el bloque de control de proceso, con los datos que se puedan conocer
en ese momento, por ejemplo:
En la parte de identificacin del proceso, se puede establecer l ID del proceso, junto
a otros ID apropiados, tales como el del proceso padre si existe.
En la parte de informacin del estado del procesador, lgicamente se inicializar con
la mayor parte de las entradas a cero, excepto para el contador del programa, que
sealar el punto de entrada del programa y los punteros a las pilas del sistema,
deben establecer los lmites de la pila del proceso.
La parte de informacin de control de proceso, se debe inicializar, con los valores
estndares por omisin y los atributos que se han solicitado para el proceso. Por
ejemplo, el estado del proceso puede inicializarse a listo para ejecutarse o a listo y
suspendido; la prioridad puede asignarse por omisin el valor ms bajo, a menos que
se haya hecho una solicitud explcita de un valor mayor.
Establecer los enlaces adecuados en las colas de planificacin donde se situar el nuevo
proceso, bien sea a la cola de listos para ejecutarse o en la cola de listos y suspendidos.
Puede haber otras estructuras de datos que crear o ampliar, por ejemplo, el sistema
operativo puede mantener un archivo de contabilidad para cada proceso, que puede
utilizarse ms tarde con propsitos de facturacin o tambin para evaluacin del
rendimiento.
Durante la ejecucin de un proceso, este pasar por los distintos estados que se han sealado
anteriormente, al analizar el comportamiento de los procesos, por lo tanto, en ciertos momentos se
encontrar en estado de ejecucin y en otros en cualquiera de los estados citados con anterioridad.
APUNTES DE SISTEMAS OPERATIVOS
31
Cuando se produce una interrupcin externa a la instruccin que se estaba ejecutando en ese
momento, el control se transfiere al gestor de interrupciones, que realiza una serie de tareas bsicas y
despus salta a una rutina del sistema operativo, que se ocupa del tipo de interrupcin que se ha
producido.
Algunos ejemplos son los siguientes:
Interrupcin de reloj, en la cual el sistema operativo determina si el proceso que se estaba
ejecutando en ese momento, ha consumido la fraccin mxima de tiempo permitida, por
lo tanto, el proceso debe pasar al estado listo y se debe expedir otro proceso.
Interrupcin de un controlador de E/S, en la cual el sistema operativo determina
exactamente que se ha finalizado una accin de E/S. Si la accin constituye un suceso que
estn esperando uno o ms procesos, entonces el sistema operativo traslada todos los
procesos bloqueados correspondientes a ese suceso al estado de listos para ejecutarse y
los procesos bloqueados y suspendidos pasan al estado de listos y suspendidos. El sistema
operativo debe decidir si se reanuda la ejecucin del proceso que se estaba ejecutando en
el momento de la interrupcin o se retira a dicho proceso en favor de un proceso listo
para ejecutarse que tiene una mayor prioridad.
Fallo de memoria, que se produce cuando el procesador se encuentra una referencia a una
direccin de memoria virtual de una palabra que no esta en la memoria principal. El
sistema operativo, tiene que traer el bloque, bien sea pagina o segmento que contiene la
referencia, desde la memoria secundaria a la memoria principal.
32
Cuando se produce una interrupcin por un error fsico o lgico, producido por una
condicin excepcional, el sistema operativo determina si el error irrecuperable y si es as, el proceso
que se estaba ejecutando, pasa al estado de terminado y se produce un cambio de proceso. Si el error
no es fatal, la accin del sistema operativo depender de la naturaleza del error y del diseo del
sistema operativo, ya que se puede intentar algn procedimiento de recuperacin o simplemente,
notificarlo al usuario. En este caso se puede hacer un cambio de proceso o simplemente reanudar el
mismo proceso que estaba ejecutando.
Finalmente, el sistema operativo puede activarse mediante una llamada al supervisor desde el
programa que esta ejecutando. Por ejemplo, cuando esta ejecutando un proceso de usuario y se llega
a una instruccin que solicita una operacin de E/S, esta llamada provoca la transferencia a una rutina
del sistema operativo, pasando el proceso que se estaba ejecutando al estado de bloqueado.
A continuacin vamos a estudiar en que consiste el cambio de contexto y que diferencia
existe entre cambio de proceso y cambio de contexto. Generalmente cuando se produce un cambio
de contexto, no necesariamente se tiene que producir un cambio de proceso, aunque en muchos
casos se produzca.
Anteriormente, cuando estudiamos la gestin de las interrupciones, vimos que el procesador
comprueba si se ha producido alguna interrupcin, lo que se indicara por la presencia de una seal
de interrupcin. Si no hay pendiente ninguna el procesador contina con la instruccin siguiente del
programa en curso del proceso actual y si hay alguna interrupcin pendiente, el procesador realiza lo
siguiente:
Si la interrupcin va a venir seguida de un cambio a otro proceso, entonces hace falta realizar
un cierto trabajo, no obstante, en la mayora de los sistemas operativos, el acontecimiento de una
interrupcin, no provoca necesariamente un cambio de proceso, por lo tanto, es posible que, despus
APUNTES DE SISTEMAS OPERATIVOS
33
de que el gestor de interrupciones haya realizado su funcin el proceso que estaba ejecutndose
reanude su ejecucin. En tal caso, todo lo que hay que hacer es salvar la informacin del estado del
procesador cuando se produzca la interrupcin y restaurar dicha informacin cuando el control
vuelva al programa que se estaba ejecutando. Las funciones de salvar y restaurar suelen llevarse a
cabo en el hardware.
Con estas puntualizaciones vemos claramente, que el cambio de contexto es un concepto
distinto del cambio de proceso, aunque en algunos textos no se establece esta diferencia, por lo
tanto, puede producirse un cambio de contexto sin cambiar el estado del proceso, que est
actualmente en estado de ejecucin.
En tal caso, salvar el contexto y restaurarlo posteriormente, tiene un pequeo coste extra, sin
embargo, si el proceso que estaba ejecutndose tiene que pasar a otro estado (Listo, bloqueado,
etc.), el sistema operativo tiene que llevar a cabo cambios substanciales en su entorno.
Los pasos que deben ser ejecutados en un cambio de proceso completo son los siguientes:
Todos estos pasos nos indican que cuando el cambio de proceso supone un cambio de estado,
requiere un esfuerzo considerablemente mayor, que un simple cambio de contexto.
Respecto a la ejecucin del sistema operativo, ya hemos visto anteriormente que el sistema
operativo funciona de la misma forma que un software normal, es decir, es un programa ms
ejecutado por el procesador, por lo tanto, cuando abandona el control debe depender de que el
procesador le permita recuperarlo.
Si el sistema operativo es solamente un conjunto de programas y es ejecutado por el
procesador como cualquier otro programa, tendremos que analizar los distintos enfoques que se
pueden utilizar por los diseadores de sistemas operativos para efectuar el control.
Un enfoque bastante tradicional y habitual en muchos de los sistemas operativos es ejecutar el
ncleo del sistema operativo fuera de cualquier proceso. Con este enfoque, cuando el proceso en
ejecucin es interrumpido o hace una llamada al supervisor, se salva el contexto del procesador para
este proceso y se pasa el control al ncleo.
P1
P2
P3.
Pn
NUCLEO
34
En este caso, el sistema operativo tiene su propio espacio de memoria y su propia pila del
sistema, para controlar las distintas llamadas y retornos de procedimientos, por lo tanto, el sistema
operativo puede llevar a cabo cualquier funcin y luego restaurar el contexto del proceso
interrumpido para reanudarlo o bien completar la funcin de salvar el entorno del proceso y
continuar con la planificacin y expedicin de otro proceso, todo depender de la causa de la
interrupcin y de las circunstancias del momento.
En cualquier caso en este enfoque se considera que el concepto de proceso se aplica solo a
los programas del usuario y por lo tanto el cdigo del sistema operativo se ejecuta como una entidad
separada que opera en modo privilegiado.
Una alternativa que es comn en los sistemas operativos de maquinas pequeas, es decir, en
minicomputadores y microcomputadores, consiste en ejecutar casi todo el software del sistema
operativo en el contexto de un proceso de usuario.
P1
P2
FUNCIONES
DEL
SISTEMA
OPERATIVO
FUNCIONES
DEL
SISTEMA
OPERATIVO
Pn
FUNCIONES
DEL
SISTEMA
OPERATIVO
En este enfoque el sistema operativo esta formado por un conjunto de rutinas, que el usuario
llama para realizar algunas funciones y que son ejecutadas dentro del entorno del proceso de usuario,
tal y como se expresa en la figura. En un momento dado, el sistema operativo estar gestionando n
imgenes de procesos y en cada imagen se incluye no solo las regiones correspondientes al programa
de usuario, sino tambin las zonas de programas, datos y pilas para los programas del ncleo.
IDENTIFICACIN
DEL PROCESO
INFORMACIN
DEL ESTADO DEL
PROCESADOR
INFORMACIN DE
CONTROL DEL
PROCESO
PILA DEL USUARIO
ESPACIO PRIVADO
DE DIRECCIONES
DEL USUARIO
PILA DEL NUCLEO
ESPACIO DE
DIRECCIONES
COMPARTIDO
35
proceso de usuario en curso, de esta manera, no se realiza un cambio de proceso, sino un cambio de
contexto dentro del mismo proceso.
Si el sistema operativo, al completar su trabajo, determina que el proceso en curso se debe
continuar ejecutando, entonces se lleva a cabo un cambio de contexto para reanudar el programa
interrumpido del proceso en curso, siendo esta una de las ventajas clave de este enfoque.
El programa de usuario se interrumpe para emplear alguna rutina del sistema operativo y
luego se reanuda sin realizarse ningn cambio de proceso, no obstante, si se determina que va a
producirse un cambio de proceso, entonces se pasa el control a una rutina que realiza el cambio entre
procesos. Esta rutina debe poner el proceso en curso en estado de No ejecucin y por lo tanto,
otro proceso debe designarse como proceso en ejecucin, esta accin tiene que realizarse fuera de
todos los procesos.
Una ltima alternativa, ilustrada en la figura que estamos comentando, es la de implementar
el sistema operativo como un conjunto de procesos y al igual que en las otras opciones, el software
que forma parte del ncleo se ejecutar en modo ncleo. En este caso, las funciones ms importantes
del ncleo se organizan en procesos separados, pero puede haber una pequea cantidad de cdigo
para el cambio de procesos, que se debe ejecutar fuera de todo proceso.
U1
U2
. Un
SO1
SO2
SOn