planificacion de procesos

7
1 Módulo 5: Pl ifi d Sistemas Operativos JRA©2007 Sistemas Operativos – Planificación de Procesos 1 Planificacn de Procesos Modulo 5: Planificación de CPU Conceptos Básicos Criterios de Planificación Algoritmos de Planificación Planificación de Múltiples Procesadores JRA©2007 Sistemas Operativos – Planificación de Procesos 2 Planificación de Múltiples Procesadores Planificación en Tiempo Real Evaluación de Algoritmos Conceptos Básicos Máxima utilización de CPU obtenida con multiprogramación Ciclo CPU–ráfagas de E/S – La ejecución de procesos consiste de ciclos de ejecución de CPU y esperas en E/S. JRA©2007 Sistemas Operativos – Planificación de Procesos 3 Distribución de ráfagas de CPU Secuencia Alternante de Ráfagas de CPU y E/S JRA©2007 Sistemas Operativos – Planificación de Procesos 4 Histograma de Tiempos de Ráfagas de CPU JRA©2007 Sistemas Operativos – Planificación de Procesos 5 Planificador de CPU Selecciona entre los procesos en memoria que están listos para ejecutar, y aloca la CPU a uno de ellos. La decisión de planificar la CPU puede tener lugar cuando un proceso: 1. Conmuta de ejecutando a estado de espera. JRA©2007 Sistemas Operativos – Planificación de Procesos 6 2. Conmuta de ejecutando a estado de listo. 3. Conmuta de espera a listo. 4. Termina. La planificación de 1 y 4 es no apropiativa. Las otras planificaciones son apropiativas.

Upload: bfcorralesx

Post on 20-Jul-2015

21.057 views

Category:

Business


0 download

TRANSCRIPT

Page 1: Planificacion de procesos

1

Módulo 5:

Pl ifi ió d

Sistemas Operativos

JRA©2007 Sistemas Operativos – Planificación de Procesos 1

Planificación de Procesos

Modulo 5: Planificación de CPU

• Conceptos Básicos

• Criterios de Planificación

• Algoritmos de Planificación

• Planificación de Múltiples Procesadores

JRA©2007 Sistemas Operativos – Planificación de Procesos 2

Planificación de Múltiples Procesadores

• Planificación en Tiempo Real

• Evaluación de Algoritmos

Conceptos Básicos

• Máxima utilización de CPU obtenida con multiprogramación

• Ciclo CPU–ráfagas de E/S – La ejecución de procesos consiste de ciclos de ejecución de CPU y esperas en E/S.

JRA©2007 Sistemas Operativos – Planificación de Procesos 3

• Distribución de ráfagas de CPU

Secuencia Alternante de Ráfagas de CPU y E/S

JRA©2007 Sistemas Operativos – Planificación de Procesos 4

Histograma de Tiempos de Ráfagas de CPU

JRA©2007 Sistemas Operativos – Planificación de Procesos 5

Planificador de CPU

• Selecciona entre los procesos en memoria que están listos para ejecutar, y aloca la CPU a uno de ellos.

• La decisión de planificar la CPU puede tener lugar cuando un proceso:

1.Conmuta de ejecutando a estado de espera.

JRA©2007 Sistemas Operativos – Planificación de Procesos 6

2.Conmuta de ejecutando a estado de listo.3.Conmuta de espera a listo.4.Termina.

• La planificación de 1 y 4 es no apropiativa.

• Las otras planificaciones son apropiativas.

Page 2: Planificacion de procesos

2

Despachador

• El módulo despachador pasa el control de la CPU al proceso seleccionado por el planificador de corto término; esto implica:

– cambio de contexto– conmutación a modo usuario

lt l di ió i d l d

JRA©2007 Sistemas Operativos – Planificación de Procesos 7

– salta a la dirección apropiada en el programa de usuario para reiniciarlo

• Latencia de despacho – tiempo que toma al despachador para detener un proceso e iniciar otro.

Criterios de Planificación

• Utilización de CPU – mantener la CPU tan ocupada como sea posible

• Procesamiento total (Throughput) – número de procesos que completan sus ejecución por unidad de tiempo.

JRA©2007 Sistemas Operativos – Planificación de Procesos 8

• Tiempo de retorno – cantidad de tiempo para ejecutar un determinado proceso.

