Está en la página 1de 48

Planificacin de CPU

Mariano Gmez Plaza

Concepto de planificacin
Programa 1
En ejecucin

Sistema Operativo
Salvar registros

Programa 2

Inactivo

Interrupcin o llamada al sistema

Restaurar registros
Inactivo En ejecucin

Salvar registros
Interrupcin o llamada al sistema En ejecucin

Restaurar registros

Inactivo

2010-2011 Mariano Gmez Plaza

Planificacin CPU 2

Planificacin


La ejecucin de un trabajo se compone de rfagas de CPU y E/S Objetivos perseguidos en la planificacin de CPU:  Equidad  Eficiencia  Bajo tiempo de respuesta  Rendimiento alto  Minimizar el tiempo de espera Todos estos objetivos no se pueden conseguir simultneamente
Planificacin CPU 3

2010-2011 Mariano Gmez Plaza

Colas de procesos
Cola de preparados Cabeza

PCB 12

PCB 30

Disco

Cabeza

PCB 24
Impresora Cabeza

CD-ROM

Cabeza

2010-2011 Mariano Gmez Plaza

Planificacin CPU 4

Planificadores (schedulers)


Tipos de planificadores de procesador:  Planificador a largo plazo




Controla el grado de multiprogramacin Selecciona entre los trabajos cargados en memoria y que estn preparados para ejecutarse cual har uso del procesador El planificador a corto plazo debe ser muy rpido ya que entra en juego con una frecuencia muy alta Carga y descarga trabajos desde el disco a la memoria y de la memoria al disco en funcin del grado de sobrecarga del sistema.
Planificacin CPU 5

Planificador a corto plazo




Planificador a medio plazo




2010-2011 Mariano Gmez Plaza

Relacin entre los planificadores

Cola de preparados

CPU

E/S

Cola de E/S

E/S

Cola de E/S

E/S
2010-2011 Mariano Gmez Plaza

Cola de E/S

Planificacin CPU 6

Criterios de planificacin


Utilizacin del procesador  Maximizar el rendimiento del procesador Rendimiento (Throughput)  Trabajos completados por unidad de tiempo Tiempo de estancia (Turnaround time)  Tiempo transcurrido desde que se lanza hasta que finaliza Tiempo de espera  Por operaciones de E/S o por la planificacin. Tiempo de respuesta  Importante en aplicaciones interactivas o de TR
Planificacin CPU 7

2010-2011 Mariano Gmez Plaza

Planificacin FCFS
 

 

Primero en entrar, primero en salir Se lleva a cabo manejando la cola de procesos preparados como una cola FIFO Es el algoritmo ms sencillo de codificar Caractersticas y prestaciones:  Depende fuertemente de los tipos de trabajo y del instante en que llegan  Limitados por CPU: mucha CPU y poca E/S  Limitados por E/S: mucha E/S y poca CPU

2010-2011 Mariano Gmez Plaza

Planificacin CPU 8

Eficiencia FIFO


Los tiempos de estancia y respuesta varan fuertemente de un momento a otro


Trabajo 1 Trabajo 2 Trabajo 3

20

24

32

Trabajo 2

Trabajo 3

Trabajo 1

12

32

Los tiempos medios de retorno son menores en el segundo caso que en el primero
Planificacin CPU 9

2010-2011 Mariano Gmez Plaza

Shortest Job First (SJF)




Asocia de forma dinmica a cada proceso la longitud de su siguiente rfaga de CPU Asigna la CPU al trabajo con la rfaga ms pequea Este algoritmo es ptimo para reducir los tiempos medios de espera Su dificultad es conocer cules van a ser las duraciones de las prximas rfagas de CPU de cada proceso Cmo se estima la duracin de la siguiente rfaga de CPU?
Planificacin CPU 10

2010-2011 Mariano Gmez Plaza

Mtodo de prediccin


La siguiente rfaga de CPU se predice como una media exponencial de las longitudes medias en anteriores rfagas Sea:
 tn:  

