Author
dohanh
View
217
Download
0
Embed Size (px)
3 Planificacin de procesos y procesadores
La forma en que se reparte el uso de la CPU entre los procesos tiene un enorme impacto en el
rendimiento de un sistema multiprogramado, por lo que siempre se ha prestado una gran
atencin a las polticas de planificacin que se implementan y se han elaborado multitud de
conceptos relacionados con ello. El estudio de estas polticas es el objeto de este captulo. Se
presta tambin atencin a la planificacin en multiprocesadores, que aade una dimensin
espacial al problema, y a la planificacin de tiempo real.
Sistemas Operativos II Planificacin de procesos y procesadores 56
Contenido
3.1 Introduccin 57
3.2 Evaluacin del rendimiento 58
3.3 Comportamiento de los programas 60
3.4 Polticas de planificacin 61
3.4.1 Seleccin de un proceso para entrar en la CPU 62
3.4.2 Expulsin 64
3.4.3 Planificacin multinivel 68
3.5 Planificacin en multiprocesadores 69
3.5.1 Criterios para la planificacin en multiprocesadores 70
3.5.2 Polticas de planificacin en multiprocesadores 71
3.6 Planificacin de tiempo real 72
3.6.1 Criterios para la planificacin de tiempo real 74
3.6.2 Polticas de planificacin de tiempo real 75
3.7 Ejemplos de planificacin 76
3.7.1 Planificacin en sistemas UNIX clsicos 76
3.7.2 Planificacin en UNIX SVR4 78
3.7.3 Planificacin en Windows 78
3.8 Bibliografa 79
3.9 Ejercicios 80
Sistemas Operativos II Planificacin de procesos y procesadores 57
3.1 Introduccin
En el captulo anterior se ha estudiado cmo se representan los procesos y se
implementan las transiciones de estado entre ellos y los cambios de contexto. Uno de
los objetivos de un sistema operativo multiprogramado es proporcionar una
utilizacin eficiente de los recursos del proceso, permitiendo a los procesos un uso de
ellos que evite situaciones de inanicin. Todo esto es lo que persigue una poltica de
planificacin adecuada, que determina los criterios de eleccin del siguiente proceso
a usar la CPU. Evaluar la calidad de una poltica de planificacin es complejo y
presenta diferentes perspectivas, dependiendo de los intereses de las aplicaciones, lo
que lleva a definir previamente un conjunto de parmetros de rendimiento. El
rendimiento de una determinada poltica de planificacin depender tambin del
comportamiento de los programas, por lo que la eleccin de una u otra poltica
deber tener en cuenta el tipo de procesos que ejecuta el sistema, fundamentalmente
si estn orientados a clculo o son interactivos. Algunas aplicaciones, como las de
tiempo real, imponen unos requisitos muy particulares en el uso del procesador, lo
que hace difcil su convivencia con las aplicaciones habituales en los sistemas de
propsito general (de tiempo compartido), conduciendo a polticas de planificacin
de tiempo real especficas.
Hoy en da son cada vez ms habituales las plataformas multiprocesador. Aunque la
poltica de planificacin es independiente, en general, del nmero de unidades de
proceso, los sistemas multiprocesador requieren polticas complementarias que
tienen como objetivo un compromiso entre el equilibro de la carga de los
procesadores, que conduce a una mejor utilizacin de estos, y el aprovechamiento de
la localidad de los procesos, que impulsa a mantener a cada proceso en un mismo
procesador durante su ejecucin.
El trabajo de planificacin reside en gran parte en una funcin scheduler del ncleo
del sistema operativo, pero otras partes del sistema pueden colaborar en esta tarea,
normalmente modificando los parmetros que utiliza el scheduler para decidir qu
proceso planificar. En general la planificacin puede repartirse en tres niveles
[STA05]:
En la llamada al sistema de ejecutar programa. Cuando se crea un proceso se puede decidir alguno de los criterios para su planificacin, como por ejemplo la
prioridad inicial y el quantum. A esta planificacin se la denomina de largo plazo.
En la funcin scheduler. Cada vez que un proceso abandona la CPU, toma la decisin de qu proceso planificar en funcin de la poltica de planificacin
establecida y del valor de los parmetros de planificacin. A esta planificacin se
la denomina de corto plazo.
Sistemas Operativos II Planificacin de procesos y procesadores 58
Otras partes del sistema operativo pueden intervenir en la planificacin, bien peridicamente (como en algunos sistemas UNIX que estudiaremos), bien de
forma indirecta, como es el caso del swapper de memoria1: al sacar un proceso de
memoria por problemas de espacio, hace que este no sea inmediatamente
planificable. A este tipo de planificacin se la denomina de medio plazo.
La Figura 3.1 muestra qu transiciones de estado estn involucradas en cada plazo de
la planificacin.
Figura 3.1. Plazos de la planificacin.
3.2 Evaluacin del rendimiento
La seleccin de una determinada poltica de planificacin de procesos se basa en un
conjunto de parmetros de rendimiento cuya importancia relativa depende de
algunas caractersticas particulares del sistema (por ejemplo, interactivo o batch,
existencia de procesos de tiempo real), lo que determina los compromisos que hay
que establecer en la seleccin de las poltica y mecanismos de la gestin de procesos.
En general, todo mecanismo introduce una sobrecoste en tiempo de ejecucin que
contrarresta parte de los beneficios obtenidos por la introduccin del mecanismo.
Los parmetros de rendimiento que utilizaremos como criterios para analizar la
calidad de una poltica de planificacin se basan en los definidos en el Captulo 1,
particularizados para su aplicacin al recurso procesador:
1 Se estudiar con la gestin de memoria.
Ejecutndose
Bloqueado en memoria
Preparado en memoria
Finalizado
Bloqueado fuera de memoria
Preparado fuera de memoria
Planificacin a corto plazo
Planificacin a medio plazo
Planificacin a largo plazo
Sistemas Operativos II Planificacin de procesos y procesadores 59
Eficiencia
Se refiere a la eficiencia temporal. Se expresa como el porcentaje de tiempo en
que la CPU se mantiene ocupada haciendo trabajo til. Por trabajo til se
entiende la ejecucin de cdigo de los programas (y de los servicios solicitados
por stos). Cabe esperar que un sistema multiprogramado sea mucho ms
eficiente que uno monoprogramado, ya que en stos la CPU est ociosa
cuando en programa espera por una operacin de E/S pudiendo haber
programas esperando a ejecutarse, por lo que ese tiempo contar como tiempo
perdido. Sin embargo, un sistema multiprogramado tiene que ejecutar las tareas
propias de la gestin de procesos (scheduler y del dispatcher), y stas deben
computarse tambin como tiempo perdido.
perdidotil
tiltil
ttt
t
T
tEf
+==
A veces resultar interesante referirse a la prdida de eficiencia como:
T
tEf
perdido
t =1
Productividad (throughput)
En lo que respecta a la gestin de procesos, mide el nmero de programas que
se ejecutan por unidad de tiempo. Incluye otras muchas caractersticas que
afectan el rendimiento del sistema, como por ejemplo la velocidad del
procesador, que habr que compensar si se comparan mquinas con distinto
hardware.
Tiempo de finalizacin
Considera el rendimiento del sistema desde el punto de vista del programa
que se ejecuta. Globalmente, se puede expresar como el tiempo desde que se
solicita la ejecucin de un programa hasta que sta finaliza. Es una medida
vlida para sistemas batch. Lo denotaremos tf
Tiempo de espera
Mide exclusivamente los tiempos totales de espera de un proceso en la cola de
preparados, tw, eliminando la dependencia de la duracin del propio
programa. Depende en cierta medida, sin embargo, del nmero de veces que
ste se bloquea.
Debe tenerse en cuenta la siguiente relacin entre tiempos: si tCPU es el tiempo
que pasa el proceso en la CPU y tbloq es el tiempo total que el proceso est
bloqueado, entonces
Sistemas Operativos II Planificacin de procesos y procesadores 60
tf = tw+ tCPU+ tbloq
Tasa de CPU
La relacin entre el tiempo de CPU del programa y su tiempo de espera
expresa la tasa de CPU, que indica el grado de disfrute del procesador que ha
tenido el proceso:
wCPU
CPU
tt
tTasaCPU
+=
Latencia (tiempo de respuesta)
Mide el tiempo desde que un proceso entra en el estado de preparado (porque
se crea o porque se desbloquea) hasta que entra en ejecucin. Slo tiene
sentido en sistemas interactivos. Lo denotaremos tr.
Equidad (predecibilidad)
Los parmetros anteriores (en particular el tiempo de terminacin, la latencia y
el tiempo de espera) se miden con parmetros estadsticos. La media parece
ser el parmetro ms indicativo. Sin embargo, otros parmetros de la
distribucin estadstica de una medida del rendimiento, como por ejemplo la
varianza de la latencia, son de gran inters. Una varianza pequea en la
latencia es indicadora de un comportamiento homogneo, lo que es deseable
por dos motivos: por una parte el comportamiento de los programas es ms
predecible; por otra parte indica un comportamiento ms ecunime y menos
discriminatorio. En cambio, varianzas muy grande