• Tiempo de Espera – cantidad de tiempo que un proceso ha estado esperando en las colas.

• Tiempo de respuesta – cantidad de tiempo que transcurre desde que fue hecho un requerimiento hasta que se produce la primer respuesta, no salida.

Criterios de Optimización

• Maximizar la utilización de CPU

• Maximizar el procesamiento total

• Minimizar el tiempo de retorno

• Minimizar el tiempo de espera

JRA©2007 Sistemas Operativos – Planificación de Procesos 9

p p

• Minimizar el tiempo de respuesta

Planificación Primero-Entrar, Primero-Servido (FCFS)

• Ejemplo: Proceso Tiempo de Ráfaga

P1 24

P2 3

P3 3

• Suponer que los procesos llegan en el orden: P1 , P2 , P3

JRA©2007 Sistemas Operativos – Planificación de Procesos 10

La carta de Gantt para la planificación es:

• Tiempo de espera para P1 = 0; P2 = 24; P3 = 27

• Tiempo medio de espera: (0 + 24 + 27)/3 = 17

P1 P

2P3

24 27 300

Planificación FCFS (Cont.)

Suponer que los procesos llegan en el orden

P2 , P3 , P1 .

• La carta de Gantt para la planificación es:

JRA©2007 Sistemas Operativos – Planificación de Procesos 11

• Tiempo de espera para P1 = 6; P2 = 0; P3 = 3

• Tiempo medio de espera: (6 + 0 + 3)/3 = 3

• Mucho mejor que el caso anterior.

• Efecto Convoy los procesos cortos delante de los procesos largos

P1

P3

P2

63 300

Planificación Job-Mas Corto Primero (SJF)

• Se asocia con cada proceso la longitud de su próximaráfaga de CPU. Se usa estas longitudes para planificar los procesos con el tiempo mas corto.

• Dos esquemas: – No apropiativo – una vez que la CPU es dada a un

proceso, no puede ser apropiada hasta que el mismo complete s ráfaga de CPU

JRA©2007 Sistemas Operativos – Planificación de Procesos 12

complete su ráfaga de CPU.– Apropiativo – si un nuevo proceso llega con una

longitud de ráfaga de CPU menor que el resto del tiempo de ejecución que le queda al proceso que está ejecutando entonces se apropia de la CPU. Este esquema es conocido como El Tiempo Remanente Mas Corto Primero (SRTF).

• SJF es óptimo – da el mínimo tiempo de espera promedio para un dado conjunto de procesos.

Page 3: Planificacion de procesos

3

Proceso Tiempo de llegada Ráfaga

P1 0.0 7

P2 2.0 4

P3 4.0 1

P4 5.0 4

Ejemplo de SJF No Apropiativo

JRA©2007 Sistemas Operativos – Planificación de Procesos 13

4

• SJF (no apropiativo)

• Tiempo medio de espera = (0 + 6 + 3 + 7)/4 = 4

P1

P3

P2

7 160

P4

8 12

Ejemplo SJF Apropiativo

Proceso Tiempo de llegada Ráfaga

P1 0.0 7

P2 2.0 4

P3 4.0 1

P4 5.0 4

JRA©2007 Sistemas Operativos – Planificación de Procesos 14

4

• SJF (apropiativo)

• Tiempo medio de espera = (9 + 1 + 0 +2)/4 = 3

P1

P3

P2

42110

P4

5 7

P2

P1

16

Determinando la Longitud de la Próxima Ráfaga de CPU

• Se puede solamente estimar la longitud.

• Se puede hacer usando la longitud de las ráfagas de CPU previas. Se usa un promedio exponencial.

1. actual longitud de la ráfaga de CPUmant n=

JRA©2007 Sistemas Operativos – Planificación de Procesos 15

12. valor predicho para la próxima ráfaga CPU3. , 0 14. Define:

nτα α

+ =≤ ≤

( )1 1 .n n ntτ α α τ+ = + −

Ejemplos de Promedio Exponencial

• α =0– τn+1 = τn

– La historia reciente no cuenta.

• α =1– τn+1 = tn– Solo la última ráfaga de CPU cuenta

JRA©2007 Sistemas Operativos – Planificación de Procesos 16

Solo la última ráfaga de CPU cuenta.