longitud de la n-sima rfaga de CPU Xn: valor predicho para la n-sima rfaga de CPU E : parmetro de ajuste

Xn+1 = E tn + (1-E) Xn
 tn: 

contiene la informacin ms reciente Xn: contiene la historia pasada

2010-2011 Mariano Gmez Plaza

Planificacin CPU 11

Algoritmos de prioridad


Se asocia una prioridad a cada proceso y la CPU se asigna al trabajo con la prioridad ms alta Las prioridades pueden definirse de dos formas:  Internamente  Externamente Problema: posible inanicin (starvation) de determinadas solicitudes

2010-2011 Mariano Gmez Plaza

Planificacin CPU 12

Algoritmos con requisa




En los algoritmos anteriores, una vez que la CPU ha sido asignada a un proceso, ste la mantiene hasta que pide una E/S o termina Cmo hacer que la CPU sea retirada a un proceso una vez asignada? Prioridad con requisa (preemption): SJF
Llega el Trabajo 2

Trabajo 1

Trabajo 2

Trabajo 1

Trabajo 3

12

23

2010-2011 Mariano Gmez Plaza

Planificacin CPU 13

Algoritmos round robin


 

Usados en sistemas de tiempo compartido La CPU se asigna a cada proceso preparado durante un cuanto de tiempo q La cola de procesos preparados es FIFO
 

Si la rfaga de CPU > q Interrupcin TIME-OUT Si la rfaga de CPU < q Liberacin de CPU q p g round-robin degenera en FCFS q p 0 CPU/n

Prestaciones: dependen fuertemente de q


 

2010-2011 Mariano Gmez Plaza

Planificacin CPU 14

Algoritmos round robin




Si q es muy pequeo se pierde mucho tiempo en el cambio de contexto. Disminuye la eficacia del procesador Si q es grande, los tiempos de respuesta aumentan Regla emprica: el 80% de las rfagas de CPU deben ser menores que el cuanto Problema: slo existe una cola de trabajos preparados, no distingo entre tipos de trabajos

2010-2011 Mariano Gmez Plaza

Planificacin CPU 15

Colas multinivel


Dividen la cola de Prioridad alta preparados en colas separadas en funcin del tipo de trabajo Cada cola tiene su propio algoritmo de planificacin Debe existir otro algoritmo para elegir la cola en cada momento
Prioridad baja

Tareas del sistema

Tareas interactivas

Tareas de edicin

Tareas batch

2010-2011 Mariano Gmez Plaza

Planificacin CPU 16

Colas multinivel realimentadas




Los trabajos se mueven. Consideraciones:


  

El algoritmo de planificacin de cada cola Mtodos para ascender y descender Dnde poner inicialmente a los trabajos

Quantum = 10

Quantum = 20

FCFS

2010-2011 Mariano Gmez Plaza

Planificacin CPU 17

Algoritmo hbrido de UNIX 4.2.




 

Prioridades dinmicas: -20 (alta) +20 (baja) Cada 200 ms un reloj hardware interrumpe al procesador y se carga un nuevo proceso Cada segundo se recalcula la prioridad de todos los procesos preparados Se elige al proceso con la prioridad ms alta Ajuste de prioridad: beneficia a los procesos que han usado poco el procesador en el pasado reciente

2010-2011 Mariano Gmez Plaza

Planificacin CPU 18

Algoritmo hbrido de UNIX 4.2.




Pasado reciente
Ventana=5xN

Instante actual

N: valor medio del n de procesos ejecutables en el ltimo minuto Consecuencias del algoritmo: se penaliza a los procesos intensivos en CPU durante los periodos de fuerte carga y se olvida de ellos cuando est ligeramente cargado
Planificacin CPU 19

2010-2011 Mariano Gmez Plaza

Algoritmo hbrido de UNIX 4.2.




Los procesos limitados por E/S corren muy rpidamente despus de terminar una operacin de E/S Los procesos limitados por CPU no sufren inanicin corriendo en rfagas de 1 segundo Los cambios en el comportamiento de un proceso se compensan automticamente

