Calendarizacion

21
1 Calendarización Una computadora multiprogramada suele tener varios procesos compitiendo por la CPU al mismo tiempo. Cuando dos o más procesos están en el estado de listo en forma simultanea, si solo se cuenta con una CPU, es preciso decidir cuál proceso se ejecutará a continuación. La parte del S.O. que toma la decisión se denomina: calendarización, y el algoritmo que usa: algoritmo de calendarización.

Transcript of Calendarizacion

Page 1: Calendarizacion

1

Calendarización

• Una computadora multiprogramada suele tener varios procesos compitiendo por la CPU al mismo tiempo.

• Cuando dos o más procesos están en el estado de listo en forma simultanea, si solo se cuenta con una CPU, es preciso decidir cuál proceso se ejecutará a continuación.

• La parte del S.O. que toma la decisión se denomina: calendarización, y el algoritmo que usa: algoritmo de calendarización.

Page 2: Calendarizacion

2

• Además de escoger el proceso que más conviene, el calendarizador debe preocuparse por aprovechar con eficiencia la CPU, porque la conmutación de procesos es costosa.

1. Cambio de modo de usuario a modo de kernel.

2. Guardarse el estado del proceso actual (almacenar sus registros en la tabla de procesos, mapa de memoria)

3. Seleccionar el nuevo proceso.

4. Deberá cargar la MMU con el mapa de memoria del nuevo proceso.

5. Ponerse en marcha el nuevo proceso.

• La ejecución de demasiadas conmutaciones de proceso por segundo puede consumir una cantidad apreciable de tiempo de CPU.

Page 3: Calendarizacion

3

Calendarización

• Ráfagas de uso de CPU alternadas con periodos de espera de E/S.(a) Proceso dedicado a la CPU.(b) Proceso dedicado a la E/S.

Page 4: Calendarizacion

4

¿Cuando calendarizar?

• Cuando se crea un proceso (decidir entre el padre y el hijo).

• Cuando un proceso termina.

• Cuando un proceso de bloquea por E/S, un semáforo o cualquier otro motivo.

Page 5: Calendarizacion

5

Decisión de calendarización:• Puede tomarse en cada interrupción de reloj o en

cada k-ésima interrupción de reloj.• Los algoritmos de calendarización se dividen en

dos:– No expropiativo: escoge el proceso a ejecutar y luego

simplemente le permite ejecutarse hasta que se bloquee, aunque el proceso se ejecute por horas, no lo suspenderá por la fuerza.

– Expropiativo: escoge el proceso a ejecutar y le permite ejecutarse durante un tiempo establecido. Si al término de ese tiempo el proceso continúa en ejecución, se le suspende y el calendarizador escoge otro proceso.

Page 6: Calendarizacion

6

Categorías de los algoritmos de calendarización

• El algoritmo de calendarización depende del entorno en que se usará. Lo que el algoritmo debe optimizar no es lo mismo en todos los sitemas.

• Tres entornos:– Por lotes.– Interactivo.– Tiempo real.

Page 7: Calendarizacion

Metas de los algoritmos de calendarización

• Todos los sistemas– Equidad: dar a cada proceso una porción equitativa del

tiempo de CPU.– Cumplimiento de políticas: cuidar que se ponga en práctica la

política establecida.– Equilibrio: mantener ocupadas todas las partes del sistema.

• Sistemas por lotes– Rendimiento: procesar el máximo de trabajos por hora.– Tiempo de retorno: reducir al mínimo el lapso entre la

presentación y la terminación de un trabajo.– Utilización de CPU: mantener ocupada todo el tiempo a la

CPU.

7

Page 8: Calendarizacion

Metas de los algoritmos de calendarización

• Sistemas interactivos– Tiempo de respuesta: responder rápido a las

solicitudes.– Proporcionalidad: satisfacer las espectativas de los

usuarios.

• Sistemas de tiempo real– Cumplir los plazos: evitar la pérdida de datos.– Predecibilidad: evitar la degradación de la calidad

en sistemas multimedia.

8

Page 9: Calendarizacion

9

Caledarizacion en sistemas por lotes

• Primero en llegar, primero en ser atendido– El mas sencillo.– No expropiativo.– Fácil de entender y programar.

• Trabajo mas corto primero– No expropiativo– Supone un conocimiento anticipado de los tiempos de ejecución.– Sólo es óptima si todos los trabajos estan disponibles en forma

simultánea.

Page 10: Calendarizacion

10

Caledarizacion en sistemas por lotes

• Tiempo restante mas corto a continuación– Escoge el proceso en base al tiempo que le falta para que termine de

ejecutarse.– Es preciso conocer con anticipación los tiempos de ejecución.– Cuando llega un trabajo nuevo, su tiempo total se compara con el

tiempo que resta para que el proceso actual termine de ejecutarse.– Si es menor, el proceso actual se suspende y se pone en marcha el

trabajo recien llegado.

• Calendarización de tres niveles– Calendarización de admisión. (equilibrado entre CPU y E/S)– Calendarización de memoria. (Grado de multiprogramación -

Criterios).– Calendarización de CPU.

Page 11: Calendarizacion

11

Calendarización en sistemas por lotes

Calendarización de tres niveles

Page 12: Calendarizacion

Preguntas para multiprogramación

1. ¿Cuánto hace que el proceso se intercambió a disco?

2. ¿Cuánto tiempo de CPU ha tenido el proceso presente?

