Está en la página 1de 17

Planificacin de uso del procesador

Contenidos

(T5)

Concepto de planificacin Estados de un proceso Planificador / Dispatcher Planificadores Algoritmos de planificacin Criterios de evaluacin Planificacin FIFO Planificacin SJF

Planificacin en VAX/VMS Planificacin en UNIX 4.4 BSD Estructuras de datos Clculo de prioridades Planificacin en W2K

Quantum
Escenarios de planificacin Ajuste de prioridad en W2K

Mtodo de prediccin

Planificacin prioridades Planificacin Planificacin Planificacin multinivel

con con requisa round-robin con colas

Colas multinivel realimentadas


Planificacin del procesador
2

Concepto de planificacin (i)

La ejecucin de un trabajo se compone de secuencias de procesador y de espera Objetivo de la planificacin:


Incrementar el rendimiento global del sistema Maximizar el uso de la CPU

Ejemplos de planificacin:

Multitarea cooperativa: Windows 3.x Multitarea expulsiva o apropiativa: Windows 2k

Planificacin del procesador

Concepto de planificacin (ii)


Estados de un proceso

Cola de listos

CPU

E/S

Cola de E/S

E/S

Cola de E/S

E/S

Cola de E/S

Planificacin del procesador

Concepto de planificacin (iii)


Planificador / Dispatcher

Planificador o scheduler: Determina en quin es el siguiente proceso en hacer uso de la CPU Dispatcher o repartidor: Conmuta el procesador de un trabajo a otro

Cambio de contexto

Ejecuta el proceso durante un momento Salva el estado del proceso en el BCP


CP

Flags de estado
Registros de propsito general Registros de operaciones en coma flotante Informacin relativa a la memoria: punteros a las tablas de pginas, punteros a las tablas de segmentos, TLB, etc.

Restaura el estado de otro proceso Transfiere el control al nuevo proceso


Planificacin del procesador
5

Concepto de planificacin (iv)


Proceso 1
En ejecucin
Interrupcin o llamada al sistema

Sistema operativo
Dispatcher Dispatcher

Proceso 2

Planificador

Listo

Listo
Dispatcher Dispatcher

En ejecucin
Interrupcin o llamada al sistema

Planificador

En ejecucin

Listo

Planificador polticas Dispatcher mecanismos

Planificacin del procesador

Concepto de planificacin (v)


Planificadores

Planificador a largo plazo


Carga del proceso en memoria Controla el grado de multiprogramacin Selecciona entre los trabajos cargados en memoria y que estn listos para ejecutarse, cul har uso del procesador Debe ser muy rpido ya que entra en juego con una frecuencia muy alta Carga y descarga trabajos (swap in-out) desde el disco a la memoria y de la memoria al disco en funcin del grado de sobrecarga del sistema

Planificador a corto plazo

Planificador a medio plazo

Planificacin del procesador

Algoritmos de planificacin (i)


Criterios de evaluacin

Grado de utilizacin del procesador Rendimiento (Throughput)

Trabajos completados por unidad de tiempo Tiempo transcurrido desde que se lanza hasta que finaliza Tiempo que est un proceso en una cola (no ejecucin) Importante en aplicaciones interactivas o de tiempo real (hasta la 1 respuesta del sistema) Recursos que emplea el planificador: tiempo de procesador y memoria
Planificacin del procesador
8

Tiempo de estancia (Turnaround time)

Tiempo de espera

Tiempo de respuesta

Grado de sobrecarga

Algoritmos de planificacin (ii)

Planificacin Planificacin Planificacin Planificacin Planificacin Planificacin

FIFO primero el ms corto por prioridades

round robin
con colas multinivel con colas multinivel realimentadas

Planificacin del procesador

Planificacin FIFO (i)

FIFO: First in first out primero en entrar, primero en salir Gestiona la cola de procesos listos como una cola FIFO Ventaja:

Es el algoritmo ms sencillo de codificar Un proceso puede monopolizar la CPU efecto convoy Depende fuertemente de los tipos de trabajo y del instante en que llegan T1: 12 u.t., T2: 3 u.t., T3: 6 u.t. T1: 100 u.t., T2: 1 u.t., T3: 1 u.t., T4: 1 u.t.
Planificacin del procesador
10

Inconveniente:

Ejemplo:

Planificacin FIFO (ii)


Ejemplo FIFO

Caso 1:
Trabajo 1 0 Trabajo 2 12 15 Trabajo 3 21

Caso 2:
Trabajo 2 0 3 Trabajo 3 9 Trabajo 1 21

Los tiempos medios de respuesta varan dependiendo de cmo se encolen los trabajos

Caso 1: t Caso 2: t

= 16 respuesta = 11
respuesta

Planificacin del procesador

11

Planificacin FIFO (iii)


Ejemplo FIFO

Caso 1: Efecto convoy


Trabajo 1 0 T2 T3 T4 100 101 102 103