2010-2011 Mariano Gmez Plaza

Planificacin CPU 20

Algoritmo de VAX/VMS
 

Es un algoritmo con prioridades (32 niveles) Prio. bajas (0-15): procesos de usuario  Tienen una prioridad base que es fija  Offset: hasta 6 niveles sobre la base  A igualdad de prioridad: RR  Se beneficia a las tareas limitadas por E/S Prio. altas (16-31): procesos de tiempo real  Su prioridad no suele cambiar  Planificacin con prioridades y desalojo

2010-2011 Mariano Gmez Plaza

Planificacin CPU 21

Algoritmo utilizado en Mach


   

  

Vlido en sistemas mono y multiprocesador Es vlido para sistemas UMA y NUMA La planificacin se realiza a nivel de hilos Los cambios de contexto estn optimizados si los hilos pertenecen a la misma tarea Quantum entre 10 y 100 milisegundos Prioridades dinmicas con 32 colas Los nmeros bajos corresponden a prioridades altas y viceversa

2010-2011 Mariano Gmez Plaza

Planificacin CPU 22

Cola de preparados
Cola 0 Cola 1 Cola 2 ... Cola 31 Cerrojo Contador Marca
Libre 3 2

Hilo

Hilo

Hilo

 

Cada procesador consulta su cola local Si no hay procesos, se consulta la global


Planificacin CPU 23

2010-2011 Mariano Gmez Plaza

Clculo de prioridades
   

 

Prioridad -> base + offset Base -> Prio. usuario < Prio. sistema Offset=uso reciente de CPU x factor de carga Mach utiliza una tcnica de envejecimiento denominada factor de sobrecarga (FS) basada en marcas de tiempo FS = n de hilos / n de procesadores Este factor se calcula como una media exponencial para evitar variaciones bruscas

2010-2011 Mariano Gmez Plaza

Planificacin CPU 24

Algoritmo utilizado en W2K




 

Pensado para ser muy sensible a las necesidades de un nico usuario en un entorno interactivo o en el papel de servidor Algoritmo apropiativo con prioridades (base + offset) WNT soporta 32 niveles de prioridad  Prioridades 16-31 -> tareas de tiempo real  Prioridades 1-15 -> tareas ordinarias  La prioridad 0 es para Zero page thread  Idle aparece con prioridad 0, pero se ejecuta con una prioridad menor  La prio. de un hilo ordinario no puede ser > 15
Planificacin CPU 25

2010-2011 Mariano Gmez Plaza

Algoritmo utilizado en W2K




   

Las colas son colas doblemente enlazadas de tareas Ready Las colas son comunes a todos los procesadores Se planifican hilos no procesos Los hilos del mismo nivel se ejecutan en RR En sistemas MP se ejecutan hilos simultneamente  No se garantiza la ejecucin de los n hilos ms prioritarios si hay n procesadores  Se intenta mantener cada hilo en su procesador  Un procesador puede interrumpir a otro para que planifique una tarea
Planificacin CPU 26

2010-2011 Mariano Gmez Plaza

Planificacin de hilos en W2K


 

No existe un planificador central!!! Las rutinas de planificacin se invocan cuando se produce un evento que cambia el estado Ready de un hilo Evento que provocan la activacin del scheduler  Interrupcin del temporizador (fin del quanto)  Interrupcin del temporizador (timed wait)  Interrupcin HW (finalizacin de E/S)  Operacin V en un Waitable object  Operacin P en uno o varios Dispatch objects
Planificacin CPU 27

2010-2011 Mariano Gmez Plaza

Escenarios de planificacin


Apropiacin  Un hilo con mayor prioridad que el activo pasa al estado Ready  El hilo de menor prioridad es expulsado  El hilo requisado pasa a la cabeza de la cola Ready Conmutacin voluntaria  Bloqueo en un dispatch object  Finalizacin  Disminucin de la prioridad de modo explcito
Planificacin CPU 28

