SISTEMAS OPERATIVOS

DEPARTAMENTO DE CIENCIAS DE LA COMPUTACION UNIVERSIDAD NACIONAL DEL COMAHUE

CAPITULO 6

Planificación de CPU

TEMARIO

Conceptos previos Criterios de planificación Algoritmos Evaluación de algoritmos

Sistemas Operativos 2008

Capítulo 6

3

CONCEPTOS PREVIOS
Colas en la planificación de procesos Los procesos durante su “vida” van migrando entre varias colas:
Cola de Trabajos: todos los procesos del sistema. Cola de Listos: todos los procesos que residen en memoria principal y están listos y esperando para obtener CPU. Colas de Dispositivos: todos los procesos que esperan por un dispositivo de E/S. Cada uno posee su propia cola.
Sistemas Operativos 2008 Capítulo 6 4

CONCEPTOS PREVIOS
Colas en la planificación de procesos

Estas colas son listas encadenadas de PCB´s.

Sistemas Operativos 2008

Capítulo 6

5

CONCEPTOS PREVIOS
Planificadores Podemos diferenciar 3 planificadores de procesos: De largo alcance De corto alcance De medio alcance

Sistemas Operativos 2008

Capítulo 6

6

CONCEPTOS PREVIOS
Planificador de largo alcance También conocido como long-term scheduler o job

scheduler.
Se ocupa de seleccionar procesos de la cola de trabajos o jobs para ubicarlos en la cola de listos (transición de estados de NUEVO a LISTO). Controla el grado de multiprogramación.

Sistemas Operativos 2008

Capítulo 6

7

CONCEPTOS PREVIOS
Planificador de corto alcance También conocido como short-term scheduler o cpu

scheduler.
Se ocupa de seleccionar un proceso de la cola de listos para que se apropie de la CPU y pueda ejecutar sus instrucciones (transición de estados de LISTO a EJECUTANDO).

Sistemas Operativos 2008

Capítulo 6

8

CONCEPTOS PREVIOS
Planificador de mediano alcance También conocido como medium-term scheduler. Se ocupa de realizar el intercambio de procesos entre la memoria y el área de almacenamiento secundario destinado para swapping. Existe sólo en los sistemas que soportan swapping.

Sistemas Operativos 2008

Capítulo 6

9

CONCEPTOS PREVIOS
Uso de los planificadores

Corto alcance: es invocado con mucha frecuencia (milisegundos) ⇒ debe ser muy rápido.

Largo alcance: es invocado con poca frecuencia (segundos, minutos) ⇒ puede ser más lento.

Sistemas Operativos 2008

Capítulo 6

10

CONCEPTOS PREVIOS
Cambio de contexto Es el conjunto de acciones que involucran el cambio de un proceso a otro en la ocupación de la CPU. El sistema debe salvar el estado del proceso saliente y cargar el estado salvado del proceso entrante. El tiempo de cambio de contexto es overhead: mientras se produce, el sistema no realiza ningún trabajo productivo. El tiempo depende esencialmente del hardware.

Sistemas Operativos 2008

Capítulo 6

11

CONCEPTOS PREVIOS
Cambio de proceso en la CPU

Sistemas Operativos 2008

Capítulo 6

12

CONCEPTOS PREVIOS
Uso del planificador de corto alcance Se ejecuta cuando: 1. 2. 3. 4. Un proceso pasa de EJECUTANDO a ESPERANDO. Un proceso pasa de EJECUTANDO a LISTO. Un proceso pasa de ESPERANDO a LISTO. Un proceso pasa de EJECUTANDO a FINALIZADO.

1 y 4 son nonpreemptive (la desocupación de la CPU es “voluntaria”). 2 y 3 son preemptive (la desocupación de la CPU es forzosa).

Sistemas Operativos 2008

Capítulo 6

13

CONCEPTOS PREVIOS
Dispatcher Es el módulo que sigue inmediatamente al planificador de corto alcance. Le entrega el control de la CPU al proceso seleccionado mediante los siguientes pasos:
Cambio de contexto; Cambio a modo usuario; Salto a la dirección apuntada por el PC del proceso seleccionado para continuar su ejecución.