• Si se expande la fórmula, se tiene:τn+1 = α tn+(1 - α) α tn -1 + …

+(1 - α )j α tn -1 + …+(1 - α )n=1 tn τ0

• Dado que α y (1 - α) son menores o iguales a 1, cada término sucesivo tiene menos peso que su predecesor.

Planificación por Prioridad

• Con cada proceso se asocia un número (entero)

• La CPU es alocada al proceso con prioridad mas alta (entero mas pequeño ⇒ mas alta prioridad o el entero mas grande, depende de la convención).

– Apropiativo

JRA©2007 Sistemas Operativos – Planificación de Procesos 17

– No apropiativo

• SJF es un algoritmo planificador con prioridad.

• Problema ⇒Inanición – los procesos de baja prioridad pueden no llegar a ejecutarse nunca.

• Solución ≡ Envejecimiento – se incrementa en el tiempo la prioridad de los procesos en espera.

Round Robin (RR)

• Cada proceso toma una pequeña unidad de tiempo de CPU (quantum), usualmente 10-100 milisegundos. Luego de este tiempo el proceso es quitado de la CPU y agregado a la cola de listos.

• Si hay n procesos en la cola de listos y el tiempo del quantum es q, entonces cada proceso toma 1/n del tiempo

JRA©2007 Sistemas Operativos – Planificación de Procesos 18

q q, p pde CPU en rebanadas de a lo sumo q unidades de tiempo a la vez. Los procesos no esperan mas que (n-1)q unidades de tiempo.

• Rendimiento– q largo ⇒ Primero-Entrar, Primero-Salir– q chico ⇒ q debe ser grande con respecto al cambio de

contexto, sino la sobrecarga es demasiado grande.

Page 4: Planificacion de procesos

4

Ejemplo: RR con Quantum = 20

Proceso Ráfaga

P1 53

P2 17

P3 68

P4 24

JRA©2007 Sistemas Operativos – Planificación de Procesos 19

• La carta de Gantt:

• Tipicamente, mas tiempo de retorno promedio que SJF, pero mejor respuesta.

P1

P2

P3

P4

P1

P3

P4

P1

P3

P3

0 20 37 57 77 97 117 121 134 154 162

Como un Quantum PEQUEÑO Incrementa los Cambios de Contexto

tiempo de proceso = 10 conmutacióncontexto

quantum

JRA©2007 Sistemas Operativos – Planificación de Procesos 20

El Tiempo de Retorno Varia con el Quantum

de re

torn

o

tiempoproceso

JRA©2007 Sistemas Operativos – Planificación de Procesos 21

Tiem

po m

edio

d

tiempo de quantum

Colas Multinivel

• La cola de listos esta particionada en colas separadas:foreground (interactive)background (batch)

• Cada cola tiene su propio algoritmo de planificación, foreground – RRbackground – FCFS

JRA©2007 Sistemas Operativos – Planificación de Procesos 22

g

• La planificación debe ser hecha entre las colas.– Planificación con prioridad fija; p.e., servir desde el

foreground y luego del background. Posibilidad de inanición.

– Tajada de tiempo – cada cola tiene una cierta cantidad de tiempo de CPU que puede planificar entre sus procesos;p.e., 80% en foreground en RR, 20% en background en FCFS

Planificación de Colas Multinivel

JRA©2007 Sistemas Operativos – Planificación de Procesos 23

Colas Multinivel Realimentadas

• Un proceso puede moverse entre varias colas.

• El planificador de colas multinivel realimentadas está definido por los siguientes parámetros:

– Número de colas– Algoritmos de planificación para cada cola

JRA©2007 Sistemas Operativos – Planificación de Procesos 24

g p p– Método usado para determinar cuando mejorar un

proceso– Método usado para determinar cuando degradar un

proceso– Método usado para determinar en que cola entra

un proceso cuando necesita servicio.

Page 5: Planificacion de procesos

5

Colas Multinivel Realimentadas

JRA©2007 Sistemas Operativos – Planificación de Procesos 25

Ejemplo de Colas Multinivel Realimentadas

• Tres colas: – Q0 – quantum de 8 milisegundos– Q1 – quantum de 16 milisegundos– Q2 – FCFS

• Planificación

JRA©2007 Sistemas Operativos – Planificación de Procesos 26

Planificación– Un nuevo job entra a la cola Q0 el cual es servido

