Está en la página 1de 16

Planificacin de Procesos

Mdulo 5
Departamento de Ciencias e Ingeniera de la Computacin Universidad Nacional del Sur

Planificacin de Procesos
Conceptos Bsicos Criterios de Planificacin Algoritmos de Planificacin Planificacin de Mltiples Procesadores Planificacin en Tiempo Real Planificacin de hilos Ejemplos de Sistemas Operativos Planificacin en hilos Java Evaluacin Algoritmos

JRA 2008

Sistemas Operativos Planificacin de Procesos

Conceptos Bsicos
Mxima utilizacin de CPU obtenida con

multiprogramacin
Ciclo CPUrfagas (bursts) de E/S La ejecucin de

procesos consiste de ciclos de ejecucin de CPU y esperas en E/S.


Distribucin de rfagas de CPU

JRA 2008

Sistemas Operativos Planificacin de Procesos

Secuencia Alternada de Rfagas de CPU y E/S

JRA 2008

Sistemas Operativos Planificacin de Procesos

Planificador de CPU
Selecciona entre los procesos en memoria que estn

listos para ejecutar, y aloca la CPU a uno de ellos.


La decisin de planificar la CPU puede tener lugar

cuando un proceso: 1. Conmuta de ejecutando a estado de espera. 2. Conmuta de ejecutando a estado de listo. 3. Conmuta de espera a listo. 4. Termina.
La planificacin de 1 y 4 es no apropiativa. Las otras planificaciones son apropiativas.

JRA 2008

Sistemas Operativos Planificacin de Procesos

Despachador
El mdulo despachador pasa el control de la CPU al

proceso seleccionado por el planificador de corto trmino; esto implica:


cambio de contexto conmutacin a modo usuario salta a la direccin apropiada en el programa de usuario para reiniciarlo

Latencia de despacho tiempo que toma al

despachador para detener un proceso e iniciar otro.

JRA 2008

Sistemas Operativos Planificacin de Procesos

Criterios de Planificacin
Utilizacin de CPU mantener la CPU tan ocupada

como sea posible Procesamiento total (Throughput) nmero de procesos que completan sus ejecucin por unidad de tiempo.
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.
Sistemas Operativos Planificacin de Procesos

JRA 2008

Criterios de Optimizacin
Maximizar la utilizacin de CPU Maximizar el procesamiento total Minimizar el tiempo de retorno Minimizar el tiempo de espera Minimizar el tiempo de respuesta

JRA 2008

Sistemas Operativos Planificacin de Procesos

Planificacin Primero-Entrar, Primero-Servido (FCFS)


Ejemplo:

Proceso P1 P2 P3

Tiempo de Rfaga 24 3 3

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

La carta de Gantt para la planificacin es:


P1 0 24 P2 27 P3 30

Tiempo de espera para P1 = 0; P2 = 24; P3 = 27 Tiempo medio de espera: (0 + 24 + 27)/3 = 17


JRA 2008 Sistemas Operativos Planificacin de Procesos

Planificacin FCFS (Cont.)


Suponer que los procesos llegan en el orden P2 , P3 , P1 .
La carta de Gantt para la planificacin es:

P2 0 3

P3 6

P1 30

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
JRA 2008 Sistemas Operativos Planificacin de Procesos

Planificacin Job-Mas Corto Primero (SJF)


Se asocia con cada proceso la longitud de su prxima

rfaga 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 su rfaga de CPU. Apropiativo si un nuevo proceso llega con una longitud de rfaga de CPU menor que el resto del tiempo de ejecucin 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 mnimo tiempo de espera promedio para un dado conjunto de procesos.

JRA 2008 Sistemas Operativos Planificacin de Procesos

Ejemplo de SJF No Apropiativo


Proceso Tiempo de llegada P1 P2 P3 P4
SJF (no apropiativo)

Rfaga 7 4 1 4

0.0 2.0 4.0 5.0

P1

P3

P2

P4

0 7 8 12 16 Tiempo medio de espera = (0 + 6 + 3 + 7)/4 = 4

JRA 2008

Sistemas Operativos Planificacin de Procesos

Ejemplo SJF Apropiativo


Proceso Tiempo de llegada P1 P2 P3 P4
SJF (apropiativo)

Rfaga 7 4 1 4

0.0 2.0 4.0 5.0

P1

P2

P3

P2

P4

P1 16

11 0 2 4 5 7 Tiempo medio de espera = (9 + 1 + 0 +2)/4 = 3

JRA 2008

Sistemas Operativos Planificacin de Procesos

Planificacin por Prioridad


Con cada proceso se asocia un nmero (entero) La CPU es alocada al proceso con prioridad mas alta

(entero mas pequeo mas alta prioridad o el entero mas grande, depende de la convencin).

Apropiativo No apropiativo

SJF es un algoritmo planificador con prioridad. Problema Inanicin los procesos de baja

prioridad pueden no llegar a ejecutarse nunca.


Solucin Envejecimiento se incrementa en el

tiempo la prioridad de los procesos en espera.


JRA 2008 Sistemas Operativos Planificacin de Procesos

Round Robin (RR)


Cada proceso toma una pequea 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 de 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.
Sistemas Operativos Planificacin de Procesos

JRA 2008

Ejemplo: RR con Quantum = 20


Proceso P1 P2 P3 Rfaga 53 17 68

P4
La carta de Gantt:

24

P1 0 20

P2 37

