módulo 5 - principalldm/data/so/apuntes/05-planificacion_de_procesos.pdf · colas multinivel la...

16
1 Módulo 5 Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur Planificación de Procesos Sistemas Operativos Planificación de Procesos JRA © 2008 Planificación de Procesos Conceptos Básicos Criterios de Planificación Algoritmos de Planificación Planificación de Múltiples Procesadores Planificación en Tiempo Real Planificación de hilos Ejemplos de Sistemas Operativos Planificación en hilos Java Evaluación Algoritmos

Upload: others

Post on 17-Mar-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Módulo 5 - Principalldm/data/so/apuntes/05-planificacion_de_procesos.pdf · Colas Multinivel La cola de listos esta particionada en colas separadas: foreground (interactive) background

1

Módulo 5

Departamento de Ciencias e Ingeniería de la Computación

Universidad Nacional del Sur

Planificación de Procesos

Sistemas Operativos –Planificación de ProcesosJRA © 2008

Planificación de Procesos

Conceptos Básicos

Criterios de Planificación

Algoritmos de Planificación

Planificación de Múltiples Procesadores

Planificación en Tiempo Real

Planificación de hilos

Ejemplos de Sistemas Operativos

Planificación en hilos Java

Evaluación Algoritmos

Page 2: Módulo 5 - Principalldm/data/so/apuntes/05-planificacion_de_procesos.pdf · Colas Multinivel La cola de listos esta particionada en colas separadas: foreground (interactive) background

2

Sistemas Operativos –Planificación de ProcesosJRA © 2008 3

Conceptos Básicos

Máxima utilización de CPU obtenida con

multiprogramación

Ciclo CPU–ráfagas (bursts) de E/S – La ejecución de

procesos consiste de ciclos de ejecución de CPU y

esperas en E/S.

Distribución de ráfagas de CPU

Sistemas Operativos –Planificación de ProcesosJRA © 2008

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

Page 3: Módulo 5 - Principalldm/data/so/apuntes/05-planificacion_de_procesos.pdf · Colas Multinivel La cola de listos esta particionada en colas separadas: foreground (interactive) background

3

Sistemas Operativos –Planificación de ProcesosJRA © 2008

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.

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.

Sistemas Operativos –Planificación de ProcesosJRA © 2008

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

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.

Page 4: Módulo 5 - Principalldm/data/so/apuntes/05-planificacion_de_procesos.pdf · Colas Multinivel La cola de listos esta particionada en colas separadas: foreground (interactive) background

4

Sistemas Operativos –Planificación de ProcesosJRA © 2008

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.

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 –Planificación de ProcesosJRA © 2008

Criterios de Optimización

Maximizar la utilización de CPU

Maximizar el procesamiento total

Minimizar el tiempo de retorno

Minimizar el tiempo de espera

Minimizar el tiempo de respuesta

Page 5: Módulo 5 - Principalldm/data/so/apuntes/05-planificacion_de_procesos.pdf · Colas Multinivel La cola de listos esta particionada en colas separadas: foreground (interactive) background

5

Sistemas Operativos –Planificación de ProcesosJRA © 2008

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

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 P2 P3

24 27 300

Sistemas Operativos –Planificación de ProcesosJRA © 2008

Planificación FCFS (Cont.)

Suponer que los procesos llegan en el orden

P2 , P3 , P1 .

La carta de Gantt para la planificación es:

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

P1P3P2

63 300

Page 6: Módulo 5 - Principalldm/data/so/apuntes/05-planificacion_de_procesos.pdf · Colas Multinivel La cola de listos esta particionada en colas separadas: foreground (interactive) background

6

Sistemas Operativos –Planificación de ProcesosJRA © 2008

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 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.

Sistemas Operativos –Planificación de ProcesosJRA © 2008

Proceso Tiempo de llegada Ráfaga

P1 0.0 7

P2 2.0 4

P3 4.0 1

P4 5.0 4

SJF (no apropiativo)

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

Ejemplo de SJF No Apropiativo

P1 P3 P2

7 160

P4

8 12

Page 7: Módulo 5 - Principalldm/data/so/apuntes/05-planificacion_de_procesos.pdf · Colas Multinivel La cola de listos esta particionada en colas separadas: foreground (interactive) background

7

Sistemas Operativos –Planificación de ProcesosJRA © 2008

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

SJF (apropiativo)

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

P1 P3P2

42 110

P4

5 7

P2 P1

16

Sistemas Operativos –Planificación de ProcesosJRA © 2008

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

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.

Page 8: Módulo 5 - Principalldm/data/so/apuntes/05-planificacion_de_procesos.pdf · Colas Multinivel La cola de listos esta particionada en colas separadas: foreground (interactive) background

8

