Apunte de la clase de scheduling Sistemas operativos Verano - 2009 1. Comparando schedulers Usaremos los siguientes procesos: Proceso P1 P2 P3 P4 P5 Procesamiento 40 ms 20 ms 70 ms 10 ms 30 ms Llegada 0 ms 0 ms 30 ms 40 ms 60 ms Prioridad 2 2 1 3 2 Graficaremos el uso del procesador según pasa el tiempo para distintos tipos de scheduler. También calcularemos el tiempo de espera promedio. El tiempo de espera de una tarea es la cantidad de tiempo que pasa desde que una tarea “llega” al sistema hasta que recibe el procesador. En caso de que una tarea sea desalojada (por ejemplo en round robin o en prioridades con desalojo), debe también considerarse como tiempo de espera aquel tiempo que pasa desde que la tarea es desalojada hasta que vuelve a recibir el procesador. 1.1. FIFO (first in first out) También conocido como FCFS (first come first served ). Se trata de una simple cola de procesos listos, los cuales se ejecutan en orden de llegada. La ejecución de cada proceso se realiza hasta que éste termina, sin ningún tipo de interrupción. Tiempo de espera promedio para FIFO: P1 P2 P3 P4 P5 z}|{ z}|{ z}|{ z}|{ z}|{ 0 + 40 + 30 + 90 + 80 = 48 5 1.2. SJF (shortest job first) Se tiene un conjunto de procesos listos. Se ejecuta primero el que requiera menor tiempo de ejecución. No hay ningún tipo de desalojo; cada proceso ejecuta hasta terminar. Tiempo de espera promedio para SJF: P1 P2 P3 P4 P5 z}|{ z}|{ z}|{ z}|{ z}|{ 20 + 0 + 70 + 20 + 10 = 24 5 1 Figura 1: FIFO Figura 2: SJF 1.3. SRT (shortest remaining time) Tal como en SJF, se tiene un conjunto de procesos listos y se ejecuta el que requiera menor tiempo de ejecución. Si ingresa un nuevo proceso listo mientras se está ejecutando otro, se evalúa cuánto le queda al proceso actual por terminar y cuánto requiere el proceso nuevo. Si el proceso recién ingresado requiere menos, se desaloja al proceso actual y se ejecuta al recién llegado. Tener en cuenta que para realizar todos los cálculos se usa el tiempo que resta para finalizar la ejecución, el cual se calcula restándole el tiempo que ya se ejecutó un proceso a su tiempo total requerido (dado en la tabla). Tiempo de espera promedio para SRT: P1 P2 P3 P4 P5 z }| { z}|{ z}|{ z}|{ z}|{ 20 + 10 + 0 + 70 + 0 + 10 ' 18,33 6 2 Figura 3: SRT 1.4. Round robin En un esquema round robin se tiene una cola de procesos listos y una ventana de tiempo llamada quantum. Se ejecuta el primer proceso de la cola hasta que este termine o se agote su quantum, lo que suceda primero. Si el proceso no terminó su ejecución se lo ubica al final de la cola y se prosigue con el siguiente proceso. Figura 4: Round Robin con un quantum de 10 ms Tiempo de espera promedio para RR con quantum de 10 ms: P1 P2 P3 P4 P5 z }| { z }| { z }| { z}|{ z }| { 0 + 10 + 10 + 20 + 10 + 10 + 20 + 20 + 10 + 10 + 10 + 20 + 30 + 10 + 10 ' 13,33 15 Tiempo de espera promedio para RR con quantum de 20 ms: P1 P2 P3 P4 P5 z }| { z}|{ z }| { z}|{ z }| { 0 + 20 + 20 + 30 + 30 + 10 + 40 + 30 + 20 ' 22,22 9 3 Figura 5: Round Robin con un quantum de 20 ms Figura 6: Round Robin con un quantum de 50 ms Tiempo de espera promedio para RR con quantum de 50 ms: P1 P2 P3 P4 P5 z}|{ z}|{ z }| { z}|{ z}|{ 0 + 40 + 30 + 40 + 70 + 60 = 40 6 1.5. Prioridades sin desalojo Cada proceso tiene una prioridad dada por un número; cuanto menor el número, mayor prioridad. Se tiene un conjunto de procesos listos. Se ejecuta de todos ellos, el de mayor prioridad1 . No hay desalojo. Tiempo de espera promedio para prioridades sin desalojo: P1 P2 P3 P4 P5 z}|{ z}|{ z}|{ z}|{ z}|{ 0 + 40 + 30 + 120 + 70 = 52 5 1 En caso de haber más de uno, se desempata usando otro criterio, por ejemplo, orden de llegada (FIFO). 4 Figura 7: Prioridades sin desalojo 1.6. Prioridades con desalojo Similar al esquema anterior. La diferencia radica en que si arriba al sistema un nuevo proceso cuya prioridad es mayor al proceso en ejecución, se desaloja éste y se ubica en su lugar al proceso recién llegado. Figura 8: Prioridades con desalojo Tiempo de espera promedio para prioridades con desalojo: P1 P2 P3 P4 P5 z }| { z}|{ z}|{ z}|{ z}|{ 0 + 90 + 100 + 0 + 120 + 70 ' 63,33 6 5 2. 2.1. Diseño de schedulers de uso especı́fico iCHONG El nuevo iCHONG es un teléfono de última generación. A sus usuarios les encanta jugar juegos, leer documentos o sacar fotos, sin embargo es vital que si ingresa una llamada mientras se realizan una de estas tareas, la misma sea recibida correctamente y de forma inmediata. Al finalizar la llamada el usuario prosigue con lo que estaba haciendo, como si nada hubiera sucedido. Diseñar un scheduler que contemple estas restricciones. ¿Es necesario que un proceso del sistema operativo chequee si hay nuevas llamadas entrantes a intervalos regulares? Si su solución involucraba este mecanismo, mejórela para evitar el uso innecesario del procesador. Tips para la solución: ¿La solución requiere un scheduler apropiativo o uno cooperativo? Para la segunda parte, recordar el taller de IPC y las formas de evitar la espera activa. 6