Tenemos un sistema operativo con un algoritmo de planificación

Anuncio
E. U. de Informática
Examen Final de Sistemas Operativos I
Departamento de Informática Aplicada
12 de diciembre de 2001
EJERCICIO 3 (3’5 puntos)
Tiempo estimado: 75 m
Tenemos un sistema operativo con un algoritmo de planificación similar al de linux, tal y como se describe a
continuación.
El sistema dispone de dos algoritmos de planificación, uno para procesos de tiempo compartido y otro para
procesos de tiempo real. Cada proceso puede acogerse a cualquiera de estas dos políticas de planificación.
Para los procesos de tiempo compartido se utiliza un algoritmo basado en créditos. Cada proceso dispone de
un número de créditos, de tal manera que para seleccionar el siguiente proceso a ejecutarse, se elige al que
tiene más créditos acumulados. Cada vez que se produce una interrupción de reloj, el proceso en ejecución
pierde un crédito; cuando su número de créditos llega a cero, pierde la CPU y se selecciona otro proceso.
Cuando no queda ningún proceso preparado con créditos, el sistema vuelve a asignar créditos a todos los
procesos del sistema en función de su prioridad según la regla siguiente:
Créditos = (Créditos_Restantes / 2) + Prioridad.
Para los procesos de tiempo real, el sistema siempre concede la CPU al proceso de mayor prioridad,
implementando dos algoritmos por prioridad expulsores: FIFO y Round Robin. Cada proceso de tiempo real
debe indicar a cual de los dos se acoge. En el algoritmo FIFO no se le quita la CPU a no ser que pase a
preparado un proceso de mayor prioridad. En el algoritmo Round Robin, la CPU se reparte en idénticas
rodajas de tiempo entre los procesos que tengan la misma prioridad.
El sistema solo ejecutará un proceso de tiempo compartido si no hay ningún proceso de tiempo real preparado
para ejecutar.
1.- (0.7 ptos.) Dadas las siguientes estructuras de datos, indica qué nuevas estructuras de datos y/o
modificaciones a las ya existentes introducirías para dar soporte al algoritmo de planificación descrito, teniendo
en cuenta que las estructuras de datos deben permitir accesos eficientes a la información.
const maxProcesos = 50;
type idProceso = 0..maxProcesos;
descriptorProceso = record
pid
: idProceso;
siguiente : idProceso;
end;
colaProcesos =
var
record
primero : id Proceso := 0;
ultimo : idProceso := 0;
end;
procesos
: array [1..maxProcesos] of descriptorProceso:
enEjecucion : idProceso; (* Identificador del proceso en ejecución *)
preparados : colaProcesos;
2.- (0.5 ptos.) El efecto de la ejecución de algunas rutinas puede (no siempre) provocar la realización de un
cambio de contexto. Rellena la siguiente tabla indicando, para cada una de las rutinas de la primera columna y
para los dos algoritmos de planificación indicados en la primera fila:
SÍ: si en algunas circunstancias puede provocar un cambio de contexto
NO: si nunca provocarán cambio de contexto
Round Robin
Algoritmo descrito
(puro)
similar a linux
Subir (Semaforo)
Bajar (Semaforo)
Rutina Tratam. Interrup. por finalización de E/S
Crear_Proceso
Dormir (Lapso_Tiempo)
3.- (0.8 ptos.) Supongamos que las rodajas de tiempo del sistema son de 2 unidades de tiempo (u.t.). En el
sistema existen, en un momento dado, los procesos indicados en la siguiente tabla, para los cuales se indica las
unidades de tiempo de CPU que necesitan y entre paréntesis el número de unidades de tiempo que están
bloqueados en espera de E/S. Por ejemplo, P1 necesita inicialmente 4 u.t de CPU, a continuación se bloquea
durante 10 u.t y finalmente necesita 4 u.t. más de CPU. Además, se especifica el tipo de proceso que es cada
uno.
Tiempos
P1
P2
P3
P4
Tipo de Proceso
4 (10) 4
Tiempo Real FIFO con prioridad 20
3 (3) 3
Tiempo Real Round Robin con prioridad 10
3 (3) 3
Tiempo Real Round Robin con prioridad 10
4 (2) 2
Tiempo Compartido
(prioridad 20 > prioridad 10)
Dibuja un cronograma que indique el orden en que se ejecutarán los procesos, suponiendo que todos están
preparados en el instante cero y que el orden de llegada ha sido P1, P2, P3 y P4.
4.- (0.7 ptos.) Supongamos que en el sistema existen los procesos indicados en la siguiente tabla.
P1
P2
P3
P4
Tiempos
5 (7) 5 (7) 5
4 (3) 2
Tcpu-P3
3
Tipo de Proceso
Tiempo Real con prioridad 20 y FIFO
Tiempo Real con prioridad 10 y Round Robin
Tiempo Real con prioridad 10 y Round Robin
Tiempo Compartido
Sabemos que:
 el tiempo de retorno de P2 es MENOR que el tiempo de retorno de P1
 el tiempo de retorno de P3 es MENOR que el tiempo de retorno de P1
entendiendo por tiempo de retorno el tiempo que un proceso tarda en ejecutarse completamente.
Calcula el tiempo máximo de CPU que puede llegar a tener el proceso P3 (máximo Tcpu-P3) para que se
cumplan las dos condiciones anteriores. Razona la respuesta.
5.- (0.8 ptos.) Sabemos que en el sistema se produce una interrupción de reloj cada 2 u.t. Con cada
interrupción de reloj se finaliza una rodaja de tiempo para los procesos de tiempo compartido.
Supongamos que en el sistema existen los procesos indicados en la siguiente tabla, donde Créditos (Pn) indica el
número de créditos que tiene el proceso Pn.
P1
P2
P3
P4
Tiempos
5 (20) 8
3 (6) 2
22
5
Tipo de Proceso
Tiempo Real con prioridad 20 y FIFO
Tiempo Real con prioridad 10 y Round Robin
Tiempo Compartido con Créditos(P3)
Tiempo Compartido con Créditos(P4)
Considerando la siguiente situación:
 Créditos (P3) es MAYOR que los Créditos (P4)
 el proceso P4 tiene suficientes créditos para acabar su ejecución antes de que se le agoten
 el tiempo de retorno de P4 es menor que el tiempo de retorno de P1
indica el número máximo de Créditos(P3) para que se cumpla la situación descrita. Razona la respuesta.
E. U. de Informática
Departamento de Informática Aplicada
Examen Final de Sistemas Operativos I
12 de diciembre de 2001
Apellidos ................................................................................................................................................
Nombre ......................................................................... Nº de Matrícula :
EJERCICIO 3. Solución
1) Estructuras de datos
2) Realización de cambios de contexto
Round Robin
(puro)
Algoritmo descrito
similar a linux
Subir (Semaforo)
Bajar (Semaforo)
Rutina Tratam. Interrup. por finalización de E/S
Crear_Proceso
Dormir (Lapso_Tiempo)
3) Cronograma
Notación: Una línea continua indica que el proceso se está ejecutando durante esa u.t.
P4
P3
P2
P1
5
10
15
20
25
30
35
40
u.t.
4) Máximo Tcpu-P3
Valor máximo:
Razonamiento:
5) Máximo Créditos(P3)
Valor máximo:
Razonamiento:
Descargar