Sistemas Operativos 2008

Capítulo 6

14

CRITERIOS DE PLANIFICACION
El principal objetivo de la planificación de procesos es lograr la máxima utilización posible de la CPU en un ambiente de multiprogramación.

Para lograr esto es necesario el uso de métricas que permitan evaluar la performance de los distintos mecanismos de planificación que se apliquen.

Sistemas Operativos 2008

Capítulo 6

15

CRITERIOS DE PLANIFICACION
Los criterios más usuales son: Utilización de CPU Throughput Tiempo de turnaround Tiempo de espera Tiempo de respuesta

Sistemas Operativos 2008

Capítulo 6

16

CRITERIOS DE PLANIFICACION
Utilización de CPU Mide el tiempo que la CPU se mantiene ocupada, en especial ejecutando procesos de usuario. Algunos sistemas permiten diferenciar el uso de la CPU para tareas del SO. Throughput Mide la cantidad de procesos que finalizan por unidad de tiempo. Es una medida de productividad del sistema.

Sistemas Operativos 2008

Capítulo 6

17

CRITERIOS DE PLANIFICACION
Tiempo de turnaround Mide la cantidad total de tiempo que “vive” un proceso (desde que ingresa hasta que finaliza).

Tiempo de Espera Mide la cantidad de tiempo que un proceso pasa esperando en la cola de listos.

Sistemas Operativos 2008

Capítulo 6

18

CRITERIOS DE PLANIFICACION
Tiempo de Respuesta Mide la cantidad de tiempo que demora el sistema en producir la respuesta ante un requerimiento de un proceso, no incluyendo la salida. Es una métrica especialmente útil para ambientes de tiempo compartido.

Sistemas Operativos 2008

Capítulo 6

19

CRITERIOS DE PLANIFICACION
Para computar cada uno de los criterios, se obtienen los valores correspondientes a cada proceso del conjunto y luego se promedian para lograr una medida promedio, la que entrega una idea general del comportamiento del conjunto de procesos.

Sistemas Operativos 2008

Capítulo 6

20

CRITERIOS DE PLANIFICACION
El objetivo es optimizar el funcionamiento general a través de:

Maximizar utilización de CPU y throughput Minimizar tiempo de turnaround, tiempo de espera y tiempo de respuesta

Sistemas Operativos 2008

Capítulo 6

21

ALGORITMOS DE PLANIFICACION
Los principales son los siguientes:

FCFS (First Come First Served) SJF (Shortest Job First) SRTF (Shortest Remaining Time First) Prioridades RR (Round Robin)

Sistemas Operativos 2008

Capítulo 6

22

FCFS
Atiende a los procesos según el orden de arribo a la cola de listos. Es un algoritmo no preemptive: cuando un proceso obtiene CPU no la deja hasta finalizar su ráfaga. Existen también implementaciones preemptive.

Sistemas Operativos 2008

Capítulo 6

23

FCFS: Un ejemplo
3 procesos: Proceso CPU 24 3 3

P1 P2 P3

El orden de arribo a la cola de listos es: P1 P2 P3 todos en T=0.

Sistemas Operativos 2008

Capítulo 6

24

FCFS: Un ejemplo
El diagrama de Gantt es:
P1 0 24 P2 27 P3 30

Tiempo de turnaround: P1=24; P2=27; P3=30. Tiempo de turnaround promedio: (24+27+30)/3= 26,67 Tiempo de espera: P1=0; P2 =24; P3=27 Tiempo de espera promedio: (0+24+27)/3 =17

Sistemas Operativos 2008

Capítulo 6

25

FCFS: Un ejemplo
Suponer ahora que el orden de arribo sea: P2 P3 P1 El diagrama de Gantt resultante es:
P2 0 3 P3 6 P1 30

Tiempo de turnaround: P1= 30; P2=3; P3=6 Tiempo de turnaround promedio: (30+3+6)/3=13 Tiempo de espera: P1= 6; P2=0; P3=3 Tiempo de espera promedio: (6+0+3)/3=3