2010-2011 Mariano Gmez Plaza

Escenarios de planificacin


Finalizacin de quantum  Se decrementa la prioridad del hilo a no ser que ya se encuentre en la prioridad base  El hilo se introduce al final de la cola correspondiente a su prioridad  El hilo puede seguir ejecutndose si no hay tareas de igual o mayor prioridad listas para ejecutarse

2010-2011 Mariano Gmez Plaza

Planificacin CPU 29

Apropiacin


La apropiacin es estrictamente dirigida por eventos  No se espera por el siguiente pulso de reloj  No se garantiza un periodo mnimo de ejecucin  Los hilos en modo ncleo pueden ser tambin requisados (a no ser que IRQL >= 2)
Ready Running

Desde el estado de espera


2010-2011 Mariano Gmez Plaza

Planificacin CPU 30

Lista despus de una espera




Si el hilo que ha estado esperando no tiene una prioridad mayor que el hilo activo, es insertada al final de la cola que le corresponda

Desde el estado de espera

Ready

Running

2010-2011 Mariano Gmez Plaza

Planificacin CPU 31

Conmutacin voluntaria
 

Cuando la tarea activa abandona la CPU Se ejecuta la tarea lista que se encuentre a la cabeza de la cola de prioridad ms alta
Ready Running

Al estado de espera

2010-2011 Mariano Gmez Plaza

Planificacin CPU 32

Finalizacin de quantum


Cuando la tarea activa finaliza su quantum, se coloca al final de la cola de listos Se aplica tanto a tareas de tiempo real como ordinarias, tanto en modo supervisor como usuario Si no existen tareas en la cola, puede continuar su ejecucin durante otro q Ready Running Boosting???

2010-2011 Mariano Gmez Plaza

Planificacin CPU 33

Quantum


 

El quantum estndar es de 2 ticks (12 para NT Server) El clock tick es de 10 ms, 15 ms en algunos Pentium MP El quantum lgico es 6 (36 en NT Server) El quantum se decrementa en 3 cada clock tick  Por tanto, el quantum es de 2 ticks  Despus de una espera el quantum slo se decrementa en 1

2010-2011 Mariano Gmez Plaza

Planificacin CPU 34

Ensanchamiento del quantum


 

Aplicable a la tarea que se ejecuta en primer plano En lugar de aumentar su prioridad, se le aumenta el quantum Posibles valores:  Maximum = 6 ticks Ready Running  Middle = 4 ticks  None = 2 ticks

Este ensanchamiento no se aplica a NT Server


Planificacin CPU 35

2010-2011 Mariano Gmez Plaza

Ajuste de prioridad en W2K




Boost y Decay se aplican slo a hilos con prioridades comprendidas entre 1 y 15 Cundo se aplica?  Fin de E/S  Fin de espera por eventos o semforos  La tarea de primer plano finaliza una espera  Tareas GUI despiertan como consecuencia de una window input  Para evitar CPU starvation No aplicable a tareas de TR
Planificacin CPU 36

2010-2011 Mariano Gmez Plaza

Boosting


Despus de una E/S: especificado por el device driver  Valores de boost:


   

1 disco, CD-ROM, puerto paralelo y vdeo 2 puerto serie, red, tubera con nombre 6 teclado y ratn 8 sonido

Despus de una espera por evento o semforo  Boost = 1

2010-2011 Mariano Gmez Plaza

Planificacin CPU 37

Boosting


Despus de una espera en un dispatcher object por parte de la tarea en primer plano  Boost = 2 Comportamiento de boost  Se aplica a la prioridad base  Nunca se debe superar el mximo de 15  Si despus del boost se obtiene un quantum
 

Se cae un nivel y se asigna otro quantum As hasta llegar a la prioridad base

2010-2011 Mariano Gmez Plaza

Planificacin CPU 38

Decay cuando finaliza el quantum


 

