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

‡

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

3 . (b) Proceso dedicado a la E/S.Calendarización ‡ Ráfagas de uso de CPU alternadas con periodos de espera de E/S. (a) Proceso dedicado a la CPU.

¿Cuando calendarizar? ‡ Cuando se crea un proceso (decidir entre el padre y el hijo). un semáforo o cualquier otro motivo. 4 . ‡ Cuando un proceso termina. ‡ Cuando un proceso de bloquea por E/S.

se le suspende y el calendarizador escoge otro proceso. 5 . Si al término de ese tiempo el proceso continúa en ejecución. no lo suspenderá por la fuerza. ‡ 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.Decisión de calendarización: ‡ Puede tomarse en cada interrupción de reloj o en cada k-ésima interrupción de reloj. aunque el proceso se ejecute por horas. ± Expropiativo: escoge el proceso a ejecutar y le permite ejecutarse durante un tiempo establecido.

± Interactivo. ± Tiempo real. 6 . ‡ Tres entornos: ± Por lotes.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.

‡ Sistemas por lotes ± Rendimiento: procesar el máximo de trabajos por hora. 7 . ± Tiempo de retorno: reducir al mínimo el lapso entre la presentación y la terminación de un trabajo. ± Equilibrio: mantener ocupadas todas las partes del sistema.Metas de los algoritmos de calendarización ‡ Todos los sistemas ± Equidad: dar a cada proceso una porción equitativa del tiempo de CPU. ± Utilización de CPU: mantener ocupada todo el tiempo a la CPU. ± Cumplimiento de políticas: cuidar que se ponga en práctica la política establecida.

± Predecibilidad: evitar la degradación de la calidad en sistemas multimedia. ‡ Sistemas de tiempo real ± Cumplir los plazos: evitar la pérdida de datos. ± Proporcionalidad: satisfacer las espectativas de los usuarios.Metas de los algoritmos de calendarización ‡ Sistemas interactivos ± Tiempo de respuesta: responder rápido a las solicitudes. 8 .

‡ Trabajo mas corto primero ± No expropiativo ± Supone un conocimiento anticipado de los tiempos de ejecución. ± Fácil de entender y programar. ± Sólo es óptima si todos los trabajos estan disponibles en forma simultánea. ± No expropiativo. 9 . primero en ser atendido ± El mas sencillo.Caledarizacion en sistemas por lotes ‡ Primero en llegar.

10 . (Grado de multiprogramación Criterios). ± Calendarización de CPU. el proceso actual se suspende y se pone en marcha el trabajo recien llegado. ‡ Calendarización de tres niveles ± Calendarización de admisión. su tiempo total se compara con el tiempo que resta para que el proceso actual termine de ejecutarse. (equilibrado entre CPU y E/S) ± Calendarización de memoria.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. ± Si es menor. ± Cuando llega un trabajo nuevo.

Calendarización en sistemas por lotes Calendarización de tres niveles 11 .

¿Cuánto hace que el proceso se intercambió a disco? 2. ¿Qué tan importante es el proceso? 12 . ¿Cuánto tiempo de CPU ha tenido el proceso presente? 3. ¿Qué tan grande es el proceso? 4.Preguntas para multiprogramación 1.

13 . ‡ Cuanto grande. a cada proceso se le asiga un intervalo de tiempo. 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. ± Interesante: magnitud del cuanto.Calendarización en sistemas interactivos ‡ Calendarización Round Robin (turno circular) ± Actúa como una FIFO. llamado cuanto. ‡ Cuanto pequeño. ± (a) Lista de procesos ejecutables ± (b) Lista de procesos ejecutables después de que B gasta su cuanto. se atiende al siguiente.

± Otra alternativa. donde f=la fracción del ultimo cuanto que gasto un proceso).Calendarización en sistemas interactivos ‡ Calendarización por prioridades ± R-R tiene el supuesto que todos los procesos tienen la misma prioridad. 14 . el calendarizador podría decrementar la prioridad del proceso que se está ejecutando en cada interrupción del reloj. ± Para evitar que los procesos con prioridades altas se ejecuten de manera indefinida. ± A cada proceso se le asigna una prioridad y el proceso listo que tenga la prioridad mas alta es la que se ejecuta. ± Otra manera. es asignar a cada proceso un cuanto de tiempo máximo. es dar prioridad a procesos de E/S. ± Las prioridades pueden asignarse de forma estática o dinámica (1/f.

Calendarización en sistemas interactivos ±En muchos casos. 15 . 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. Algoritmo de calendarización con cuatro 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. ± Estrategia: estimar los valores con base en comportamientos anteriores y ejecutar el proceso que tenga el tiempo de ejecución estimado mas corto. ‡ Proceso mas corto a continuación ± Este algoritmos produce el tiempo de respuesta promedio mas bajo en los sistemas por lotes. se le bajaba a la clase inmediata inferior.Calendarización en sistemas interactivos ‡ Multiples colas ± Establece clases de prioridad. 16 .

± Para cumplir la promesa: necesita llevar la cuenta de cuanto tiempo de CPU ha recibido cada proceso desde su creación. 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. en el que están ejecutándose n procesos.Calendarización en sistemas interactivos ‡ Caledarización garantizada ± Hacer a los usuarios promesas reales en cuanto al desempeño y luego cumplirlas. 17 . ± Si hay n usuarios en sesión. ± Puesto que también se conoce el tiempo de CPU que ha tenido cada proceso. que sería el tiempo dividido entre n. ± Asimismo. Luego se calcula el tiempo de CPU al que cada uno tiene derecho. cada uno recibirá aproximadamente 1/n de la capacidad de la CPU. cada uno deberá recibir 1/n de los ciclos de CPU. ± Así. se puede calcular el cociente del tiempo de CPU consumido realmente entre el tiempo al que el proceso tiene derecho. en un sistema monousuario.

sin embargo es tolerable.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. 18 . ± De tiempo real suave: no es conveniente fallar en un tiempo límite en ocasiones. ‡ 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.

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 .Calendarización en sistemas en tiempo real ‡ Por lo general estos procesos tienen tiempos de vida cortos. ‡ Cuando se detecta un evento externo.

Ci § P e1 i !1 i m 20 . ‡ Entonces la carga sólo podrá manejarse si: ‡ Y recibe el nombre de planificable. 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.Calendarización en sistemas en tiempo real ‡ Dependiendo de cuánto tiempo requiera cada evento para su procesamiento.

200 y 500 mseg.15+0. 21 .2<1. ‡ Si estos eventos requieren 50.5+0. el sistema es planificable debido a que 0.Calendarización en sistemas en tiempo real ‡ Ejemplo: considere un sistema de tiempo real con tres eventos periódicos. de tiempo de CPU por evento. 30 y 100 mseg. respectivamente. ‡ Si se agrega un cuarto evento con un periodo de 1 segundo. con periodos de 100. el sistema seguira siendo planificable mientras que este evento no requiera más de 150mseg de tiempo de CPU. respectivamente.

Sign up to vote on this title
UsefulNot useful