3. ¿Qué tan grande es el proceso?

4. ¿Qué tan importante es el proceso?

12

Page 13: Calendarizacion

13

Calendarización en sistemas interactivos

– (a) Lista de procesos ejecutables– (b) Lista de procesos ejecutables después de que B gasta su cuanto.

• Calendarización Round Robin (turno circular)– Actúa como una FIFO, a cada proceso se le asiga un intervalo de tiempo,

llamado cuanto, durante el que se le permitirá ejecutarse. Si el cuanto expira y el proceso aún no, se le expropia la CPU y se forma nuevamente, se atiende al siguiente.

– Interesante: magnitud del cuanto.• Cuanto pequeño.• Cuanto grande.

Page 14: Calendarizacion

14

Calendarización en sistemas interactivos

• Calendarización por prioridades– R-R tiene el supuesto que todos los procesos tienen la misma

prioridad.– A cada proceso se le asigna una prioridad y el proceso listo que tenga

la prioridad mas alta es la que se ejecuta.– Para evitar que los procesos con prioridades altas se ejecuten de

manera indefinida, el calendarizador podría decrementar la prioridad del proceso que se está ejecutando en cada interrupción del reloj.

– Otra alternativa, es asignar a cada proceso un cuanto de tiempo máximo.

– Las prioridades pueden asignarse de forma estática o dinámica (1/f, donde f=la fracción del ultimo cuanto que gasto un proceso).

– Otra manera, es dar prioridad a procesos de E/S.

Page 15: Calendarizacion

15

Calendarización en sistemas interactivos

Algoritmo de calendarización con cuatro clases de prioridad.

–En muchos casos, es conveniente agrupar los procesos en clases de prioridad y utilizar calendarización por prioridades entre las clases, pero calendarización por turno circular dentro de cada clase.

Page 16: Calendarizacion

16

Calendarización en sistemas interactivos• Multiples colas

– Establece clases de prioridad.– A los procesos de la clase más alta se ejecutan durante un cuanto.

Los de la clase siguiente dos cuantos… – Cada vez que un proceso se gastaba todos los cuantos asignados,

se le bajaba a la clase inmediata inferior.

• Proceso mas corto a continuación– Este algoritmos produce el tiempo de respuesta promedio mas bajo

en los sistemas por lotes.– Estrategia: estimar los valores con base en comportamientos

anteriores y ejecutar el proceso que tenga el tiempo de ejecución estimado mas corto.

Page 17: Calendarizacion

17

Calendarización en sistemas interactivos• Caledarización garantizada

– Hacer a los usuarios promesas reales en cuanto al desempeño y luego cumplirlas.

– Si hay n usuarios en sesión, cada uno recibirá aproximadamente 1/n de la capacidad de la CPU.

– Asimismo, en un sistema monousuario, en el que están ejecutándose n procesos, cada uno deberá recibir 1/n de los ciclos de CPU.

– Para cumplir la promesa: necesita llevar la cuenta de cuanto tiempo de CPU ha recibido cada proceso desde su creación. Luego se calcula el tiempo de CPU al que cada uno tiene derecho, que sería el tiempo dividido entre n.

– Puesto que también se conoce el tiempo de CPU que ha tenido cada proceso, se puede calcular el cociente del tiempo de CPU consumido realmente entre el tiempo al que el proceso tiene derecho.

– Así, el algoritmo consiste entonces en ejecutar el proceso cuyo cociente es más bajo, hasta que el cociente rebase al de su competidor mas cercano.

Page 18: Calendarizacion

Calendarización en sistemas en tiempo real

• Los sistemas de tiempo real se categorizan como:– De tiempo real duro: hay tiempos límite absolutos que se

deben cumplir.

– De tiempo real suave: no es conveniente fallar en un tiempo límite en ocasiones, sin embargo es tolerable.

• El comportamiento en tiempo real se logra dividiendo el programa en varios procesos, donde el comportamiento de cada uno de estos es predecible y se conoce de antemano.

18

Page 19: Calendarizacion

Calendarización en sistemas en tiempo real

• Por lo general estos procesos tienen tiempos de vida cortos.

• Cuando se detecta un evento externo, es responsabilidad del planificador planificar los procesos de tal forma que se cumpla con todos los tiempos límite.

• Estos eventos pueden ser – Periódicos (intervalos regulares)

– Aperiódicos (impredecibles)

19

Page 20: Calendarizacion

20

Calendarización en sistemas en tiempo real

• Dependiendo de cuánto tiempo requiera cada evento para su procesamiento, tal vez ni siquiera sea posible manejarlos todos.

• Dados– m sucesos periódicos

– El suceso i ocurre con un periodo Pi y su manejo requiere Ci segundos de tiempo de CPU.

• Entonces la carga sólo podrá manejarse si:• Y recibe el nombre de planificable.

1

1m

i

i i

C

P

Page 21: Calendarizacion

Calendarización en sistemas en tiempo real

• Ejemplo: considere un sistema de tiempo real con tres eventos periódicos, con periodos de 100, 200 y 500 mseg. respectivamente.

• Si estos eventos requieren 50, 30 y 100 mseg. de tiempo de CPU por evento, respectivamente, el sistema es planificable debido a que 0.5+0.15+0.2<1.

• Si se agrega un cuarto evento con un periodo de 1 segundo, el sistema seguira siendo planificable mientras que este evento no requiera más de 150mseg de tiempo de CPU.

21