FCFS. Cuando gana la CPU, el job recibe 8 milisegundos. Si no finaliza en 8 milisegundos, el job es movido a la cola Q1.

– En Q1 el job es nuevamente servido FCFS y recibe 16 milisegundos adicionales. Si aún no completa, es movido a la cola Q2.

Planificación Múltiple-Procesador

• La planificación de CPU es mas compleja cuando hay disponibles múltiples CPUs.

• Procesadores homogéneos en un multiprocesador.

• Carga compartida

JRA©2007 Sistemas Operativos – Planificación de Procesos 27

• Multiprocesamiento Asimétrico – solo un procesador accede a las estructuras de datos del sistema, simplificando el manejo de datos compartidos.

Planificación Tiempo Real

• Sistemas de Tiempo Real Duro – requiere completar tareas críticas en una cantidad de tiempo garantizado.

• Computación de Tiempo Real Blando – requiere que los procesos críticos reciban prioridad sobre otros.

JRA©2007 Sistemas Operativos – Planificación de Procesos 28

Latencia de Despacho

evento respuesta al evento

intervalo de respuesta

procesainterrupción

latencia de despacho

proceso disponible

JRA©2007 Sistemas Operativos – Planificación de Procesos 29

ejecuciónproceso entiempo real

conflictos despacho

tiempo

Evaluación de Algoritmos

• Modelo Determinístico – toma una carga de trabajo predeterminada y define el rendimiento de cada algoritmo para esa carga.

• Modelo de colas

• Implementación

JRA©2007 Sistemas Operativos – Planificación de Procesos 30

p

Page 6: Planificacion de procesos

6

Evaluación de Planificadores de CPU por Simulación

JRA©2007 Sistemas Operativos – Planificación de Procesos 31

Planificación Solaris 2

JRA©2007 Sistemas Operativos – Planificación de Procesos 32

Prioridades Windows 2000 y XP

JRA©2007 Sistemas Operativos – Planificación de Procesos 33

Planificación en UNIX y Linux

La planificación tradicional en UNIX emplea colas multinivel ( los niveles se definen en bandas de prioridades) usando Round Robin en cada una de ellas:

P ( i ) = Base + CPUj (i )

+ nice (1)

JRA©2007 Sistemas Operativos – Planificación de Procesos 34

CPUj ( i ) =CPUj (i - 1)

2(2)

Pj ( i ) = Basej + 2

+ nicej (1)

Planificación en UNIX y Linux

Pj ( i ) =

CPUj (i ) =

Basej =

Mide la utilización del procesador por el proceso j en el intervalo i.Prioridad del proceso j en el comienzo del intervalo i; valores bajos implican prioridades altas.Prioridad base del proceso j.

JRA©2007 Sistemas Operativos – Planificación de Procesos 35

nicej =j o dad base de p oceso j

Factor de ajuste controlable por el usuario

(1) Es utilizada para ajustar dinámicamente la prioridad (producto del uso de CPU).

(2) Es usada para implementar el “envejecimiento” cuando el proceso espera. Así evita la inanición.

Planificación en UNIX y Linux

La prioridad de cada proceso es computada cada segundo (en los primeros UNIX, hoy es cada quantum).

El propósito de la prioridad base es dividir todos los procesos en bandas de niveles de prioridad.

L t CPU i tili i l

JRA©2007 Sistemas Operativos – Planificación de Procesos 36

Los componentes CPU y nice se utilizan para prevenir que los procesos migren fuera de su banda asignada (dada por la prioridad base).

Estas bandas son utilizadas para optimizar el acceso a los dispositivos que se manejan con bloques de información (discos, cintas, CD, etc) y permitir al sistema operativo responder rapidamente a las llamadas al sistema.

Page 7: Planificacion de procesos

7

Planificación en UNIX y Linux

En orden decreciente de prioridad, las bandas son:

Swapper.

Control de dispositivos de E/S en bloques.

Manipulación de archivos.

JRA©2007 Sistemas Operativos – Planificación de Procesos 37

p

Control de dispositivos de E/S por caracteres.

Procesos de usuarios.

Dentro de la banda de procesos de usuario, el uso de la historia de ejecución tiende a penalizar a los procesos limitados por procesador a expensas de los procesos limitados por E/S.