Documente Academic
Documente Profesional
Documente Cultură
Sistemas Operativos
III PLANIFICACIN DE PROCESOS
PLANIFICACIN DE PROCESOS
En un ordenador multiprogramado es frecuente que en un momento dado haya mltiples
procesos compitiendo por el uso de la CPU al mismo tiempo. Esta situacin se da siempre que dos
o ms procesos estn simultnemente en el estado listo. Si slo hay una CPU disponible, es
necesario hacer una eleccin para determinar cul de esos procesos ser el siguiente que se
ejecute. La parte del sistema operativo que realiza esa eleccin se denomina el planificador
(scheduler), y el algoritmo que se utiliza para esa eleccin se denomina el algoritmo de
planificacin. El planificador intentara conseguir:
Tiempo de Regreso: minimizar el tiempo que deben esperar los usuarios por lotes para
obtener sus resultados.
Muchas veces sucede que no todos estos aspectos pueden ser cubiertos, sino que para uno se
cumpla deba dejar de cumplirse otro. Cualquier algoritmo de planificacin que favorezca a una
tarea afecta a otra.
Otra complicacin que enfrenta el planificador es que cada proceso es nico e impredecible, lo
que hace que algunos de los procesos utilizan gran cantidad de tiempo en espera de E/S mientras
que otros utilizan la CPU por mucho tiempo si tienen la oportunidad. Para garantizar que ningn
proceso se ejecute un tiempo excesivo, todas las computadoras tienen un cronometro o reloj
incluido, que provoca una interrupcin en forma peridica; esta frecuencia puede ser establecida
por el sistema operativo en cualquier valor que estime conveniente.
La estrategia de permitir que procesos ejecutables (desde el punto de vista lgico) sean
suspendidos en forma temporal se llama planificacin apropiativa, en contraste con el mtodo de
ejecucin hasta terminar de los primeros sistemas por lotes, tambin denominada planificacin
no apropiativa.
Como vimos un proceso puede ser suspendido en cualquier instante para ejecutar otro proceso,
lo que conduce a condiciones de competencia, para las que se utilizan mtodos diferentes, con el
objetivo de salvarlas (Semforos, Contadores de eventos, Monitores, Mensajes, etc.), esto hace
que los algoritmos de planificacin no apropiativa, sencillos y fciles de implantar, no sean
adecuados para sistemas de propsito general con varios usuarios en competencia.
CUANDO PLANIFICAR
Una cuestin clave relacionada con la planificacin es en qu momento realizar las decisiones de
planificacin. Resulta que hay una gran variedad de situaciones en las que es necesaria la
planificacin.
2. En segundo lugar, debe hacerse una decisin de planificacin cuando un proceso termina.
Ya que no puede seguirse ejecutando ese proceso (puesto que ya no existe), debe elegirse
a algn otro proceso de entre el conjunto de procesos listos. Si no hay ningn proceso
preparado, normalmente se ejecuta un proceso ocioso proporcionado por el sistema.
Prof.: Lic. Javier Ruiz Diaz
Pgina 1
3. En tercer lugar, cuando un proceso se bloquea en E/S, sobre un semforo, o por alguna
otra razn, es necesario seleccionar algn otro proceso para ejecutarlo. A veces el motivo
del bloqueo puede jugar algn papel en la eleccin.
Por ejemplo:
Si A es un proceso importante y est esperando a que B salga de su regin crtica, el dejar
que B se ejecute a continuacin puede permitir que salga de su regin crtica, haciendo
posible que A pueda continuar. Sin embargo, el problema es que generalmente el
planificador no cuenta con la informacin necesaria para poder tomar en cuenta esta
dependencia entre los procesos.
4. En cuarto lugar, cuando tiene lugar una interrupcin debida a una E/S, tambin es
necesario tomar una decisin de planificacin. Si la interrupcin proviene de un
dispositivo de E/S que ha completado ahora su trabajo, entonces algn proceso que
estaba bloqueado esperando por la E/S puede ahora estar preparado para ejecutarse.
Corresponde al planificador decidir si debe ejecutarse el nuevo proceso listo, si debe
continuar ejecutndose el proceso en ejecucin en el momento de la interrupcin, o si
debe ejecutarse algn tercer proceso.
Si un reloj de hardware proporciona interrupciones peridicas a 50 Hz, 60 Hz, o a alguna otra
frecuenta, puede tomarse una decisin de planificacin en cada interrupcin de reloj o en cada
k-sima interrupcin de reloj.
Los algoritmos de planificacin pueden dividirse en dos categoras si tenemos en cuenta cmo se
comportan ante las interrupciones de reloj.
3. Tiempo Real.
En los sistemas en batch, no existen usuarios que estn esperando impacientemente por una
rpida respuesta ante sus terminales. En consecuencia, son aceptables los algoritmos no
expulsores, o los algoritmos expulsores con largos periodos de tiempo para cada proceso. Con este
enfoque se reduce el nmero de cambios de proceso, mejorando por tanto el rendimiento.
En un entorno con usuarios interactivos es indispensable que haya expulsiones para impedir que
un proceso acapare la CPU, negando cualquier servicio de la CPU a los dems. Incluso aunque
ningn proceso tenga intencin de ejecutarse eternamente, es posible que debido a un error en el
programa un proceso mantenga parados a todos los dems indefinidamente. La expulsin es
necesaria para impedir ese comportamiento.
En los sistemas con restricciones de tiempo real, por extrao que parezca, la expulsin es algunas
veces innecesaria debido a que los procesos saben que no pueden ejecutarse durante largos
periodos de tiempo y usualmente hacen su trabajo y rpidamente se bloquean. La diferencia con
los sistemas interactivos es que los sistemas en tiempo real slo ejecutan programas pensados
como parte de una misma aplicacin. Los sistemas interactivos por el contrario son sistemas de
propsito general y pueden ejecutar programas arbitrarios no cooperantes o incluso maliciosos.
Algo que est relacionado con la justicia es el reforzamiento de las polticas del sistema. Si la
poltica local es que los procesos de control de la seguridad se ejecuten siempre que quieran
hacerlo, incluso si eso significa que las nminas se retrasen 30 segundos, el planificador tiene
que asegurar el cumplimiento de esta poltica.
Otro objetivo general es mantener ocupadas todas las partes del sistema siempre que sea
posible. Si la CPU y todos los dispositivos de E/S pueden mantenerse ocupados todo el
tiempo, se realizar ms trabajo por segundo que si alguno de los componentes est ocioso.
Por ejemplo:
En un sistema en batch el planificador tiene el control de qu trabajos estn cargados en
memoria para ejecutarse. Tener en memoria juntos algunos procesos intensivos en CPU y
algunos procesos intensivos en E/S es una idea mejor que primero cargar y ejecutar todos los
trabajos intensivos en CPU y a continuacin una vez que se hayan terminado, cargar y ejecutar
todos los trabajos intensivos en E/S.
Pgina 3
Si se utiliza la ltima estrategia, mientras se ejecutan los procesos intensivos en CPU, esos
procesos lucharn por conseguir la CPU y el disco permanecer ocioso. Luego, cuando se
carguen los trabajos intensivos en E/S, esos procesos lucharn por utilizar el disco y la CPU
permanecer ociosa.
Por ejemplo: Si pinchando con el ratn sobre un icono que llama un proveedor de Internet
utilizando un mdem analgico se tarda 45 segundos en establecer la conexin, el usuario
Prof.: Lic. Javier Ruiz Diaz
Pgina 4
Una cuestin relacionada es lo que puede denominarse la proporcionalidad. Los usuarios tienen
una idea inherente (pero a menudo incorrecta) de cunto tiempo deben tardar las cosas. Cuando
una peticin que se percibe complicada tarda mucho tiempo, los usuarios lo aceptan sin
problemas, pero cuando una peticin que se percibe como sencilla tarda mucho tiempo, los
usuarios se irritan.
probablemente aceptar esto como una de esas cosas que tiene la vida. Por otro lado, si
pinchando con el ratn sobre un icono que cierra la conexin se tarda 45 segundos, el usuario
probablemente estar a los 30 segundos profiriendo maldiciones, para acabar a los 45 segundos
echando espuma por la boca.
Este comportamiento se debe a la percepcin del usuario comn de que realizar una llamada de
telfono y establecer una conexin se supone que tarda mucho ms tiempo que simplemente
colgar el telfono. En algunos casos (tales como este), el planificador no puede hacer nada para
mejorar el tiempo de respuesta, pero en otros casos s que puede, especialmente cuando la
tardanza se debe a una pobre eleccin del orden de los procesos.
Los sistemas en tiempo real tienen diferentes propiedades que los sistemas interactivos, y por
tanto diferentes objetivos de planificacin. Los sistemas en tiempo real se caracterizan por tener
lmites de tiempo que deben, o al menos deberan, cumplirse.
Por ejemplo:
Si un ordenador est controlando un dispositivo que produce datos a una velocidad constante,
cualquier retraso en la ejecucin del proceso que recoge los datos dentro del lmite de tiempo
establecido puede provocar la prdida de algunos datos.
Por lo tanto el objetivo primordial en un sistema de tiempo real es cumplir con todos (o la
mayora) de los lmites de tiempo especificados.
En algunos sistemas de tiempo real, especialmente en aquellos relacionados con la multimedia, es
muy importante la predecibilidad. El incumplimiento ocasional de algunos lmites de tiempo no
resulta fatal, pero si el proceso de audio se ejecuta demasiado errticamente, la calidad del
sonido puede deteriorarse rpidamente. Lo mismo sucede con el vdeo, pero el odo es mucho
ms sensible a las perturbaciones que el ojo. La planificacin de procesos debe ser altamente
predecible y regular para conseguir evitar este problema.
Algunos objetivos aparecen listados.
Sistemas de batch
Sistemas interactivos
Rendimiento maximizar
el nmero de trabajos
ejecutados por hora
Tiempo de retorno
minimizar el tiempo entre
la entrada y la conclusin
de un trabajo
Utilizacin de la CPU
mantener la CPU ocupada
todo el tiempo
Tiempo de respuesta
responder rpidamente
a las peticiones
Proporcionalidad
satisfacer las
expectativas de los
usuarios
Pgina 5
Primero en Llegar
Primero en ser
Servido
Primero el Trabajo
ms Corto
Tiempo Restante ms
Corto a Continuacin
Planificacin a Tres
Niveles
Pgina 6
Sin embargo utilizando un algoritmo de planificacin que expulse al proceso intensivo en CPU
cada 10 milisegundos, los procesos intensivos en E/S podran terminar en 10 segundos en vez de
los 1000 segundos, y esto sin ralentizar demasiado el proceso intensivo en CPU.
(a)
(b)
Consideremos la ejecucin del trabajo ms corto en primer lugar (b), los tiempos de regreso son ahora 4, 8,
12 y 20 minutos, con un promedio de 11 minutos, se demuestra que este algoritmo es el optimo.
Pgina 7
tiempo total con el tiempo de ejecucin que le queda al proceso actual. Si el nuevo proceso
necesita menos tiempo para terminar que el proceso actual, el proceso actual se suspende,
arrancndose el nuevo trabajo. Este esquema permite que los nuevos procesos cortos reciban un
buen servicio.
CPU
Planificador de CPU
Trabajo
Entrante
Cola de Entrada
Disco
Memoria
Principal
Planificador
de
Admisin
Planificador
de
Memoria
Sin embargo, probablemente esta revisin no debe de realizarse ms de una vez por segundo, o
incluso menos, ya que cargar un proceso desde el disco resulta muy costoso.
Prof.: Lic. Javier Ruiz Diaz
Pgina 8
Esta decisin debe revisarse frecuentemente para permitir a los procesos que estn en el disco
recibir algn servicio.
2.
3.
4.
El tercer nivel de planificacin consiste realmente en escoger uno de los procesos preparados
que hay en memoria para ejecutarlo a continuacin.
A menudo se le denomina el planificador de la CPU y es aqul en el que piensa toda la gente
cuando se habla del planificador. Aqu puede utilizarse cualquier algoritmo apropiado, bien
expulsor o no expulsor. Estos algoritmos incluyen los descritos anteriormente as como un
nmero de algoritmos que van a describirse en la siguiente seccin.
Pgina 9
Mientras que la planificacin a tres niveles no es posible aqu, s que es posible e incluso comn
una planificacin a dos niveles (planificador de memoria y planificador de la CPU). A continuacin
vamos a concentrarnos en el planificador de la CPU.
Eliminar de la memoria los procesos que hayan permanecido en ella el tiempo suficiente,
Cargar a memoria los procesos que hayan estado en disco demasiado tiempo.
Pgina 10
Una vez hecho el cambio (b), el planificador de nivel inferior se restringe de nuevo a los procesos
ejecutables que se encuentren en la memoria:
Se encarga de elegir de entre los procesos que estn en memoria en ese momento.
a, b,
c, d
Procesos en
la memoria
principal
e, f,
g, h
b, c,
f, g
e, f,
g, h
Procesos en
disco
a, b,
c, d
a, d,
e, h
(b)
(c)
(a)
Un planificador de dos niveles debe desplazar los procesos entre el disco y la memoria, adems de que debe
elegir los procesos por ejecutar de entre aquellos que se encuentran en la memoria.
Este mtodo es fcil de implantar, todo lo que necesita el planificador es mantener una lista de
procesos ejecutables, cuando el quantum de un proceso se consume y este an no ha terminado
de ejecutarse, se le coloca al final de la lista, as lo demuestra el esquema representativo de la
figura.
Proceso activo
Siguiente
Proceso activo
(a)
(b)
Planificacin Round Robin. (a) la lista de los procesos ejecutables. (b) la lista de los procesos ejecutables
despus de agotarse el quantum B
Pgina 11
El nico aspecto a tener en cuenta es la longitud del quantum. La alternancia entre un proceso y
otro, alternancia de procesos o alternancia de contexto, necesita cierta cantidad de tiempo para
administracin (resguardo y carga de registros y mapas de memoria, actualizacin de varias tablas
y listas, etc.)
Ejemplo: Supongamos que la alternancia de procesos tarda 5 mseg y el quantum tiene una
longitud de 20 mseg Con estos parmetros, despus de llevar a cabo 20 mseg de trabajo til, la
CPU deber utilizar 5 mseg para alternar entre los procesos. 20 % del tiempo de CPU se
desperdicia en el costo administrativo.
Tiempo de alternancia de proceso Tap = 5 mseg
Tiempo de quantum Tq = 20 mseg
Tiempo de CPU Tcpu = Tap + Tq = 5 mseg + 20 mseg = 25 mseg
Tap = 5 % Tcpu
Para mejorar la eficacia de la CPU, podramos establecer una longitud de quantum de 500 mseg el
tiempo desperdiciado seria entonces del 1 %.
Tap = 5 mseg
Tq = 500 mseg
Tcpu = Tap + Tq = 5 mseg + 500 mseg = 505 mseg
Tap = 1 % Tcpu
El problema surge: si diez usuarios interactivos oprimen la tecla enter casi al mismo tiempo, diez
procesos se colocaran en la lista de ejecutables. Si la CPU est libre el primero de los procesos
comienza de inmediato, el segundo lo hara hasta segundo ms tarde, etc. El ltimo de los
procesos debera esperar 5 seg antes de poder ejecutarse, (suponiendo que los dems utilizan la
totalidad de su quantum).
Este tiempo es demasiado largo para los usuarios interactivos trabajando en lnea, adems
hablamos de solo diez usuarios, que es un nmero ms pequeo de lo que usualmente se tiene en
una red.
Si el quantum es muy corto se alternan demasiado los procesos, lo que reduce la eficacia de la
CPU; pero si es muy largo, esto puede causar una respuesta lenta a las solicitudes interactivas
breves. Un quantum cercano a los 100 mseg es con frecuencia un compromiso razonable.
Pgina 12
Para impedir que los procesos de mayor prioridad se ejecuten de manera indefinida, el
planificador podra hacer decrecer la prioridad del proceso que se est ejecutando en cada tic
del reloj (es decir, en cada interrupcin de reloj).
Si esta accin provoca que la prioridad descienda por debajo de la del siguiente proceso de mayor
prioridad, tendr lugar un cambio de proceso.
Alternativamente, se podra asignar a cada proceso un quantum de tiempo mximo durante el
cual puede ejecutarse. Una vez consumido ese quantum, el proceso con la siguiente prioridad
ms alta tendr la oportunidad de ejecutarse.
Las prioridades se pueden asignar en forma esttica, as pues en una computadora del ejrcito las
prioridades pueden estar asociadas al rango; o podra darse que en un centro de cmputos
comercial las prioridades se asocien al costo de los procesos.
Por ejemplo: En un ordenador militar, los procesos iniciados por los generales podran comenzar
con prioridad 100; los iniciados por coroneles, con 90; los de los comandantes con 80; los de los
capitanes con 70; los de los tenientes con 60, y as en forma sucesiva.
Alternativamente, en un centro de clculo comercial, los trabajos de alta prioridad podran costar
100 dlares la hora; los de mediana prioridad, 75 dlares la hora, y los de baja prioridad 50
dlares la hora.
Ejemplos:
USUARIO
PRIORIDAD
GENERAL
100
CORONEL
90
MAYOR
80
CAPITAN
70
TENIENTE
60
COSTO
PRIORIDAD
$ 100
ALTA
$ 75
MEDIA
$ 50
BAJA
Las prioridades tambin pueden ser asignadas en forma dinmica por el sistema con el fin de
lograr ciertas metas, esta es aplicada en los casos en que los tiempos de ejecucin de los procesos
son relativamente distintos uno de otro.
Por ejemplo: Algunos procesos estn completamente dedicados a hacer E/S y gastan la mayor
parte de su tiempo esperando a que terminen las operaciones de E/S. Cada vez que un proceso de
ese tipo quiera la CPU, debe concedrsela de inmediato para que pueda iniciar su siguiente
solicitud de E/S, la cual puede proceder en paralelo con otro proceso que s haga uso de la CPU.
Hacer que los procesos intensivos en E/S esperen mucho tiempo por la CPU slo consigue tenerlos
ocupando la memoria durante un tiempo innecesariamente largo.
Pgina 13
Un algoritmo sencillo para dar un buen servicio a los procesos intensivos en E/S consiste en
asignarles como prioridad el valor 1/f, donde f es la fraccin del ltimo quantum que utiliz un
proceso.
bloquearse obtendra una prioridad de 2. Un proceso que consumi todo su quantum obtendra
una prioridad de 1.
Tiempo de quantum Tq = 100 mseg
100mseg/2mseg = 50
Prioridad P = 50
PROCESO
TIEMPO DE EJECUCION
PRIORIDAD
2 mseg
50
50 mseg
100 mseg
Procesos ejecutables
Prioridad 1
(Mxima prioridad)
Prioridad 2
Prioridad 3
Prioridad 4
(Mnima prioridad)
Mientras existan procesos ejecutables en la clase 4, solo se ejecuta un proceso para cada quantum, en forma de Round
Robin. Si la clase 4 est vaca se ejecutan los procesos de la clase 3 con Round Robin. As sucesivamente hasta ejecutar
todas las clases.
COLAS MLTIPLES
Ejemplo: Si un proceso necesita hacer clculos en forma continua con una duracin estimada de
100 quanta, primero se tendra un quantum y un primer intercambio, a continuacin se consideran
dos quantum antes del siguiente intercambio. En las ejecuciones subsecuentes se tendran 4, 8, 16,
32 y 64 quanta, aunque solo se utilizan 37 de los ltimos 64 quantum para terminar su trabajo.
Prof.: Lic. Javier Ruiz Diaz
Pgina 14
Solo sern necesarios 7 intercambios en lugar de los 100 correspondientes a un algoritmo puro de
round robn.
Adems de todo esto, al avanzar en las colas de prioridad, el proceso se ejecutara cada vez con
menor frecuencia, lo que representa un ahorro de tiempo de CPU para procesos interactivos
cortos.
T0/2 + T1/2,
Despus de tres nuevas ejecuciones, el peso de T0 en la vigente estimacin habr bajado a 1/8.
La tcnica de estimar el siguiente valor de una serie, calculando la media ponderada del ltimo
valor medido y su estimacin anterior, se conoce como envejecimiento (aging), y puede aplicarse
en muchas situaciones en las que es preciso hacer una prediccin con base en los valores
anteriores.
PLANIFICACIN GARANTIZADA
Un enfoque a la planificacin completamente diferente es la de hacer promesas reales a. los
usuarios sobre el rendimiento y luego cumplirlas en la prctica. Una promesa que es realista y
fcil de cumplir es la siguiente:
si hay n usuarios conectados, cada uno recibir aproximadamente 1/n de la potencia de la CPU.
Similarmente, en un sistema monousuario en el que se estn ejecutando n procesos, si todos los
dems factores son iguales, cada uno deber recibir un 1/n de los ciclos de CPU.
Puesto que se conoce el tiempo de CPU que ha utilizado cada proceso, se puede calcular el
cociente del tiempo de CPU consumido realmente entre el tiempo al que el proceso tiene
derecho.
Pgina 15
Para cumplir esta promesa, el sistema necesita llevar la cuenta de cunto tiempo de CPU ha
recibido cada proceso desde su creacin. Luego se calcula el tiempo de CPU al que cada uno tiene
derecho, que sera el tiempo desde la creacin dividido entre n.
Ejemplo: Una proporcin de 0.5 indica que un proceso solo ha dispuesto de la mitad del tiempo
ebido, mientras que una proporcin de 2.0 indica que un proceso ha utilizado el doble de lo que
debera.
Si llega un nuevo proceso y recibe cierto nmero de dcimos, en el siguiente sorteo tendr
una probabilidad de ganar proporcional al nmero de dcimos que tenga. Dicho de otro
modo, la planificacin por lotera es muy sensible en el sentido de que responde muy
rpidamente a los cambios.
Los procesos que cooperan pueden intercambiar dcimos si lo desean. Si un proceso cliente
enva un mensaje a un proceso servidor y luego se bloquea, podra entregar todos sus
dcimos al servidor para mejorar la probabilidad de que sea el servidor quien se ejecute a
continuacin. Cuando el servidor termine, devolver los dcimos al cliente para que pueda
ejecutarse otra vez. De hecho, si no hay clientes, los servidores no necesitan dcimos.
Consideremos el caso de un sistema con dos usuarios, a cada uno de los cuales se le ha prometido
el 50% de la CPU. El usuario 1 tiene cuatro procesos, A, B, C y D, y el usuario 2 slo tiene un
Pgina 16
Por ejemplo: Si a dos usuarios se les prometi el 50% del tiempo de CPU, cada uno recibir esa
fraccin, sin importar cuntos procesos cree cada uno.
proceso, E. Si se emplea la planificacin round robn, la siguiente sera una posible secuencia de
planificacin que se ajusta a todas las restricciones:
AEBECEDEAEBECEDE...
Por otra parte, si el usuario 1 tiene derecho al doble de tiempo de CPU que el usuario 2, podramos
tener
ABECDEABECDE...
Por supuesto, existen muchas otras posibilidades, y pueden explotarse, dependiendo del concepto
de justicia que se utilice.
En todos estos casos, producir la respuesta correcta demasiado tarde es a menudo tan malo como
no producir ninguna respuesta.
Los sistemas en tiempo real se clasifican generalmente en sistemas de tiempo real estricto (hard
real time) y sistemas de tiempo real moderado (soft real time).
En los sistemas de tiempo real estricto hay plazos absolutos que deben cumplirse, pase
lo que pase.
Un sistema puede tener que responder a mltiples flujos de sucesos peridicos. Dependiendo de
cunto tiempo se requiere para procesar cada suceso, podra no ser siquiera posible atenderlos a
todos. Por ejemplo, si hay m sucesos peridicos y el suceso i tiene lugar con un periodo Pi y su
Pgina 17
Los sucesos a los que un sistema de tiempo real debe tener que responder pueden clasificarse
como:
tratamiento requiere Ci segundos de tiempo de CPU, entonces el sistema slo podr soportar esa
carga si:
m
Ci
1
i =1 Pi
Un sistema en tiempo real que cumpla este criterio se dice que es planificable.
Los algoritmos de planificacin para tiempo real pueden ser estticos o dinmicos.
Los algoritmos estticos toman sus decisiones de planificacin antes de que el sistema
comience a ejecutarse.
La planificacin esttica slo funciona si se est perfectamente informado por anticipado sobre el
trabajo que debe realizarse y los plazos que deben cumplirse. Los algoritmos de planificacin
dinmica no tienen estas restricciones.
BIBLIOGRAFA
Sistemas Operativos Modernos. Tanenbaum A. Edt. Prentice Hall. Ao: 2004 Ed.
2.
Fundamentos de los Sistemas Operativos. Silberschatz, J.L. and Galvin P. B. and G.
Gagne. Edt. Mc Graw Hill. Ao: 2005.
Pgina 18