Sistemas Operativos 2008

Capítulo 6

26

FCFS: Un ejemplo
El 2do. caso es mucho mejor. El 1er. caso muestra el efecto convoy.
P1 0 P2 0 3 P3 6 24 P1 30 P2 27 P3 30

Sistemas Operativos 2008

Capítulo 6

27

SJF
Selecciona de la cola de listos aquel proceso cuyo próximo intervalo de CPU sea el más corto. SJF es un algoritmo no preemptive: Una vez que un proceso obtiene la CPU, no puede ser desalojado de ella hasta que finalice su intervalo.

Sistemas Operativos 2008

Capítulo 6

28

Ejemplo SJF
Proceso

P1 P2 P3 P4
P1 0 3 7

Arribo 0 2 4 5
P3 8 P2

CPU 7 4 1 4
P4 12 16

Turnaround: 7+(12-2)+(8-4)+(16-5)/4 = (7+10+4+11)/4 = 32/4=8 Espera: 0+(8-2)+(7-4)+(12-5)/4 = (0+6+3+7)/4 = 16/4=4

Sistemas Operativos 2008

Capítulo 6

29

SRTF
Es una variante de SJF. Cuando llega un nuevo proceso a la cola de listos, el scheduler analiza los intervalos de todos los procesos; si el nuevo proceso tiene el menor intervalo, desaloja al que estaba y gana la CPU. SRTF es preemptive.

Sistemas Operativos 2008

Capítulo 6

30

Ejemplo SRTF
El mismo que SJF Proceso

P1 P2 P3 P4
P3 P2 5 7 P4 11

Arribo 0 2 4 5
P1 16

CPU 7 4 1 4

P1 0 2

P2 4