Se cae a la siguiente cola Nunca por debajo de la prioridad base


Ready Running

2010-2011 Mariano Gmez Plaza

Planificacin CPU 39

Boost y Decay
Decay

Prioridad
Boost

Apropiacin

Prioridad base

Activo

Espera

Activo

Ready

Activo

Tiempo

2010-2011 Mariano Gmez Plaza

Planificacin CPU 40

Boost para hilos GUI




Cuando un hilo GUI se despierta como consecuencia de un window input se le asigna un boost = 2 Este boost se suma a la prioridad actual, no a la prioridad base Objetivo: mejorar el tiempo de respuesta de las tareas interactivas

2010-2011 Mariano Gmez Plaza

Planificacin CPU 41

Cmo evitar la inanicin?




El Balance Set Manager busca esos hilos  Es un hilo con prioridad 16  Se despierta cada segundo y analiza la cola de preparados  Busca hilos que lleven preparados 300 ticks sin haberse ejecutado  Trata de evitar la inversin de prioridades  En cada pasada busca 16 hilos listos  Sube la prioridad de los hilos (boosting) hasta un valor de 10
Planificacin CPU 42

2010-2011 Mariano Gmez Plaza

Algoritmo UNIX SVR3 y 4.3 BSD


 

   

Un reloj HW interrumpe cada 10 ms La rutina de tratamiento del reloj tick(), tiene una de las prioridades ms altas Slo la supera la interrupcin de fallo de alimentacin Prioridades comprendidas entre 0 y 127 Ncleo: entre 0 y 49 Procesos de usuario: entre 50 y 127 El ncleo es ininterrumpible

2010-2011 Mariano Gmez Plaza

Planificacin CPU 43

Rutina tick()
  

  

Recarga el reloj HW si es necesario Actualiza el uso de CPU del proceso activo Clculo de prioridades y manejo de finalizacin del quantum Actualiza la fecha Se manejan los callouts Se despierta al swapper y pagedaemon cuando es necesario Se manejan las alarmas

2010-2011 Mariano Gmez Plaza

Planificacin CPU 44

Estructura proc
p_pri Prioridad actual p_usrpri Prioridad en modo usuario p_cpu Uso reciente de CPU p_nice Definido por el usuario (oscila entre 0 y 39, valor por defecto 20)  Cada tick se incrementa el valor de p_cpu para el proceso activo hasta un mximo de 127. Inicialmente vale 0  Cada segundo se recalculan las prioridades (schedcpu() va callout)

2010-2011 Mariano Gmez Plaza

Planificacin CPU 45

Reclculo de prioridades


 

El campo p_cpu se reduce por un factor denominado de decadencia (decay) En SVR3 decay=1/2 En 4.3 BSD decay=(2*car_media)/(2*car_media+1) car_media es el nmero medio de procesos activos en el ltimo segundo Frmula:
 

p_usrpri=PUSER+(p_cpu/4)+(2*p_nice) PUSER=50

2010-2011 Mariano Gmez Plaza

Planificacin CPU 46

Estructuras de datos
whichqs 0 0 1 0 1 qs Cola 0 Cola 1 Cola 2 Cola 3 Cola 4 Prio. 0-3 Prio. 4-7 Prio. 8-11 Prio. 12-15 Prio. 16-19 ... Cola 31 Prio. 124-127 ...

Proc

Proc

Proc

Proc

Proc

 

En la misma cola se emplea RR Cada 100 ms se invoca roundrobin()


Planificacin CPU 47

2010-2011 Mariano Gmez Plaza

Consecuencias del algoritmo




   

Si la carga es alta es ineficiente recalcular todas las prioridades cada segundo No existe la posibilidad de asignar CPU a grupos de procesos No existen plazos de respuesta acotados Las aplicaciones no tienen control sobre su prioridad El mecanismo nice es simple e inadecuado Se puede producir inversin de prioridades

2010-2011 Mariano Gmez Plaza

Planificacin CPU 48

También podría gustarte