P3 57

P4 77

P1

P3 97 117

P4

P1

P3

P3

121 134 154 162

Tipicamente, mas tiempo de retorno promedio que SJF,

pero mejor respuesta.

JRA 2008

Sistemas Operativos Planificacin de Procesos

Como un Quantum PEQUEO Incrementa los Cambios de Contexto

tiempo de proceso = 10

quantum

conmutacin contexto

JRA 2008

Sistemas Operativos Planificacin de Procesos

Colas Multinivel
La cola de listos esta particionada en colas separadas:

foreground (interactive) background (batch) Cada cola tiene su propio algoritmo de planificacin, foreground RR background FCFS La planificacin debe ser hecha entre las colas. Planificacin con prioridad fija; p.e., servir desde el foreground y luego del background. Posibilidad de inanicin. 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
JRA 2008 Sistemas Operativos Planificacin de Procesos

Multilevel Queue Scheduling

JRA 2008

Sistemas Operativos Planificacin de Procesos

Colas Multinivel Realimentadas


Un proceso puede moverse entre varias colas. El planificador de colas multinivel realimentadas est

definido por los siguientes parmetros:


Nmero de colas Algoritmos de planificacin para cada cola Mtodo usado para determinar cuando mejorar un proceso Mtodo usado para determinar cuando degradar un proceso Mtodo usado para determinar en que cola entra un proceso cuando necesita servicio.
Sistemas Operativos Planificacin de Procesos

JRA 2008

10

Ejemplo de Colas Multinivel Realimentadas


Tres colas:

Q0 quantum de 8 milisegundos Q1 quantum de 16 milisegundos Q2 FCFS 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 an no completa, es movido a la cola Q2.
Sistemas Operativos Planificacin de Procesos

Planificacin

JRA 2008

Colas Multinivel Realimentadas

JRA 2008

Sistemas Operativos Planificacin de Procesos

11

Planificacin Mltiple-Procesador
La planificacin de CPU es mas compleja

cuando hay disponibles mltiples CPUs.


Procesadores homogneos en un

multiprocesador.
Carga compartida Multiprocesamiento Asimtrico solo un

procesador accede a las estructuras de datos del sistema, simplificando el manejo de datos compartidos.

JRA 2008

Sistemas Operativos Planificacin de Procesos

Planificacin Tiempo Real


Sistemas de Tiempo Real Duro requiere

completar tareas crticas en una cantidad de tiempo garantizado.


Computacin de Tiempo Real Blando

requiere que los procesos crticos reciban prioridad sobre otros.

JRA 2008

Sistemas Operativos Planificacin de Procesos

12

Planificacin de Hilos
Planificacin Local Como deciden las libreras de

hilos poner el hilo en un LWP (Light-Weight Process)


Planificacin Global Como el kernel decide que

hilo del kernel es el siguiente que corre

JRA 2008

Sistemas Operativos Planificacin de Procesos

Prioridades en Windows XP

JRA 2008

Sistemas Operativos Planificacin de Procesos

13

Planificacin en Linux
Dos algoritmos: tiempo compartido y tiempo real Tiempo compartido

Prioriza basado en crditos procesos con ms crditos son planificacdos primero Los crditos se restan cuando la interrupcin del timer ocurre Cuando el crdito = 0, es elegido otro proceso

Cuando todos los procesos tienen crdito = 0, ocurre una reacreditacin


Basada

en factores que incluyen prioridad e historia

Tiempo real

Tiempo real blando Posix.1b compliant dos clases


FCFS

y RR de ms alta prioridad siempre corre primero

Proceso

JRA 2008

Sistemas Operativos Planificacin de Procesos

Planificacin en UNIX y Linux


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

Pj ( i ) = Basej +

CPUj (i ) 2

+ nicej

(1)

CPUj ( i ) =

CPUj (i - 1) 2

(2)

JRA 2008

Sistemas Operativos Planificacin de Procesos

14

Planificacin en UNIX y Linux


CPUj (i ) = Mide la utilizacin del procesador por el proceso j en el intervalo i. Pj ( i ) = Prioridad del proceso j en el comienzo del intervalo i; valores bajos implican prioridades altas.

Basej = Prioridad base del proceso j. nicej = Factor de ajuste controlable por el usuario (1) Es utilizada para ajustar dinmicamente la prioridad (producto del uso de CPU). (2) Es usada para implementar el envejecimiento cuando el proceso espera. As evita la inanicin.
JRA 2008 Sistemas Operativos Planificacin de Procesos

Planificacin en UNIX y Linux


La prioridad de cada proceso es computada cada segundo (en los primeros UNIX, hoy es cada quantum). El propsito de la prioridad base es dividir todos los procesos en bandas de niveles de prioridad. 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 informacin (discos, cintas, CD, etc) y permitir al sistema operativo responder rapidamente a las llamadas al sistema.

JRA 2008

Sistemas Operativos Planificacin de Procesos

15

Planificacin en UNIX y Linux


En orden decreciente de prioridad, las bandas son: Swapper. Control de dispositivos de E/S en bloques. Manipulacin de archivos. 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 ejecucin tiende a penalizar a los procesos limitados por procesador a expensas de los procesos limitados por E/S.

JRA 2008

Sistemas Operativos Planificacin de Procesos

Fin
Mdulo 5
Departamento de Ciencias e Ingeniera de la Computacin Universidad Nacional del Sur

16

También podría gustarte