Caso 2:
T2 T3 T4 0 1 2 3 Trabajo 1 103

Los tiempos medios de respuesta varan dependiendo de cmo se encolen los trabajos

Caso 1: t Caso 2: t

= 101,5 u.t. respuesta = 27,25 u.t.


respuesta

Planificacin del procesador

12

Planificacin SJF (i)


SJF: shortest job first primero el ms corto Asigna la CPU al trabajo con la siguiente rfaga ms pequea Calcula, de forma dinmica, la longitud de la siguiente rfaga de CPU para cada proceso Ventaja:

Reduce los tiempos medios de respuesta Conocer cules van a ser las duraciones de las prximas rfagas de CPU de cada proceso Produce inanicin en procesos con rfagas largas

Inconveniente:

Planificacin del procesador

13

Planificacin SJF (ii)


Mtodo de prediccin

La siguiente rfaga de CPU se predice como una media exponencial de las longitudes medias en anteriores rfagas n+1 = tn + (1-) n Sea:

tn: longitud de la n-sima rfaga de CPU n: valor predicho para la n-sima rfaga de CPU : parmetro de ajuste tn: contiene la informacin ms reciente n: contiene la historia pasada T1: 3 u.t., T2: 12 u.t., T3: 7 u.t., T4: 5 u.t. t respuesta = 13,25 u.t.
Planificacin del procesador
14

Ejemplo:

Planificacin con prioridades


Se asigna la CPU al trabajo con la prioridad ms alta Las prioridades pueden definirse:

Internamente: Segn los requisitos del SO

Tiempo de CPU, memoria usada, recursos empleados, etc. Tipo de usuario, tipo de aplicacin, etc.

Externamente: Requisitos ajenos al SO

Estticas: No vara durante la vida del proceso Dinmicas: Vara a lo largo de la vida del proceso, dependiendo de las decisiones del planificador Produce inanicin en procesos de baja prioridad Solucin: Utilizar envejecimiento
Planificacin del procesador
15

Inconveniente:

Planificacin con requisa

En los algoritmos anteriores, un proceso usa la CPU hasta pedir una E/S o terminar monopolizar la CPU Solucin: Un proceso puede desalojar al que usa la CPU Algoritmos con requisa (preemption):

SJF con requisa Prioridades con requisa T1: t = 0, 8 u.t. T2: t = 3, 4 u.t. T3: t = 2, 11 u.t.
Trabajo 1 7 12
Planificacin del procesador

Ejemplo: SJF con requisa


Trabajo 1 Trabajo 2 0 3

Trabajo 3 23
16

Planificacin round-robin (i)


Planificacin por turno rotatorio La CPU se asigna a cada proceso listo durante un cuanto de tiempo q

Evita la monopolizacin de uso de CPU En sistemas de tiempo compartido

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 Prestaciones: dependen fuertemente de q q round-robin degenera en FCFS q 0 CPU/n n es el nmero de procesos listos
Planificacin del procesador
17

Planificacin round-robin (ii)

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 Slo existe una cola de trabajos preparados, no distingue entre tipos de trabajos

Problema:

Planificacin del procesador

18

Planificacin con colas multinivel (i)


Objetivo: Diferenciar entre distintos tipos de trabajos Existen 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 alta Tareas del sistema Tareas interactivas Tareas de edicin Prioridad baja Tareas batch
Planificacin del procesador
19

Planificacin con colas multinivel (ii)


Colas multinivel realimentadas

Tcnicas adaptativas

Los trabajos cambian de prioridad y de cola El algoritmo de planificacin de cada cola Mtodos para ascender y descender entre colas Dnde poner inicialmente a los trabajos
+
Tareas de TR Quantum = 10 Quantum = 20 FCFS
Planificacin del procesador
20

Consideraciones:

Prioridad

10

Planificacin en VAX/VMS (i)

Caractersticas:

Entorno multiusuario Tiempo compartido Aplicaciones interactivas Planificacin de procesos

Planificacin con prioridades [0 31] y desalojo Procesos de usuario [0 15] : Prioridad base fija + offset

Offset: hasta 6 niveles sobre la prioridad base


Se beneficia a las tareas limitadas por E/S

Procesos de tiempo real [16 31] :

Su prioridad no suele cambiar


Planificacin del procesador
21

Planificacin en VAX/VMS (ii)


+
31

...
16 15

Tareas de tiempo real

...

Tareas ordinarias

Cont. W2K
Planificacin del procesador
22

11

Planificacin en UNIX 4.4 BSD (i)

Caractersticas:

Entorno multiusuario Tiempo compartido Aplicaciones interactivas Planificacin de procesos

Planificacin con prioridades dinmicas [127 0] y desalojo


Procesos en modo supervisor [49 0] Procesos en modo usuario [127 50] Cola Prioridad / 4 q = 0,1 s
Planificacin del procesador
23

Existen 32 colas