Turnaround: (16+(7-2)+(5-4)+(11-5))/4 = (16+5+1+6)/4 = 28/4=7 Espera: ((0+(11-2)+(0+(5-4))+0+(7-5))/4 = (9+1+0+2)/4 = 12/4=3

Sistemas Operativos 2008

Capítulo 6

31

SRTF
SRTF es óptimo. Para un cierto conjunto de procesos, SRTF siempre da el menor tiempo de espera promedio.

Sistemas Operativos 2008

Capítulo 6

32

CALCULO DEL PROXIMO CICLO DE CPU

SJF y SRTF son algoritmos teóricos pues no se puede saber exactamente cuál es la longitud del próximo intervalo de CPU.

Se hace una estimación basándose en la longitud de los intervalos de CPU previos, usando una distribución exponencial.

Sistemas Operativos 2008

Capítulo 6

33

ALGORITMO POR PRIORIDADES

Cada proceso tiene asociado un número (entero) de prioridad.

La CPU se asigna al proceso con la mayor prioridad (a menor número mayor prioridad).

Sistemas Operativos 2008

Capítulo 6

34

ALGORITMO POR PRIORIDADES
Aplicado en forma “pura” es un algoritmo preemptive. También puede ser implementado en forma no preemptive. SJF equivale al algoritmo por prioridades cuando el tiempo estimado para el próximo intervalo de CPU de los procesos en la cola de listos actúa como la prioridad.

Sistemas Operativos 2008

Capítulo 6

35

ALGORITMO POR PRIORIDADES
El problema que presenta es starvation: los procesos de baja prioridad pueden demorarse mucho en ser atendidos o no ser atendidos nunca.

Una solución es implementar un mecanismo de aging: a medida que pasa el tiempo, se aumenta la prioridad de los procesos (los de baja prioridad aumentan sus chances de ser elegidos para CPU).

Sistemas Operativos 2008

Capítulo 6

36

ROUND ROBIN (RR)
El sistema define un quantum, usualmente de entre 10 y 100 milisegundos. Cada proceso ejecuta un quantum. Cuando finaliza su quantum, el proceso es desalojado de la CPU y se lo coloca al final de la cola de listos. Si hay n procesos en la cola de listos, y el quantum es q, entonces cada proceso ejecutará 1/n del tiempo total de la CPU en intervalos de como máximo q unidades de tiempo por vez. Ningún proceso esperará por la CPU más que (n-1)xq unidades de tiempo.
Sistemas Operativos 2008 Capítulo 6 37

ROUND ROBIN (RR)
q grande ⇒ RR tiende a FCFS. q pequeño ⇒ si q está en el orden del tiempo de
cambio de contexto, el overhead del sistema será muy alto.

Sistemas Operativos 2008

Capítulo 6

38

Ejemplo ROUND ROBIN
Ejemplo con q=20:
Proceso P1 P2 P3 P4 CPU 53 17 68 24

P1 0 20

P2 37

P3 57

P4 77

P1

P3

P4

P1

P3

P3

97 117 121 134 154 162

En general, RR produce un mayor tiempo de turnaround promedio que SJF, aunque el tiempo de respuesta suele ser mucho mejor.
Sistemas Operativos 2008 Capítulo 6 39

COLAS MULTINIVEL

La cola de listos está dividida en colas separadas. Por ejemplo:
• cola para los procesos interactivos. • cola para los procesos batch.

Cada cola tiene su propio algoritmo de scheduling:
• RR para cola de procesos interactivos. • FCFS para cola de procesos batch.

Sistemas Operativos 2008

Capítulo 6

40

COLAS MULTINIVEL
El scheduling se realiza entre las colas. Dos posibles estrategias: Por nivel de cola: primero se atiende la cola de mayor nivel hasta vaciarla; luego la que le sigue y así sucesivamente. Posibilidad de starvation. Por tiempo: cada cola tiene una cierta cantidad de tiempo disponible para planificar sus procesos. En el ejemplo, 80% para la cola de procesos interactivos y 20% para la cola de procesos batch.

Sistemas Operativos 2008

Capítulo 6

41

COLAS MULTINIVEL
Un ejemplo genérico:

Sistemas Operativos 2008

Capítulo 6

42

COLAS MULTINIVEL CON REALIMENTACION
Los procesos de menor nivel van “promocionando” de cola y los procesos de mayor nivel van “degradando” de cola.

Es una forma de implementar aging y sirve para evitar starvation.

Sistemas Operativos 2008

Capítulo 6

43

COLAS MULTINIVEL CON REALIMENTACION
Este esquema de scheduling está definido por los siguientes parámetros: Cantidad de colas; Algoritmo de scheduling de cada cola; Método para determinar cuando se promociona un proceso; Método para determinar cuando se degrada un proceso; Método para determinar a que cola ingresará un proceso.

Sistemas Operativos 2008

Capítulo 6

44

Ejemplo COLAS MULTINIVEL CON REALIMENTACION
Tres colas:

• C0 – RR con quantum de 8 milisegundos • C1 – RR con quantum de 16 milisegundos • C2 – FCFS

Sistemas Operativos 2008

Capítulo 6

45

Ejemplo COLAS MULTINIVEL CON REALIMENTACION
Scheduling: Un nuevo proceso ingresa en C0. Cuando el proceso obtiene CPU ejecuta durante 8 milisegundos; si no finaliza en ese tiempo, es degradado a C1. En C1 el proceso recibe CPU por 16 milisegundos; si aún no finaliza su tarea, es degradado a C2.

Sistemas Operativos 2008

Capítulo 6

46

Ejemplo COLAS MULTINIVEL CON REALIMENTACION
Gráficamente:

Sistemas Operativos 2008

Capítulo 6

47

EVALUACION DE ALGORITMOS
4 estrategias: Modelo determinístico Modelos de colas Implementación Simulación

Sistemas Operativos 2008

Capítulo 6

48

EVALUACION DE ALGORITMOS
Modelo determinístico: se estudia la performance de cada algoritmo para una determinada carga de trabajo. Modelos de colas: se realiza un análisis matemático aplicando Teoría de Colas. Implementación: se programan e implementan los diversos algoritmos estudiando su performance. Simulación: se programan e implementan simulaciones de los algoritmos.

Sistemas Operativos 2008

Capítulo 6

49

Sign up to vote on this title
UsefulNot useful