P. 1
Calendarizacion

Calendarizacion

|Views: 1.017|Likes:
Publicado porraslocks

More info:

Published by: raslocks on Nov 01, 2010
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PPT, PDF, TXT or read online from Scribd
See more
See less

05/21/2013

pdf

text

original

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

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

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

± 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. ‡ 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. se le suspende y el calendarizador escoge otro proceso. no lo suspenderá por la fuerza. aunque el proceso se ejecute por horas. 5 .Decisión de calendarización: ‡ Puede tomarse en cada interrupción de reloj o en cada k-ésima interrupción de reloj.

6 . ± Tiempo real. Lo que el algoritmo debe optimizar no es lo mismo en todos los sitemas. ‡ Tres entornos: ± Por lotes. ± Interactivo.Categorías de los algoritmos de calendarización ‡ El algoritmo de calendarización depende del entorno en que se usará.

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

8 . ‡ Sistemas de tiempo real ± Cumplir los plazos: evitar la pérdida de datos. ± Predecibilidad: evitar la degradación de la calidad en sistemas multimedia. ± 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.

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

‡ 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. ± Calendarización de CPU. 10 . (equilibrado entre CPU y E/S) ± Calendarización de memoria. ± Cuando llega un trabajo nuevo. ± Es preciso conocer con anticipación los tiempos de ejecución.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. (Grado de multiprogramación Criterios). ± Si es menor. el proceso actual se suspende y se pone en marcha el trabajo recien llegado.

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

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

a cada proceso se le asiga un intervalo de tiempo. llamado cuanto.Calendarización en sistemas interactivos ‡ Calendarización Round Robin (turno circular) ± Actúa como una FIFO. ± Interesante: magnitud del cuanto. ‡ Cuanto grande. ‡ Cuanto pequeño. 13 . se atiende al siguiente. ± (a) Lista de procesos ejecutables ± (b) Lista de procesos ejecutables después de que B gasta su cuanto. durante el que se le permitirá ejecutarse. se le expropia la CPU y se forma nuevamente. Si el cuanto expira y el proceso aún no.

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

15 . Algoritmo de calendarización con cuatro clases de prioridad. pero calendarización por turno circular dentro de cada clase.Calendarización en sistemas interactivos ±En muchos casos. es conveniente agrupar los procesos en clases de prioridad y utilizar calendarización por prioridades entre las clases.

16 .Calendarización en sistemas interactivos ‡ Multiples colas ± Establece clases de prioridad. ‡ 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. se le bajaba a la clase inmediata inferior. Los de la clase siguiente dos cuantos« ± Cada vez que un proceso se gastaba todos los cuantos asignados. ± A los procesos de la clase más alta se ejecutan durante un cuanto.

± Si hay n usuarios en sesión. Luego se calcula el tiempo de CPU al que cada uno tiene derecho. en el que están ejecutándose n procesos. cada uno deberá recibir 1/n de los ciclos de CPU. hasta que el cociente rebase al de su competidor mas cercano. cada uno recibirá aproximadamente 1/n de la capacidad de la CPU. ± Puesto que también se conoce el tiempo de CPU que ha tenido cada proceso. el algoritmo consiste entonces en ejecutar el proceso cuyo cociente es más bajo.Calendarización en sistemas interactivos ‡ Caledarización garantizada ± Hacer a los usuarios promesas reales en cuanto al desempeño y luego cumplirlas. que sería el tiempo dividido entre n. ± Asimismo. ± Así. en un sistema monousuario. se puede calcular el cociente del tiempo de CPU consumido realmente entre el tiempo al que el proceso tiene derecho. 17 . ± Para cumplir la promesa: necesita llevar la cuenta de cuanto tiempo de CPU ha recibido cada proceso desde su creación.

± De tiempo real suave: no es conveniente fallar en un tiempo límite en ocasiones. sin embargo es tolerable. 18 .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. donde el comportamiento de cada uno de estos es predecible y se conoce de antemano. ‡ El comportamiento en tiempo real se logra dividiendo el programa en varios procesos.

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

Calendarización en sistemas en tiempo real ‡ Dependiendo de cuánto tiempo requiera cada evento para su procesamiento. ‡ 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. Ci § P e1 i !1 i m 20 . tal vez ni siquiera sea posible manejarlos todos.

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

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->