Planificacin en UNIX 4.4 BSD (ii)


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 ... Indica qu cola contiene procesos listos

Planificacin del procesador

24

12

Planificacin en UNIX 4.4 BSD (iii)


Estructuras de datos

Estructura proc:

p_usrpri p_estcpu p_nice p_slptime

Prioridad en modo usuario Tiempo de procesador acumulado Definido por el usuario [-20 +20] Tiempo bloqueado por algn evento

1 tick = 10 ms. Interrupciones de un reloj hardware

Planificacin del procesador

25

Planificacin en UNIX 4.4 BSD (iv)


Clculo de prioridades

hardclock()

Incrementa el valor de p_estcpu del proceso activo hasta un mximo de 127 cada 1 tick Recalcula la prioridad de cada proceso cada 4 ticks: p_usrpri = PUSER + (p_estcpu/4) + 2p_nice Recalcula las prioridades cada 1 s: p_estcpu = decay p_estcpu + p_nice (decrementa p_estcpu) donde: decay = 2 carga / (2 carga) + 1 p_estcpu = decayp_slptime p_estcpu

setpriority()

schedcpu()

roundrobin() conmuta el procesador cada 100 ms


Planificacin del procesador
26

13

Planificacin en W2K (i)

Caractersticas:

Entorno monousuario Tiempo compartido Aplicaciones interactivas o como servidor Planificacin de hilos Tareas de tiempo real [16 31] Tareas ordinarias [1 15] Prioridades dinmicas: base + offset Prioridad 0: Zero page thread

Planificacin apropiativa con prioridades [031]


Proceso inactivo del sistema


Colas VAX/VMS
Planificacin del procesador
27

Planificacin en W2K (ii)

Quantum

1 tick:

q=q3 10 ms en sistemas monoprocesador i80x86 15 ms en sistemas multiprocesador i80x86 6 unidades lgicas 2 ticks 20 ms Interactividad, tiempo de respuesta ms bajo 36 unidades lgicas 12 ticks 120 ms Mejor rendimiento W2K professional Valores: 6, 4 2 ticks Mejora tiempo de respuesta Aplicable a la tarea que se ejecuta en 1er. plano
Listo Ejecucin

W2K Professional:

W2K Server:

Ensanchamiento de q:

Planificacin del procesador

28

14

Planificacin en W2K (iii)

El planificador se activa, cuando un hilo:

Abandona el estado de ejecucin porque acaba su q, pasa al estado de espera o finaliza su ejecucin Pasa al estado de listo porque acaba de ser creado o finaliza una operacin de E/S Cambia de prioridad de forma implcita definida por el SO o de forma explcita definida pro el programador Cambia la afinidad de procesador
Terminado Ejecucin Espera Transicin Listo
Planificacin del procesador
29

Standby

Planificacin en W2K (iv)


Escenarios de planificacin

Conmutacin voluntaria

El hilo en ejecucin pasa al estado de espera Se elige el 1er. trabajo de la cola de mayor prioridad
Listo Ejecucin

Finalizacin del quantum

Espera

Si la prioridad del hilo es la prioridad base

Si ha habido aumento de prioridad (no en tareas de TR)

Planificacin del procesador

30

15

Planificacin en W2K (v)


Escenarios de planificacin

Requisa

Si pasa al estado de listo un hilo de mayor prioridad que el que est en ejecucin Existe requisa para hilos en modo ncleo, si IRLQ <=2

Listo despus de una espera

Si pasa al estado de listo un hilo de menor prioridad que el que est en ejecucin

Planificacin del procesador

31

Planificacin en W2K (vi)


Ajuste de prioridad en W2K

Beneficia a tareas interactivas, frente a las de uso intensivo de CPU Priority boosting y priority decay:

Se aplica a la prioridad base de hilos ordinarios prioridad base <= prioridad obtenida <= 15

Decay:

Si un hilo agota su quantum -1

Planificacin del procesador

32

16

Planificacin en W2K (vii)


Ajuste de prioridad en W2K

Boost:

Fin de E/S, especificado por el device driver


Disco, CD-ROM, tarjeta grfica, pto. paralelo +1 Red, pto. serie, tubera con nombre +2 Teclado y ratn +6 Tarjeta sonido +8

Fin de espera por eventos o semforos: +1 La tarea de primer plano finaliza una espera: +2 Se despierta una tareas GUI: +2

Sobre la prioridad actual Evita inanicin de hasta 16 hilos con ms de 300 ticks sin ejecutarse Prioridad 16 boost +10 y 2 * quantum
Planificacin del procesador
33

Cada 1s. se activa Balance Set Manager

Planificacin en W2K (viii)


Ajuste de prioridad en W2K
Prioridad

Decay

Boost

Apropiacin

Prioridad base Ejecucin Espera Ejecucin Listo Ejecucin

Tiempo
Planificacin del procesador
34

17

También podría gustarte