Sistemas Operativos –Planificación de ProcesosJRA © 2008

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

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 –Planificación de ProcesosJRA © 2008

Ejemplo: RR con Quantum = 20

Proceso Ráfaga

P1 53

P2 17

P3 68

P4 24

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

Page 9: Módulo 5 - Principalldm/data/so/apuntes/05-planificacion_de_procesos.pdf · Colas Multinivel La cola de listos esta particionada en colas separadas: foreground (interactive) background

9

Sistemas Operativos –Planificación de ProcesosJRA © 2008

Como un Quantum PEQUEÑO Incrementa los Cambios de

Contexto

tiempo de proceso = 10 conmutacióncontexto

quantum

Sistemas Operativos –Planificación de ProcesosJRA © 2008

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 – RR

background – FCFS

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

Page 10: Módulo 5 - Principalldm/data/so/apuntes/05-planificacion_de_procesos.pdf · Colas Multinivel La cola de listos esta particionada en colas separadas: foreground (interactive) background

10

Sistemas Operativos –Planificación de ProcesosJRA © 2008

Multilevel Queue Scheduling

Sistemas Operativos –Planificación de ProcesosJRA © 2008

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

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 11: Módulo 5 - Principalldm/data/so/apuntes/05-planificacion_de_procesos.pdf · Colas Multinivel La cola de listos esta particionada en colas separadas: foreground (interactive) background

11

Sistemas Operativos –Planificación de ProcesosJRA © 2008

Ejemplo de Colas Multinivel Realimentadas

Tres colas:

Q0 – quantum de 8 milisegundos

Q1 – quantum de 16 milisegundos

Q2 – FCFS

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.

Sistemas Operativos –Planificación de ProcesosJRA © 2008

Colas Multinivel Realimentadas

Page 12: Módulo 5 - Principalldm/data/so/apuntes/05-planificacion_de_procesos.pdf · Colas Multinivel La cola de listos esta particionada en colas separadas: foreground (interactive) background

12

Sistemas Operativos –Planificación de ProcesosJRA © 2008

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

Multiprocesamiento Asimétrico – solo un

procesador accede a las estructuras de datos

del sistema, simplificando el manejo de datos

compartidos.

Sistemas Operativos –Planificación de ProcesosJRA © 2008

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.

Page 13: Módulo 5 - Principalldm/data/so/apuntes/05-planificacion_de_procesos.pdf · Colas Multinivel La cola de listos esta particionada en colas separadas: foreground (interactive) background

13

Sistemas Operativos –Planificación de ProcesosJRA © 2008

Planificación de Hilos

Planificación Local – Como deciden las librerías de

hilos poner el hilo en un LWP (Light-Weight

Process)

Planificación Global – Como el kernel decide que

hilo del kernel es el siguiente que corre

Sistemas Operativos –Planificación de ProcesosJRA © 2008

Prioridades en Windows XP

Page 14: Módulo 5 - Principalldm/data/so/apuntes/05-planificacion_de_procesos.pdf · Colas Multinivel La cola de listos esta particionada en colas separadas: foreground (interactive) background

14

Sistemas Operativos –Planificación de ProcesosJRA © 2008

Planificación en Linux

Dos algoritmos: tiempo compartido y tiempo real

Tiempo compartido

Prioriza basado en créditos – procesos con más créditos son planificacdos primero

Los créditos se restan cuando la interrupción del timer ocurre

Cuando el crédito = 0, es elegido otro proceso

Cuando todos los procesos tienen crédito = 0, ocurre una reacreditación

Basada en factores que incluyen prioridad e historia

Tiempo real

Tiempo real blando

Posix.1b compliant – dos clases

FCFS y RR

Proceso de más alta prioridad siempre corre primero

Sistemas Operativos –Planificación de ProcesosJRA © 2008

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:

CPUj ( i ) =CPUj (i - 1)

2

(2)

Pj ( i ) = Basej + CPUj (i )

2+ nicej

(1)

Page 15: Módulo 5 - Principalldm/data/so/apuntes/05-planificacion_de_procesos.pdf · Colas Multinivel La cola de listos esta particionada en colas separadas: foreground (interactive) background

15

Sistemas Operativos –Planificación de ProcesosJRA © 2008

Planificación en UNIX y Linux

nicej =

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.

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.

Sistemas Operativos –Planificación de ProcesosJRA © 2008

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.

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 16: Módulo 5 - Principalldm/data/so/apuntes/05-planificacion_de_procesos.pdf · Colas Multinivel La cola de listos esta particionada en colas separadas: foreground (interactive) background

16

Sistemas Operativos –Planificación de ProcesosJRA © 2008

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.

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.

Módulo 5

Departamento de Ciencias e Ingeniería de la Computación

Universidad Nacional del Sur

Fin