Está en la página 1de 33

E.U. de Informtica-U.P.M.

Sistemas Operativos
Febrero 2007





















SISTEMAS OPERATIVOS

Problemas escogidos
















E.U. de Informtica-U.P.M. Sistemas Operativos



E.U. de Informtica-U.P.M. Sistemas Operativos
i
A continuacin se presenta una seleccin de problemas que han sido objeto de examen de Sistemas
Operativos en cursos anteriores.
La tabla siguiente refleja, agrupados por temas, los problemas seleccionados, la convocatoria en la que se
pusieron, as como un breve comentario de los aspectos sobre los que se pregunta y referencia a la pgina
de este documento donde aparece el enunciado.

Tema Ejer. Fecha Comentario Pgina
Procesos
2 31/01/95 Seguimiento sencillo de RR, SJF y prioridades 1
3 18/01/97 Clculo de tiempo de retorno, rendimiento y eficiencia 3
2 10/09/03 Threads en nivel de usuario y de S.O. (aptdos. 1, 2c, 3) 4
3 02/09/99 Implementar dormirse (segundos) 6
2 08/09/04 Seguimiento de poltica de planificacin tipo tiempo real 7
2 15/12/04 Programacin de rutinas de planificacin tipo tiempo real 8
3 12/12/01 Planificacin tipo Linux 10
2 14/12/05 Polticas de planificacin para sistemas interactivos 13
Memoria
2 8/06/04 Clculos sobre particiones variables y paginacin 15
3 17/09/01 Organizacin general de la paginacin 16
3 02/07/01 Paginacin y organizar rea swap con lista encadenada 17
2 12/12/01 Tabla de Pginas de dos niveles 19
3 14/06/03 Tabla de Pginas Invertida 21
3 15/12/04 Introduccin a la segmentacin 22
E/S
12 (cap.5 Tanen.) Tiempos de transferencia en una red xx
14 (cap.5 Tanen.) Estructura de un disco: cilindros, pistas y sectores xx
20 (cap.5 Tanen.) Tiempos de lectura en disco flexible xx
24 (cap.5 Tanen.) Algoritmos de planificacin de disco (1) xx
25 (cap.5 Tanen.) Algoritmos de planificacin de disco (2) xx
3 17/06/05 Accesos a disco 23
Ficheros
3 13/09/96 Sistema de tipo UNIX y creacin de estructura 24
3 25/06/97 Similar al anterior mezclando MS/DOS y UNIX 26
3 10/12/03 UNIX tratando cach de bloques 28
3 14/12/05 Accesos a bloques de disco correspondientes a un fichero 29
E.U. de Informtica-U.P.M. Sistemas Operativos



E.U. de Informtica-U.P.M. Sistemas Operativos
1

E. U. de Informtica Departamento de Informtica Aplicada
Examen Final de Sistemas Operativos I 31 de Enero de 1995

EJERCICIO 2 (4 puntos) Tiempo estimado: 60m.

Disponemos de un sistema con multiprogramacin implementado con un solo procesador en el cual se
ejecutan los tres procesos descritos a continuacin:

Proceso P1
Instante de llegada: 0
Prioridad: Baja
Estructura del proceso: 27 mseg de utilizacin de U.C.P.,
seguidos de 10 mseg de acceso a E/S
y finalizando con 5 mseg de U.C.P.

Proceso P2
Instante de llegada: 5
Prioridad: Media
Estructura del proceso: 25 mseg de utilizacin de U.C.P.,
seguidos de 20 mseg de acceso a E/S
y finalizando con 5 mseg de U.C.P.

Proceso P3
Instante de llegada: 8
Prioridad: Alta
Estructura del proceso: 8 mseg de utilizacin de U.C.P.,
seguidos de 10 mseg de acceso a E/S
y finalizando con 5 mseg de U.C.P.

No se debe olvidar que adems de estos procesos, existe un proceso ocioso cuyo fin es utilizar la U.C.P.
mientras no la necesite ningn otro proceso. Adems, vamos a considerar que el tiempo necesario para
efectuar el cambio de contexto es nulo.

El objeto de este ejercicio es analizar el comportamiento de los distintos procesos en funcin de diferentes
polticas de planificacin de U.C.P. Para la respuesta se utilizarn los grficos proporcionados en la hoja
de respuestas.

Teniendo en cuenta todo lo anterior, se pide completar los grficos (sombreando los instantes en que cada
proceso est utilizando el procesador) correspondientes a cada una de las siguientes polticas de
planificacin:

1.- Round-Robin (expulsora) con rodajas de tiempo de 10 mseg.

2.- Ms-Corto-Primero (no expulsora). Considerando el tiempo total de U.C.P.

3.- Prioridades (no expulsora).

4.- Prioridades (expulsora).

E.U. de Informtica-U.P.M. Sistemas Operativos
2
SISTEMAS OPERATIVOS I 31 de enero de 1995
Hoja de Respuestas del EJERCICIO 2

APARTADO 3
0 5 10


15


20


25 30


35


40


45


50


55

60


65


70


75 80


85


90


95


tiempo (mseg.)
OCIOSO

P3

P2

P1

APARTADO 1
APARTADO 2
APARTADO 4
0 5 10


15


20


25 30


35


40


45


50


55

60


65


70


75 80


85


90


95


tiempo (mseg.)
OCIOSO

P3

P2

P1

0 5 10


15


20


25 30


35


40


45


50


55

60


65


70


75 80


85


90


95


tiempo (mseg.)
OCIOSO

P3

P2

P1

0 5 10


15


20


25 30


35


40


45


50


55

60


65


70


75 80


85


90


95


tiempo (mseg.)
OCIOSO

P3

P2

P1

E.U. de Informtica-U.P.M. Sistemas Operativos
3

E. U. de Informtica Departamento de Informtica Aplicada
Examen Final de Sistemas Operativos I 18 de enero de 1997

EJERCICIO 3 (3,5 puntos) Tiempo estimado: 1h 30 m.

Un entorno monoprocesador soporta un sistema operativo multiproceso que solo est ejecutando procesos
con cdigo y datos idnticos. Cada proceso requiere N periodos de tiempo T para completar su ejecucin.
En cada periodo de tiempo T, emplea la primera mitad en realizar E/S y la segunda mitad en ejecutarse en
el procesador. El algoritmo de planificacin empleado es Round-Robin con una rodaja de tiempo de T/2.

Sean las siguientes definiciones:
TIEMPO DE RETORNO (
R
t
): tiempo total necesario para que un proceso se ejecute
completamente.
TIEMPO MEDIO DE RETORNO (
R
T
): media aritmtica de los tiempos de retorno de cada proceso.
RENDIMIENTO ( R): nmero de procesos terminados por periodo de tiempo T.
EFICIENCIA ( E ): porcentaje de tiempo en el que la cpu est activa.

SE PIDE:

1. Suponiendo que
todos los procesos pueden realizar simultneamente operaciones de E/S
se considera que el tiempo empleado en cambio de contexto en despreciable
el valor de N puede tomar valores pequeos.
Indicar el tiempo medio de retorno
R
T
, el rendimiento R por periodo de tiempo T y la eficiencia E,
en funcin de N y T, cuando en el sistema se estn ejecutando:
a) 1 proceso
b) 2 procesos
c) 4 procesos

2. Calcular el valor de la eficiencia para los tres casos anteriores si:
a) N= 4
b) N=16

3. Analice los resultados obtenidos con respecto a la eficiencia.
E.U. de Informtica-U.P.M. Sistemas Operativos
4

E. U. de Informtica Departamento de Informtica Aplicada
Examen Final de Sistemas Operativos I 10 de Septiembre de 2003

EJERCICIO 2 (puntuacin 35 puntos) Tiempo Estimado: 60 m
Se cuenta con un sistema operativo multiproceso tradicional, en el que cada proceso cuenta con un nico hilo de
ejecucin o thread. Sin embargo, se pretende que los procesos de usuario puedan ser multihilo, es decir, cuenten
con varios threads de ejecucin. Para conseguirlo, se proporciona una biblioteca, por encima del sistema operativo,
que ofrece funciones para crear y destruir threads, as como para establecer la poltica de planificacin de dichos
threads dentro del proceso, como se puede ver en la siguiente figura:






















En este modelo, cuando el sistema operativo asigna al proceso de usuario una porcin de procesador mediante la
poltica planificacin Round Robin, dentro del proceso se reparte dicho tiempo entre los threads creados, segn la
poltica de planificacin local establecida en la biblioteca, en este caso es FIFO.

Adems, todas las estructuras necesarias para mantener los threads de un proceso se crean dentro del espacio del
proceso, incluida una tabla de bloques de control de threads (Tabla de BCT`s).
Hay que destacar que, al crear los threads en el nivel de usuario, estos threads no existen para el sistema operativo:
para el ncleo la unidad de planificacin es el proceso.

Suponiendo que el sistema operativo utiliza Round Robin con una porcin de tiempo de 100 ms y que se crean
simultneamente dos procesos P1 y P2 (estando P1 el primero en la cola de preparados) cuyo cdigo es el
siguiente:

P1 P2
(1) Usa cpu (50 ms) Usa cpu (30 ms)
(2) Hace una llamada al sistema bloqueante (100 ms)
(3) Usa cpu (10 ms)
(4) Usa cpu (30 ms)

Se pide:

1) Dibuje el cronograma relativo a los procesos P1, P2 y el proceso ocioso para los casos siguientes:
a) El proceso P1 es monohilo.
b) El proceso P1 tiene dos hilos: el hilo P1
A
ejecuta las tres primeras instrucciones (1, 2 y 3) y el hilo P1
B

ejecuta la ltima (4). Se supone que P1
A
est antes que P1
B
en la cola de preparados.
Proceso de
usuario



BCTs
T
1

T
2



P
n
P
1

Cola de preparados
BCPs
P1

Pn

cpu
Sistema
Operativo
Round
Robin
FIFO
Proceso de
usuario P
1

Thread
2
Thread
1

E.U. de Informtica-U.P.M. Sistemas Operativos
5


2) Ahora se desea que la gestin de threads se haga desde dentro del sistema operativo, para que la unidad mnima
de planificacin sea el thread y no el proceso, por lo que es necesario modificar el ncleo, tal como se ve en la
figura:



a) Indique todos los campos de las estructuras que introducira o modificara para que el ncleo pueda
soportar threads.
b) Proponga las especificaciones de las llamadas al sistema que permitan crear y destruir threads.
c) Repita el cronograma para el proceso P1 multihilo y P2, siendo el orden inicial en la cola de preparados
P1
A
, P1
B
y P2.


3) Explique razonadamente qu ventajas e inconvenientes ve en el uso de los threads:
a) Implementados en el espacio de usuario.
b) Implementados dentro del sistema operativo.


T
n
T
2
T
1

Cola de preparados
BCPs
P1

Pn






cpu
Sistema
Operativo
Round
Robin
Proceso de
usuario P
1
?
T
2
T
1

E.U. de Informtica-U.P.M. Sistemas Operativos
6

E. U. de Informtica Departamento de Informtica Aplicada
Examen Final de Sistemas Operativos I 2 de Septiembre de 1999

EJERCICIO 3 (4 puntos) Tiempo: 60 min.
En un sistema monoprocesador, se desea implementar la parte del Sistema Operativo que permite que los procesos
se duerman durante un cierto tiempo. En concreto, dar soporte a la llamada al sistema cuyo perfil es el siguiente:
PROCEDURE dormirse (segundos: in POSITIVE);
Cuando un proceso ejecute esta llamada, el Sistema Operativo debe garantizar que el proceso en cuestin se
duerme (deja la posesin de la UCP) durante al menos los segundos indicados, tomando control lo antes posible
una vez transcurrido dicho tiempo y respetando siempre la poltica de planificacin del sistema.

Se dispone de una interrupcin peridica que sucede cada 100 milisegundos, cuya rutina de tratamiento asociada
denominaremos rutinaReloj.

Para la gestin de procesos, el Sistema Operativo tiene, entre otras, las estructuras de datos siguientes:

maxProcesos : constant := 50;
type idProceso is INTEGER range 0..maxProcesos;
type descriptorProceso is
record
pid : idProceso; -- El identificador del proceso
siguiente: idProceso; -- Para encadenar descriptores en colas
-- Resto de campos
end record;
type colaProcesos is
record
primero: idProceso := 0;
ultimo : idProceso := 0;
end record;
procesos : array [1..maxProcesos] of descriptorProceso;
enEjecucion: idProceso; -- Identificador del proceso en ejecucion
preparados : colaProcesos;

Se pide:
1. Indica qu nuevas estructuras de datos y/o modificaciones a las ya existentes, introduciras para dar soporte a
este servicio que permite dormirse a los procesos.
2. Describe las acciones que ejecutar el Sistema Operativo desde que toma control debido a que un proceso
llama a dormirse, hasta que devuelve el control al siguiente proceso a ejecutar. Se puede mezclar lenguaje
formal tipo Ada con expresiones informales del tipo: se salva el estado del proceso en ejecucin, se mete al
proceso en ejecucin en la cola de preparados, etc.
3. Describe, con el mismo nivel de detalle que en el punto anterior (2), las acciones que ejecutar la rutina del
Sistema Operativo rutinaReloj, supuesto que la misma slo se utiliza para poder dar soporte a dormirse.
4. Supuesta planificacin mediante Round-Robin con rodajas de tiempo de 500 milisegundos y que un proceso
ejecuta dormirse (5), indica (lo ms aproximado que puedas) cul es el tiempo mximo que dicho proceso
estar bloqueado y cul es el tiempo mximo que puede transcurrir desde que el proceso se duerme hasta que
dicho proceso vuelve a tener la UCP. Raznalo.
5. Responde a lo mismo que en (4) pero suponiendo ahora planificacin por prioridades.
Nota: En los apartados 1, 2 y 3 no se trata de implementar la solucin ms eficaz, basta con una que funcione de
forma razonable.

E.U. de Informtica-U.P.M. Sistemas Operativos
7

E. U. de Informtica Departamento de Informtica Aplicada
Examen Final de Sistemas Operativos I 8 de septiembre de 2004

EJERCICIO 2 (3,5 puntos) Tiempo estimado: 50 min.

Sea un sistema de planificacin de procesos por prioridades expulsor. A cada proceso se le asigna una prioridad fija
cuando se crea que consiste en un nmero entero positivo; a mayor valor, mayor prioridad. Sean tres procesos A, B
y C con prioridades 33, 25 y 20 respectivamente. Estos procesos tienen que ejecutarse peridicamente cada 30, 40
y 50 ms. respectivamente. Esto quiere decir que, por ejemplo, el proceso A debe ejecutarse una vez entre los
instantes 0 y 30 ms.; otra vez entre los instantes 30 y 60 ms; y as sucesivamente. En cada activacin el proceso A
consume 10 ms. de CPU, el proceso B consume 15 ms. y el proceso C consume 5 ms.

Nota: En el instante t = 0, los tres procesos A, B y C estn preparados y ninguno de ellos realizar operaciones de
E/S.

SE PIDE:.

1) Dibuje un diagrama de tiempos (hasta el instante t=110) donde se aprecie los periodos de tiempo (para cada
proceso) en los que se est ejecutando. Qu proceso se est ejecutando en el intervalo 25..30? Y en el
intervalo 70..75? Y en el intervalo 90..95?

2) Suponga ahora que el tiempo de ejecucin para el proceso A es de 15 ms. en lugar de 10 ms.
(mantenindose igual el resto de los datos). Dibuje un diagrama de tiempos (hasta el instante t=60) donde
se aprecie los periodos de tiempo (para cada proceso) en los que se est ejecutando. Qu proceso se est
ejecutando en el intervalo 15..20? Y en el intervalo 30..35? Y en el intervalo 45..50?

3) En las condiciones del apartado 2, suponga ahora que cambiamos el planificador tal que el nuevo
planificador (con poltica expulsora) selecciona al proceso cuyo fin de periodo est ms prximo a vencer.
Dibuje un diagrama de tiempos (hasta el instante t=85) donde se aprecie los periodos de tiempo (para cada
proceso) en los que se est ejecutando. Qu proceso se est ejecutando en el intervalo 35..40? Y en el
intervalo 50..55? Y en el intervalo 80..85?
E.U. de Informtica-U.P.M. Sistemas Operativos
8
E. U. de Informtica Departamento de Informtica Aplicada
Examen Final de Sistemas Operativos I 15 de diciembre de 2004

EJERCICIO 2 (3.5 puntos) Tiempo estimado: 60 m

Queremos disear el planificador de procesos de un sistema operativo que se va a utilizar para soportar
especficamente procesos multimedia. En este tipo de sistemas las aplicaciones se caracterizan por tener que
ejecutarse dentro de unos rangos de velocidad determinados, por ejemplo, un proceso encargado de
visualizar un vdeo deber ejecutarse de una forma ms o menos continua, sin parones ni acelerones. Para
ello, al crear un proceso se realiza una reserva de CPU al sistema operativo.
En esta reserva se especifican dos parmetros: Tiempo de Cmputo (C) y Periodo (P). El sistema operativo
deber encargarse de ejecutar este proceso durante
C unidades de tiempo (u.t.) cada P u.t. La ejecucin
de las C u.t. puede hacerse en cualquier punto del
intervalo, pero siempre dentro de las P u.t. Adems,
la ejecucin de las C u.t. no tiene por qu ser
consecutiva. Las C u.t. de un proceso tendrn como
plazo mximo para finalizar el siguiente instante de
activacin del proceso.
No obstante, para evitar sobrecargas, el sistema tiene que controlar que la necesidad de CPU de todos los
procesos existentes cumpla la condicin:
donde Ci y Pi son los parmetros de reserva de cmputo de los procesos y N es el
nmero de procesos existentes en el sistema.


Si no se va a cumplir esta condicin, al intentar hacer la reserva el sistema operativo devolver el valor 1
como cdigo de error.
El sistema operativo va a seguir una planificacin expulsora EDF (Earlest Deadline First). En esta
planificacin el sistema operativo elige como siguiente proceso a ejecutar aquel que tenga ms prximo el
siguiente plazo de ejecucin, es decir, aquel cuya siguiente activacin est ms prxima.
Se pide:
1) A continuacin se especifica una lista de acciones (desordenadas) que tiene que realizar en algn
momento el sistema operativo y que estn relacionadas con la gestin de procesos:
Seleccionar al siguiente proceso en ejecutar
Desbloquear a los procesos que les toca activarse
Crear un descriptor de proceso
Comprobar si se han cumplido las C u.t. del proceso que est en ejecucin
Actualizar la variable del sistema Instante_Actual, que contiene la hora actual del sistema
Comprobar la necesidad de CPU de los procesos
Estas acciones se llevarn a cabo dentro de diversas rutinas del sistema operativo. Especifique cules sern
dichas rutinas, indicando para cada una de ellas:
Nombre de la rutina
Motivo de activacin de dicha rutina
Acciones (ordenadas) de la lista anterior que tiene que llevar a cabo
Completar la rutina con otras acciones que considere necesarias y que no estn incluidas en la
lista (con un nivel de detalle similar)

Pu.t.
Ejecucin
del proceso
Pu.t. Pu.t.
Cu.t. Cu.t.
Cu.t.
1
Pi
Ci
i=1
N
E.U. de Informtica-U.P.M. Sistemas Operativos
9
2) Dadas las siguientes estructuras de datos.

maxProcesos : constant := 50;

type idProcesos is INTEGER range 0..maxProcesos;

type descriptorProceso is
record
pid : idProceso; -- Identificador de proceso
siguiente : idProceso; -- Apunta al siguiente elemento, para formar una lista
tiempoComputo : integer; -- Tiempo de computo reservado
periodo : integer; -- Periodo indicado en la reserva
siguienteActivacion : integer; -- Instante de la siguiente activacin para el proceso
credito : integer; -- Unidades de tiempo que le queda al proceso por ejecutar durante su activacin
actual
end record;

type colaProcesos is
record
primero : id Proceso := 0;
ultimo : idProceso := 0;
end record;

procesos : array [0..maxProcesos] of descriptorProceso:
enEjecucion : idProceso; -- Identificador del proceso en ejecucin
preparados : colaProcesos;
dormidos : colaProcesos;
instanteActual : integer; -- Reloj creciente que marca el instante actual

Detalle de forma algortmica las siguientes acciones:
Comprobar que se han cumplido las C u.t. del proceso que est en ejecucin
Desbloquear a los procesos que les toca activarse
Crear un descriptor de proceso
Comprobar la necesidad de CPU de los procesos
Seleccionar al siguiente proceso en ejecutar
NOTA: Para especificar operaciones de insertar/sacar elementos de listas no har falta detallar a nivel de
punteros. Bastar con indicar en seudocdigo qu operacin se realiza, con qu elemento y en qu lista.
E.U. de Informtica-U.P.M. Sistemas Operativos
10

E. U. de Informtica Departamento de Informtica Aplicada
Examen Final de Sistemas Operativos I 12 de diciembre de 2001

EJERCICIO 3 (35 puntos) Tiempo estimado: 75 m

Tenemos un sistema operativo con un algoritmo de planificacin similar al de linux, tal y como se
describe a continuacin.
El sistema dispone de dos algoritmos de planificacin, uno para procesos de tiempo compartido y otro
para procesos de tiempo real. Cada proceso puede acogerse a cualquiera de estas dos polticas de
planificacin.
Para los procesos de tiempo compartido se utiliza un algoritmo basado en crditos. Cada proceso dispone
de un nmero de crditos, de tal manera que para seleccionar el siguiente proceso a ejecutarse, se elige al
que tiene ms crditos acumulados. Cada vez que se produce una interrupcin de reloj, el proceso en
ejecucin pierde un crdito; cuando su nmero de crditos llega a cero, pierde la CPU y se selecciona otro
proceso.
Cuando no queda ningn proceso preparado con crditos, el sistema vuelve a asignar crditos a todos los
procesos del sistema en funcin de su prioridad segn la regla siguiente:
Crditos = (Crditos_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 idnticas
rodajas de tiempo entre los procesos que tengan la misma prioridad.
El sistema solo ejecutar un proceso de tiempo compartido si no hay ningn 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 introduciras para dar soporte al algoritmo de planificacin descrito,
teniendo en cuenta que las estructuras de datos deben permitir accesos eficientes a la informacin.
const maxProcesos = 50;
type idProceso = 0..maxProcesos;
descriptorProceso = record
pid : idProceso;
siguiente : idProceso;
end;

colaProcesos = record
primero : id Proceso := 0;
ultimo : idProceso := 0;
end;

var procesos : array [1..maxProcesos] of descriptorProceso:
enEjecucion : idProceso; (* Id. del proceso en ejecucin *)
preparados : colaProcesos;


E.U. de Informtica-U.P.M. Sistemas Operativos
11
2.- (0.5 ptos.) El efecto de la ejecucin de algunas rutinas puede (no siempre) provocar la realizacin 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 planificacin indicados en la primera fila:
S: si en algunas circunstancias puede provocar un cambio de contexto
NO: si nunca provocarn cambio de contexto
Round Robin
(puro)
Algoritmo descrito
similar a linux
Subir (Semaforo)
Bajar (Semaforo)
Rutina Tratam. Interrup. por finalizacin 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 parntesis el nmero de unidades de tiempo
que estn bloqueados en espera de E/S. Por ejemplo, P1 necesita inicialmente 4 u.t de CPU, a
continuacin se bloquea durante 10 u.t y finalmente necesita 4 u.t. ms de CPU. Adems, se especifica el
tipo de proceso que es cada uno.

Tiempos Tipo de Proceso
P1 4 (10) 4 Tiempo Real FIFO con prioridad 20
P2 3 (3) 3 Tiempo Real Round Robin con prioridad 10
P3 3 (3) 3 Tiempo Real Round Robin con prioridad 10
P4 4 (2) 2 Tiempo Compartido
(prioridad 20 > prioridad 10)

Dibuja un cronograma que indique el orden en que se ejecutarn los procesos, suponiendo que todos estn
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.

Tiempos Tipo de Proceso
P1 5 (7) 5 (7) 5 Tiempo Real con prioridad 20 y FIFO
P2 4 (3) 2 Tiempo Real con prioridad 10 y Round Robin
P3 Tcpu-P3 Tiempo Real con prioridad 10 y Round Robin
P4 3 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 mximo de CPU que puede llegar a tener el proceso P3 (mximo Tcpu-P3) para que se
cumplan las dos condiciones anteriores. Razona la respuesta.



E.U. de Informtica-U.P.M. Sistemas Operativos
12
5.- (0.8 ptos.) Sabemos que en el sistema se produce una interrupcin de reloj cada 2 u.t. Con cada
interrupcin 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 Crditos (Pn)
indica el nmero de crditos que tiene el proceso Pn.

Tiempos Tipo de Proceso
P1 5 (20) 8 Tiempo Real con prioridad 20 y FIFO
P2 3 (6) 2 Tiempo Real con prioridad 10 y Round Robin
P3 22 Tiempo Compartido con Crditos(P3)
P4 5 Tiempo Compartido con Crditos(P4)

Considerando la siguiente situacin:
Crditos (P3) es MAYOR que los Crditos (P4)
el proceso P4 tiene suficientes crditos para acabar su ejecucin antes de que se le agoten
el tiempo de retorno de P4 es menor que el tiempo de retorno de P1
indica el nmero mximo de Crditos(P3) para que se cumpla la situacin descrita. Razona la respuesta.
E.U. de Informtica-U.P.M. Sistemas Operativos
13

E. U. de Informtica Departamento de Informtica Aplicada
Examen Final de Sistemas Operativos I 14 de diciembre de 2005

EJ ERCICIO 2 (3,5 PUNTOS) Tiempo estimado: 60 Minutos
Queremos tener un sistema operativo que soporte la gestin de procesos convencionales (pesados) y
procesos ligeros (threads) en un sistema monoprocesador. Para ello debemos disponer de las siguientes
llamadas, todas ellas ejecutadas por el ncleo del sistema operativo:
Crear_Thread (Nombre_Procedimiento: Puntero_a_Procedimiento,
P: Prioridad) return Identificador_de_thread
Crea un nuevo thread que ejecuta el cdigo contenido en el procedimiento que se indica como parmetro. A
dicho thread se le asigna la prioridad del proceso padre incrementada con el valor de P.
Crear_Proceso (Nombre_Fichero: Tira_Caracteres,
P: Prioridad) return Identificador_de_Proceso
Crea un nuevo proceso que ejecuta el cdigo contenido en el fichero que se indica como parmetro. A
dicho proceso se le asigna la prioridad del proceso padre incrementada con el valor de P. Adems, se crea
un thread que corresponder a la ejecucin del programa principal del proceso.
Adems disponemos de las siguientes llamadas al sistema
Esperar_Fin_Thread (IdThread: Identificador_de_Thread)
Esperar_Fin_Proceso (IdProceso: Identificador_de_Proceso)
En cualquier caso, a mayor nmero P mayor ser la prioridad del proceso.
El tiempo consumido por las cuatro llamadas al sistema anteriormente descritas no es significativo.
Tenemos los procesos de las figuras 1 y 2, compuestos por los fragmentos de cdigo desde A1 hasta C6 y
las operaciones de E/S que tardan en realizarse el tiempo especificado entre parntesis. Sabemos que cada
uno de estos fragmentos de cdigo tiene un tiempo de CPU de 100 unidades de tiempo y no realizan
llamadas al sistema. Inicialmente se crea el proceso A.

1.- Supongamos que se trata de un sistema interactivo, por lo que desechamos los algoritmos propios de
los sistemas Batch y decidimos considerar slo los algoritmos de planificacin propios de los sistemas
interactivos. En el conjunto de procesos de la figura 1:
a.- Indique dos de estos algoritmos que hagan que comience a ejecutarse A3 antes que B1 y C1.
b.- Indique dos de estos algoritmos que hagan que comience a ejecutarse B1 antes que C1.
c.- Indique uno de estos algoritmos que haga que comience a ejecutarse C1 antes que B1.
Para todos los casos justifique la respuesta.

2.- Supongamos que queremos dar mayor ventaja a los procesos ms interactivos.
a.- Proponga un algoritmo basado en prioridades que permita que el proceso B finalice su ejecucin
antes que el proceso C en el conjunto de procesos de la figura 1. Explique de forma clara y concisa el
funcionamiento de dicho algoritmo.
b.- Dibuje un cronograma que muestre el orden en que se ejecutaran los procesos siguiendo dicho
algoritmo.

3.- Explique la ventaja que tiene la implementacin de threads a nivel de sistema operativo (kernel) en
vez de hacerlo a nivel de biblioteca de usuario. Dibuje un cronograma a partir del conjunto de procesos
de la figura 2, donde se vea un caso concreto que demuestre dicha ventaja. El cronograma se deber
completar hasta la finalizacin de todos los threads contenidos en los procesos B y C. Adems se deber
indicar la poltica de planificacin que se ha elegido para realizar dicho cronograma.
E.U. de Informtica-U.P.M. Sistemas Operativos
14







Figura 1
Proceso A
(* Programa principal *)
A1
IdB := CrearProceso (B, 1)
A2
IdC := CrearProceso (C, 2)
A3
Esperar_FinProceso (IdB)
Esperar_Fin_Proceso (IdC)
Proceso B
(* Programa principal *)
B1
E/S (200)
B2
E/S (200)
B3
Proceso C
(* Programa principal *)
C1
C2
C3
E/S (100)
C4
C5
C6


Figura 2
Proceso A
(* Programa principal *)
A1
IdB := CrearProceso (B, 1)
A2
IdC := CrearProceso (C, 2)
A3
Esperar_FinProceso (IdB)
Esperar_Fin_Proceso (IdC)

Proceso B
Procedure x1
B1
Procedure x2
B2

(* Programa principal *)
Idx1 := CrearThread (x1, 0)
Idx2 := Crearthread (x2, 1)
B0
Esperar_Fin_Thread (Idx1)
Esperar_Fin_Thread (Idx2)
B4

Proceso C
Procedure y1
C1
E/S (250)
C2
Procedure y2
C3

(* Programa principal *)
Idy1 := CrearThread (y1, 2)
Idy2 := Crearthread (y2, 1)
C0
Esperar_Fin_Thread (Idy1)
Esperar_Fin_Thread (Idy2)
C4

E.U. de Informtica-U.P.M. Sistemas Operativos
15
E. U. de Informtica Departamento de Informtica Aplicada
Examen Final de Sistemas Operativos I 8 de Junio de 2004

EJERCICIO 2 (3,5 puntos) Tiempo: 60 min.

Un ordenador tiene una memoria de 64MB. El sistema operativo gestiona la memoria por intercambio (swapping)
con particiones variables. El tamao medio de los procesos es de 3MB y el tamao medio de los huecos es de 2MB.
Por trmino medio, existen la mitad de huecos que de procesos. Este ordenador dispone de un disco que tiene 2048
cilindros, 24 pistas por cilindro, 256 sectores por pista y 512 bytes por sector. El tiempo medio de posicionamiento
es de 69 ms. y el tiempo de rotacin es de 833 ms. Este ordenador es capaz de copiar 4 bytes en 40 nanosegundos
(de memoria a memoria).

(NOTA: cada respuesta debe incluir el desarrollo que ha llevado a la misma. No se aceptan respuestas en las que
slo figure el resultado final).

Responder, de forma razonada, a las cuestiones siguientes:

1. [07] Calcule cul ser, por trmino medio, el grado de multiprogramacin.
2. [02] Si por trmino medio un proceso pasa el 80% de su vida esperando por una entrada/salida, calcule la
utilizacin de la CPU si el grado de multiprogramacin es el calculado en el apartado 1. (No considere el
tiempo que un proceso est esperando en el estado de preparado).
3. [07] Suponga que existen 8 huecos (no adyacentes) de 2MB cada uno. Uno de tales huecos se encuentra en
el extremo superior de la memoria disponible para los procesos de usuario mientras que otro de esos huecos
se encuentra en el extremo inferior de dicha memoria. Ahora es necesario cargar (desde disco) un nuevo
proceso (de 3MB) en memoria y no se debe expulsar a ninguno de los ya cargados. Calcule el tiempo total
para ubicar en memoria a este nuevo proceso supuesto que el proceso se encuentra en sectores distribuidos
aleatoriamente por todo el disco. (Cuando se compacta se debe generar un nico hueco a partir de todos los
huecos existentes. En los clculos trabaje con una precisin de 3 decimales).
4. [02] Si la unidad de asignacin es de 4KB, calcule el tamao (en bytes) del mapa de bits que mantiene la
informacin sobre memoria libre/ocupada.

Suponga ahora que sobre el ordenador anterior el sistema operativo gestiona una memoria virtual por paginacin
con un tamao de pgina de 8KB. La CPU genera direcciones virtuales de 32 bits. Indique:

5. [02] Longitud (en bytes) de una entrada a la tabla de pginas. Cada entrada mantendr un nmero de
marco, un bit de presencia/ausencia, un bit de ensuciado y un bit de referencia.
6. [02] Tamao de la tabla de pginas (en bytes).
7. [03] Tamao de la tabla invertida de pginas (en bytes).
8. [0,3] Si las pginas virtuales 0, 1 y 2 estn cargadas en los marcos de pgina 4, 6 y 7 respectivamente, cul
es la direccin fsica correspondiente a la direccin virtual 8193 (decimal)?
9. [0,7] Suponga que la MMU utiliza una TLB. El tiempo de acceso a la TLB es de 01 microsegundo, el
tiempo de acceso a la tabla de pginas es de 10 microsegundos y el tiempo de acceso a una palabra en
RAM es de 1 microsegundo. Cunto tiempo se tarda en, dada una direccin virtual, acceder a la direccin
fsica correspondiente si: a) la bsqueda se resuelve en la TLB; b) la bsqueda se resuelve en la tabla de
pginas? (Suponga que la TLB no est llena).


E.U. de Informtica-U.P.M. Sistemas Operativos
16
E. U. de Informtica Departamento de Informtica Aplicada
Examen Final de Sistemas Operativos I 17 de Septiembre 2001

EJERCICIO 3 ( 3,5 puntos) Tiempo estimado: 60m.

Se desea implementar una gestin de memoria virtual mediante paginacin en un equipo informtico. El bus de
direcciones es de 32 bits. La unidad mnima direccionable es un byte. La cantidad de memoria RAM (real)
instalada en el equipo puede ser variable. La cantidad mnima de memoria es de 4 MB y se puede incrementar en
potencias de 2 (es decir 4 MB, 8 MB, 16MB, 32MB,etc..., hasta un mximo). El tamao de la pgina es de 4KB y
el del descriptor de pgina de 3 bytes. Se desea poder controlar si se ha accedido a una pgina, si se ha modificado,
as como tambin poder protegerla de lectura, escritura y ejecucin.

Con estos datos en principio, supuesto que se dispone de suficiente memoria secundaria para dar soporte a la
memoria virtual y para un espacio de direccionamiento nico se pide:

1) Especifique los formatos de direccin lgica (virtual) y de descriptor de pgina.
2) Escriba el tamao de la tabla de pginas (en bytes)
3) Escriba la cantidad mxima de memoria real que puede manejar este Sistema (en bytes).

Para dar soporte a la memoria virtual se dispone de un dispositivo de almacenamiento secundario de 8GB, pero que
slo tiene disponibles 2GB para memoria virtual. Estos 2GB estn asignados a un fichero que se usar para guardar
las pginas. Los bloques de datos de este fichero no tienen por qu ser contiguos.

Cuando una pgina no se encuentra en memoria real, el campo Nmero de marco del descriptor de pgina guarda
el nmero de bloque del dispositivo de almacenamiento secundario donde reside la pgina. La numeracin de
bloques del disco comienza en 1, as que se reserva el numero 0 para indicar que la pgina no tiene ningn
bloque asignado.

Con esta nueva informacin se pide:

4) Escriba la cantidad de memoria virtual mxima de la que se podra disponer (en bytes).
5) Escriba el tamao que debera tener el bloque de almacenamiento secundario para dar soporte a la misma
(en bytes).
6) Describa un posible esquema de asignacin de pginas a bloques, es decir, qu pginas se guardaran en los
bloques.

En principio se pens en guardar la tabla de pginas completa en memoria y que las pginas que ocupase esta tabla
no pudieran ser seleccionables por el algoritmo de sustitucin de pginas; de este modo la MMU podra resolver
fcilmente la traduccin de pginas, yendo directamente con cada direccin a la tabla de pginas en memoria.
Debido al gran gasto de memoria se opta finalmente por que la tabla de paginas no tenga que estar completamente
en memoria principal, sino que pueda estar tambin paginada. Se pide:

7) Indique si modificara o no la MMU para dar soporte a esta opcin y en su caso en qu consistira esta
modificacin.
8) Describa en lneas generales cmo funcionara la traduccin de una direccin con esta opcin.





E.U. de Informtica-U.P.M. Sistemas Operativos
17
E. U. de Informtica Departamento de Informtica Aplicada
Examen Final de Sistemas Operativos I 2 de julio de 2001
EJERCICIO 3 (3,5 puntos) Tiempo: 75 min.
Se desea implementar un sistema operativo con multiprogramacin (gestionando un mximo de 128
procesos) y memoria virtual paginada. Se debe tener en cuenta lo siguiente:
CPU con 32 bits para su conexin al bus de direcciones y un Registro de Reubicacin.
Un disco de 2GB y sectores de 1KB, para usarlo en exclusiva como soporte de la memoria virtual.
Pginas de 4KB y Tabla de Pginas completa residiendo en Memoria Principal.
Un nico espacio de direcciones virtuales para todos los procesos y lo ms grande que se pueda.
La memoria virtual, en un momento dado, tiene el aspecto de la figura siguiente:















Una representacin lgica de la lista doblemente encadenada sera la siguiente:

Donde el elemento H1 describe el primer trozo de la memoria (primer hueco que abarca las pginas 0,
1 y 2), el elemento Pi describe el trozo de memoria virtual ocupado por un proceso (el Pi que abarca las
pginas 3, 4 y 5) y as sucesivamente.
Como no se desea trabajar con memoria dinmica, se decide implementar la lista anterior con un array de
un tamao predeterminado (en principio el de la mxima fragmentacin nmero de trozos en que puede
estar dividida la memoria virtual).
Para completar la implementacin, se dispondr de la variable primero que indicar cul es el primer
elemento de la lista, de forma que la representacin del estado de la memoria virtual de la figura mediante
el array podra ser la siguiente:






Donde slo se indica el puntero al siguiente para no complicar el dibujo. Las posiciones del array no
utilizadas para describir los trozos actuales en que est fragmentada la memoria, se han expresado con
rectngulos sombreados.
Puede observarse que las tres primeras pginas estn vacas (primer hueco H1), las tres pginas
siguientes estn ocupadas por el proceso Pi, las cuatro siguientes estn libres y las cinco
siguientes estn ocupadas por el proceso Pk, y el resto de pginas se supone que estn libres.
Se trata, entre otras cuestiones, de analizar si es ms eficiente en ocupacin de memoria el
gestionar la memoria virtual libre y ocupada mediante un mapa de bits o una nica lista
doblemente encadenada tal que:
Los elementos de la lista (que incluye tanto la descripcin de zonas de memoria libre
huecos como las ocupadas por procesos), estn ordenados por direccin
Se usa el algoritmo NEXT FIT (siguiente que sirva) para asignar memoria a un
proceso.

H3
H1
H2
Pi
Pk
primero

H1 Pi H2 Pk H3
N
0 1 2 3 4 5 6 7
primero
Pk
2
H1 H2 H3 Pi
E.U. de Informtica-U.P.M. Sistemas Operativos
18
Se pide:

1. Razonar sobre la eficiencia de memoria del mapa de bits frente a la lista encadenada:
a. Indicar razonadamente cul sera el tamao del mapa de bits expresado en bytes.
b. Recordando que el sistema puede gestionar un mximo de 128 procesos concurrentemente, razonar
si el nmero mximo de trozos en que puede estar dividida la memoria virtual es 256 257.
c. Indicar los campos (con su significado) que tendra cada elemento del array de la lista.
d. Supuesto que los campos anteriores tienen que ocupar cada uno de ellos un nmero de bytes entero
(1, 2, 3, etc.) y eligiendo siempre el valor menor para poder representar cada campo, indicar el
tamao total (en bytes) que ocupara el array donde se implementara la lista encadenada.
2. Indicar qu informacin debera guardarse en el descriptor de cada proceso (tanto para el caso del
mapa de bits como el de lista encadenada) para que cuando un proceso termine, pueda liberarse la
zona de memoria virtual ocupada por el proceso. Poner como ejemplo el caso del proceso Pk de la
figura.
3. Cuando un proceso termina, en el caso de gestin con mapa de bits, bsicamente habra que hacer:
Poner a 1 los bits del mapa de bits que se correspondan con las pginas ocupadas por el proceso
Poner en la Tabla de Pginas, P=0 en todos los descriptores de las pginas ocupadas por el
proceso
Invalidar las entradas de la cach de la MMU que tengan descriptores de pginas del proceso
Liberar el descriptor utilizado para gestionar el proceso
Indicar de forma parecida (solo que para el caso de gestin mediante lista encadenada), qu deber
hacer el sistema operativo cuando se desee crear un proceso cuyo ejecutable resida en el Sistema de
Ficheros (por ejemplo en /ejemplos/ejecutable.exe). En el caso de utilizar una expresin del estilo: se
inicializa tal variable, deber concretarse a qu valor se inicializa. NO CONSIDERAR LOS
CASOS DE ERROR.
4. Indicar (tambin para lista encadenada) qu deber hacer el sistema operativo si decide compactar la
Memoria Virtual. Poner como ejemplo el caso de la figura en la que tan slo existen el proceso Pi y
Pk.
E.U. de Informtica-U.P.M. Sistemas Operativos
19
E.U. de Informtica Departamento de Informtica Aplicada
Examen final de Sistemas Operativos I 12 de diciembre de 2001

EJERCICIO 2. (puntuacin 35 puntos) Tiempo Estimado 60 m
Un sistema operativo usa un sistema de memoria virtual paginada con direcciones virtuales de 32 bits y
con pginas de 4KB. La tabla de pginas reside completamente en memoria principal, siendo el tamao
del descriptor de cada entrada de la tabla de pginas de 32 bits.
El espacio virtual es nico por proceso, aunque ningn proceso llega a necesitar ms de 16 MB. De este
espacio, 12 MB se utilizan para almacenar el rea de cdigo ms el rea de datos a partir de la direccin
virtual 0. Los 4 MB restantes se destinan al espacio de pila, que se almacena comenzando en la direccin
virtual ms alta y creciendo hacia direcciones bajas.
1. Cunto ocupa la tabla de pginas? (0,25 puntos)
2. Cul es la ocupacin til (entradas ocupadas) en % de la tabla de pginas? (0,25 puntos)
Posteriormente, se decide usar un sistema de tablas de dos niveles, como se muestra a continuacin.

























Una direccin virtual se interpreta de la siguiente manera: Los 10 bits de mayor peso sirven para
seleccionar la entrada de la tabla de primer nivel. Esta entrada contiene el nmero del marco donde reside
la tabla de pginas de segundo nivel. Los 10 bits siguientes se usan para seleccionar una entrada de la
tabla de segundo nivel. Esta entrada contiene el nmero del marco donde est cargada la pgina. Una vez
localizado el marco, solo hace falta sumarle los 12 bits del desplazamiento de la direccin virtual.

Tabla de pginas
de primer nivel
Tablas de pginas
de segundo nivel
Marcos de
pgina
marco
Entrada de 1
er
nivel Entrada de 2

nivel Desplazamiento
10 bits 10 bits 12 bits
E.U. de Informtica-U.P.M. Sistemas Operativos
20
Supuesto un proceso de este sistema, que ocupa como mximo 16 MB, y sabiendo que la tabla de primer
nivel siempre est cargada en memoria durante la ejecucin del proceso, mientras que las tablas de
segundo nivel se cargan bajo demanda, responda razonadamente a las siguientes preguntas:
3. Qu tamao tiene cada una de las tablas? (0,25 puntos)
4. Cuntas tablas de segundo nivel utiliza el proceso? Qu ndices se ocupan de la tabla de primer
nivel? (0,5 puntos)
5. Cunto espacio de memoria se necesita para almacenar simultneamente todas las tablas necesarias?
(0,25 puntos)
6. Qu ventaja tiene este sistema con respecto al de una sola tabla de pginas? (0,25 puntos)
7. Qu inconveniente presenta este modelo si la MMU no dispone de TLB? (0,25 puntos)

El registro base de la tabla de pginas del proceso (RBTP) indica que la tabla de primer nivel est cargada
a partir de la direccin fsica $F2000. La direccin fsica tiene un tamao de 24 bits.

El formato de descriptor, que ocupa 32 bits, tanto de la tabla de primer nivel como de las de segundo
nivel, es el siguiente:
N de marco (12 bits) Reservado (19 bits) Bit de presencia

En un momento dado, el contenido de ciertas direcciones de memoria principal, en hexadecimal, es el
siguiente:
Dir. Fsica 4 BYTES

$0F2000 100F...1
$0F2100 1F30...4
$0F2FFC 0F40...1
$0F3000 0C8F...0
$0F30C8 1013...5
$0F3FFC 1013...4
$0F4000 0F42...1
$0F4C78 1F52...1
$0F4FFC 0F41...8
$1F5000 A041...8
8. Dada la direccin virtual $FFF1E703, describa detalladamente los pasos que hay que seguir y las
direcciones involucradas, para traducir la anterior direccin virtual en una direccin fsica. Qu
direccin fsica ha obtenido? (1,5 puntos).
E.U. de Informtica-U.P.M. Sistemas Operativos
21
E. U. de Informtica Departamento de Informtica Aplicada
Examen Final de Sistemas Operativos I 14 de junio de 2003

EJERCICIO 3 (3,5 puntos) Tiempo: 60 min.
Se desea implementar un sistema operativo con multiprogramacin y memoria virtual paginada con las
caractersticas siguientes:
Un nico espacio de memoria virtual de 4GB a compartir por todos los procesos que se creen.
El bus de datos es de 32 bits.
MMU con cach interna (TLB) de 64 entradas que incluyen los bits R (Referenciada) y M (Modificada).
Una memoria principal de 512MB.
Pginas de 8KB.
Tabla de Pginas Invertida cargada completamente en memoria principal.
Mapa de Bits para llevar el control de la memoria virtual libre y ocupada.
Algoritmo LRU (aproximado) como poltica de sustitucin de pginas.
Una Tabla de Pginas Invertida tiene una entrada por cada marco de memoria. Cada entrada indica, entre
otras cosas, la pgina que est cargada en el marco correspondiente.
Responder, de forma razonada, a las cuestiones siguientes:
1. Indicar el formato (campos con su significado y tamao en bits) de un descriptor de la Tabla de
Pginas Invertida (supuesto que cada descriptor debe ocupar un nmero entero de bytes) y
calcular el tamao en bytes de dicha tabla.
2. Indicar el tamao en bytes que ocupa el Mapa de Bits que lleva el control de la memoria virtual
libre y ocupada.
3. Indicar el tipo de estructura de datos que se crea ms aconsejable para llevar el control de la
memoria principal libre y ocupada (marcos de pgina) de forma que se agilice la bsqueda de un
marco libre cuando se produzca falta de pgina. Calcular el tamao en bytes de esta estructura
supuesto que una variable o campo de una estructura debe ocupar un nmero entero de bytes.
4. Cuando se utiliza nicamente una Tabla de Pginas clsica (no invertida y no multinivel) que est
cargada en memoria principal y una MMU que cuenta con RBTP (Registro Base de la Tabla de
Pginas) as como su correspondiente TLB, el nmero mximo de accesos a memoria principal
cuando se intenta acceder a una direccin virtual que pertenece a una pgina presente en memoria
principal es de tres. Indicar cundo se produce esta situacin y a qu se deben los tres accesos.
5. Cuando se utiliza una Tabla de Pginas Invertida, como en nuestro caso, la situacin descrita en el
punto anterior (4), en general, no puede resolverse con tan slo tres accesos a memoria principal.
Indicar por qu y cul podra ser (con los datos del enunciado) el nmero mximo de accesos a
memoria principal.
6. Para poder implementar, de forma aproximada, el algoritmo de sustitucin de pginas LRU, se
dispone de una interrupcin peridica (sea intLRU) que hace que tome control el Sistema
Operativo (a travs de la rutina de tratamiento de dicha interrupcin). Se supone que cuando
sucede intLRU, la MMU vuelca el contenido de la TLB en una zona de memoria conocida por
el Sistema Operativo (sea tablaTLB definido como un array de 64 descriptores con el formato
del apartado 1).
a. Indicar someramente en qu podra consistir la aproximacin al algoritmo LRU.
b. Indicar qu estructuras de datos podran modificarse o aadirse para soportar la
aproximacin al algoritmo LRU descrita en 6.a.
c. Indicar en pseudocdigo el contenido de la rutina de tratamiento de la interrupcin
intLRU.
E.U. de Informtica-U.P.M. Sistemas Operativos
22
E. U. de Informtica Departamento de Informtica Aplicada
Examen Final de Sistemas Operativos I 15 de Diciembre de 2004
EJERCICIO 3 (3,5 puntos) Tiempo Estimado: 60 m

Un sistema operativo ofrece a los usuarios un esquema de gestin de memoria en donde el espacio lgico de un
proceso consiste en una coleccin de bloques de tamao variable, denominados segmentos, repartidos por la
memoria fsica. Ahora, la imagen de un proceso se divide en segmentos (por ejemplo: de cdigo, de datos y de
pila). Cada segmento ocupa un bloque en memoria principal de tal forma que las direcciones lgicas que genera la
cpu son del tipo <Nmero de segmento, desplazamiento>. Como se puede ver en la figura, la
traduccin de la direccin lgica (s,d) a una direccin fsica df se realiza con la ayuda de una tabla de
segmentos por proceso, que reside en memoria principal. El nmero de segmento s es el ndice en la tabla de
segmentos para obtener la entrada que contiene la direccin fsica b donde comienza el segmento, a la cual se le
suma el desplazamiento d para obtener df.
cpu
d s d s
b
Memoria fsica
b
+
Tabla de segmentos
df
Base

Se pide:
1. Explique por qu es posible el acceso a direcciones fuera de un segmento.
2. Indique qu modificaciones propone al modelo anterior para que se controlen los accesos indebidos. Dibuje
de nuevo la figura con las modificaciones propuestas.
3. Si el mapa (en decimal) de segmentos de un proceso en la memoria fsica es el mostrado a continuacin,
indique qu valores tendran los elementos de la tabla de segmentos supuesto el punto 2.
s0 s3 s2 s4 s1
1
4
0
0
2
4
0
0
3
2
0
0
4
3
0
0
4
7
0
0
5
7
0
0
6
3
0
0
6
7
0
0
0
0
0
0

4. Escriba las tablas de segmentos de dos procesos en donde se vea que comparten el bloque contenido en el
segmento 2. Tienen que llamarse con igual nmero de segmento en los dos procesos?
5. Justifique si este modelo de gestin de memoria sufre de fragmentacin externa y/o interna.

Se modifica el esquema de la figura de tal manera que los segmentos estn paginados en disco, por lo que
ahora la memoria principal est dividida en marcos. Cada segmento cuenta con una tabla de pginas. El
contenido de la tabla de segmentos se modifica ya que la entrada de un segmento s, no contiene la direccin de
inicio del segmento b, sino la direccin de comienzo de la tabla de pginas tp del segmento.
6. Explique y dibuje un esquema parecido al de la primera figura en donde se vea la traduccin de una
direccin <s,d> en una direccin fsica.
7. Justifique si este modelo sufre de fragmentacin externa y/o interna.
8. En el caso de que no existiera TLB, cuntos accesos a memoria como mnimo hay que realizar con este
esquema? Justifique la respuesta.
E.U. de Informtica-U.P.M. Sistemas Operativos
23

E. U. de Informtica Departamento de Informtica Aplicada
Examen Final de Sistemas Operativos I 17 de Junio de 2005
EJERCICIO 3 (3,5 puntos) Tiempo Estimado: 60 m

Sea un disco que tiene 1200 cilindros, 16 pistas por cilindro, 56 sectores por pista, 512 bytes por sector y una velocidad de
6000 rpm (revoluciones por minuto). Est formateado con interleaving=1. Entre dos sectores adyacentes hay un espacio de
relleno (gap) de 1/8 el tamao del sector; es decir, despus del ltimo byte de un sector y antes del primer byte del siguiente,
hay 64 bytes de relleno (ver figura).
sector 1 sector 2 sector 29 sector 30 sector 28 sector 56 ..
gap

El tiempo de posicionamiento del brazo viene dado por la expresin t = 1 + (0,5 * d) (expresado en milisegundos) siendo d la
distancia en cilindros desde el origen al destino.
Notas:
Para todos los apartados, inicialmente la cabeza lectora/grabadora se supone situada en el cilindro 0 y al principio
del sector 1.
La numeracin de cilindros y pistas empieza por 0 y la de sectores por 1.
El cylinder skew (sesgo) es de 0

SE PIDE:

1) [1 punto] Calcule la mnima velocidad de transferencia (del controlador a memoria) que requiere este disco. Es decir (y en
relacin con la figura anterior) en el tiempo que tardan en pasar por debajo de la cabeza lectora/grabadora: el gap del
sector 1, el sector 29 y el gap del sector 29, se ha tenido que transferir el sector 1 desde el buffer de la controladora hasta
memoria. Suponga que el bus est siempre disponible para realizar la transferencia y que el tiempo de comprobacin del
checksum es despreciable. Exprese el resultado en bits por segundo. En los clculos opere con la mayor precisin decimal
posible.

2) [1 punto] En un momento dado, en la cola de peticiones de disco existen las siguientes dos peticiones (por orden de
llegada):
1. Cilindro 49, pista 0, sector 15
2. Cilindro 49, pista 10, sector 44
Calcule el tiempo total invertido en completarlas siguiendo el algoritmo FCFS. Tenga en cuenta los tiempos de
posicionamiento, espera de rotacin y transferencia (suponga la misma velocidad de transferencia que la calculada en el
apartado anterior). La distribucin de sectores en una pista de 56 sectores con interleaving=1 es: 1, 29, 2, 30, 3, 31, 4, 32,
5, 33, 6, 34, 7, 35, 8, 36, 9, 37, 10, 38, 11, 39, 12, 40, 13, 41, 14, 42, 15, 43, 16, 44, 17, 45, 18, 46, 19, 47, 20, 48, 21, 49,
22, 50, 23, 51, 24, 52, 25, 53, 26, 54, 27, 55, 28, 56.

3) [1,5 puntos] Se cambia el disco por otro similar en el que la funcin de tiempo de posicionamiento viene dada por la
expresin t = 0,8*d (expresado en milisegundos) y el nmero de sectores ha cambiado a 50 por pista (mantenindose igual
el resto de datos). La distribucin de sectores en una pista de 50 sectores con interleaving=1 es: 1, 26, 2, 27, 3, 28, 4, 29, 5,
30, 6, 31, 7, 32, 8, 33, 9, 34, 10, 35, 11, 36, 12, 37, 13, 38, 14, 39, 15, 40, 16, 41, 17, 42, 18, 43, 19, 44, 20, 45, 21, 46, 22,
47, 23, 48, 24, 49, 25, 50. Se pide:
1. Determinar el orden en el que se atendern las siguientes dos peticiones de disco pendientes aplicando el
siguiente algoritmo de planificacin del brazo de disco: la siguiente peticin a atender es aquella que se
encuentre ms cerca: se tarde menos en llegar al cilindro y sector solicitado. Peticin 1: cilindro 0, pista 6,
sector 21; Peticin 2: cilindro 5, pista 3, sector 16
2. Para cada peticin, indique el tiempo necesario para posicionarse sobre el cilindro, pista y sector solicitados.
E.U. de Informtica-U.P.M. Sistemas Operativos
24

E.U. de Informtica Departamento de Informtica Aplicada
Examen Final de Sistemas Operativos I 13 de septiembre de 1996

PROBLEMA 3 (35 PUNTOS) 75 Minutos

Se dispone de un sistema de ficheros de un determinado sistema operativo (tipo UNIX) con bloques de
1Kbyte, soportado por un disco de 64Mbytes, que tiene las siguientes caractersticas :

1. El formato lgico del disco tiene la estructura :


Bloque de
autoarranque
Superbloque
Nodos-i
Mapa de bits
de nodos-i
Mapa de bits
de bloques
Bloques de
datos
...... ... ... ...


Bloque de autoarranque (bloque 0): reservado para el sistema
Superbloque (bloque 1) : que contiene la descripcin de la estructura del sistema de ficheros. Entre
otras cosas, en nuestro caso indica que existen 10.000 nodos-i.
Mapa de bits de nodos-i : para saber qu nodos-i estn asociados a algn fichero y cules estn
libres (el i-nodo 0 aparece como asignado desde que se formatea el disco. No se utiliza para ningn
fichero)
Mapa de bits de bloques : para controlar los bloques libres y asignados del disco (el bit 0 indica si
el bloque 0 est asignado o libre, el 1 si el bloque 1 est asignado o libre,...)
Nodos-i : con la siguiente estructura :












2. Tanto los nodos-i como los bloques de datos se asignan de forma ascendente.

3. Las entradas de un directorio ocupan 16 bytes. Cada entrada consta de dos campos :


Nmero de
nodo-i
Nombre del
fichero
2 bytes 14 bytes

Caractersticas
del fichero
7 bloques
directos
Indirecto simple
Indirecto doble
El tamao de un nodo-i es de 32 bytes y el de una
direccin de bloque es de 2 bytes. Puede haber ms de
un nodo-i en un bloque de disco. Aunque el nodo-i 0
no se utiliza, los 32 primeros bytes del primer bloque
de nodos-i estn reservados para l.

E.U. de Informtica-U.P.M. Sistemas Operativos
25
Cuando se crea un directorio, este siempre consta de las entradas . y .., que hacen referencia al propio
directorio y al directorio padre respectivamente.


Suponiendo que el disco est vaco, INDICAR:

a) Nmero de bloques que ocupa el mapa de bits de bloques
b) Nmero de bloques que ocupa el mapa de bits de i-nodos
c) Numero de bloques que ocupan los nodos-i
d) Tamao mximo que podra tener un fichero que colgase directamente del directorio raz

En un momento dado se crea la siguiente jerarqua de directorios en el disco :


d1
a
d2
b


/ -> fecha de creacin : 1-enero-96
d1 -> fecha de creacin : 2-enero-96
d2 -> fecha de creacin : 5-enero-96
a -> fecha de creacin : 3-enero-96 ; tamao : 1026 bytes
b -> fecha de creacin y tamao : 10-enero-96 ; tamao : 7170 bytes


Teniendo en cuenta las fechas de creacin de cada uno de los directorios y ficheros (creados de
forma secuencial), INDICAR :

e) En qu bloques de datos se encontrar la informacin de cada uno de ellos y qu nmero de i-nodo
tienen asociado.
E.U. de Informtica-U.P.M. Sistemas Operativos
26

E. U. de Informtica Departamento de Informtica Aplicada
Examen Final de Sistemas Operativos I 25 de Junio de 1997
EJERCICIO 3 (3,5 puntos) Tiempo: 60 min.

Se pretende comparar ciertos aspectos de las implementaciones del sistema de ficheros en sistemas
operativos del tipo Unix y MS-DOS. En cada uno de los sistemas, el formateo lgico de un mismo disco
dara como resultado respectivamente las estructuras lgicas que se describen a continuacin. El tamao
del bloque, para ambos sistemas, es de 1Kb.


Bloque de
autoarranque
FAT Bloques de
entradas del
Directorio Raz
Bloques de
datos
......
... ...
0 1 n 1 1 2


Entre otras informaciones, el bloque de autoarranque contiene:
Mximo n entradas que puede contener el directorio raz
Nmero de bloques que ocupa la FAT
Una entrada de directorio, ocupa 32 bytes y presenta el siguiente aspecto:

Primer bloque
de datos
Nombre del
fichero
Tipo del
fichero:
D/F
Tamao en
bloques


FAT
0 1 2 3 4 5 6 7 8 n-2 n-1 n


Los dos primeros bloques de datos (0 y 1) estn reservados por el sistema, por lo que la primera entrada
til es la 2. Una entrada con un 0 indica bloque libre, y con la marca <EOF>, fin de fichero.

UNIX:



Bloque de
autoarranque
Superbloque
Nodos-i
Mapa de bits
de nodos-i
Mapa de bits
de bloques
Bloques de
datos
...... ... ... ...
m
1 0

MS-DOS
El Tipo de fichero indica
si es un directorio (D) o
un fichero (F).
E.U. de Informtica-U.P.M. Sistemas Operativos
27
Bloque de autoarranque: reservado para el sistema
Superbloque: contiene, entre otras cosas, el nmero mximo de nodos-i.
Mapa de bits de nodos-i: indica nodos-i que estn libres o asociados a ficheros. Los nodos-i se
numeran desde 0, pero el primer nodo-i til es el 1, ya que el 0 no se utiliza.
Mapa de bits de bloques: indica bloques libres y asignados del rea de datos del disco, comenzando
desde el bloque 0.
Nodos-i: ocupan 32 bytes y las entradas de directorio 16 bytes, tal y como se ve a continuacin:
Indirecto simple
Indirecto doble
7 bloques
directos
Permisos rwx
Propietario
Fechas
Tamao en
bloques

Tanto los nodos-i como los bloques de datos se asignan de forma ascendente.
En ambos sistemas, al crear un directorio se incluyen siempre las entradas . y .., que hacen referencia al propio
directorio y al directorio padre respectivamente.
Se pide:
1. Para cada sistema, indique el nmero mximo de ficheros o directorios que se pueden crear.
2. Sea el siguiente rbol, cuyo orden de creacin ha sido /, d1, d2, a y b. Los ficheros a y b ocupan 1
bloque de datos cada uno.
d1
a
d2
b


a) En el caso de MS-DOS, rellene las estructuras mostradas en la hoja de respuestas con el contenido
de las entradas significativas de la FAT (las que indican bloques ocupados) y el contenido de cada
uno de los directorios, incluido el directorio raz. (Los bloques del directorio raz numrelos DR1,
DR2, etc.).
b) En el caso de Unix, muestre, igualmente, el contenido de los nodos-i ocupados y el contenido de
cada uno de los directorios, incluido el directorio raz.
3) Explicar razonadamente para ambos sistemas cul sera el mnimo nmero de bloques que hay que leer
(indicar cules) para obtener el contenido del fichero /d2/b, supuesto conjuntamente que:
a) En MS-DOS la FAT est ya cargada memoria.
b) En Unix se accede al nodo-i correspondiente para leer el contenido de un fichero o directorio.
c) En ambos sistemas, no hay ningn tipo de informacin almacenada en memoria de ningn fichero o
directorio.



N de nodo-i Nombre del fichero
Entrada de directorio
E.U. de Informtica-U.P.M. Sistemas Operativos
28
E. U. de Informtica Departamento de Informtica Aplicada
Examen Final de Sistemas Operativos I 10 de diciembre de 2003
EJERCICIO 3 (3,5 puntos) Tiempo: 60 min.
Tenemos un sistema de ficheros tipo unix con las siguientes caractersticas: disco de 32Gbytes, bloques de 512
bytes, i-nodos de 64 bytes con 6 punteros directos y 2 indirectos simples, los i-nodos se almacenan en los bloques
de disco del 100 al 20.100, el mapa de i-nodos ocupa los bloques del 20.101 al 20.140. El sistema operativo carga
en memoria el i-nodo de un fichero cuando se realiza la operacin de abrir fichero sobre l y lo mantiene hasta que
se cierra el fichero.
a) Se quiere controlar la ocupacin de todo el disco mediante un mapa de bits que se almacenar a
partir del bloque 22.000. Calcula el tamao que debera tener (en bytes) e indica qu bloques
ocupar.
En el sistema anterior tenemos un fichero, cuya ruta completa es /lrod/btxai, que ocupa 4600 bytes. Los
directorios / y lrod tiene asignados los i-nodos 1 y 5 respectivamente y los bloques de datos 40.000 y 40.001
respectivamente. Inicialmente solo est cargado en memoria el i-nodo de /. El fichero btxai tiene asignado el i-
nodo 12 y los bloques lgicos que contienen los datos de este fichero estn almacenados en los siguientes bloques
fsicos:
N Bloque lgico 0 1 2 3 4 5 6 7 8
N Bloque fsico 81000 81002 81003 54500 54501 54502 77600 77601 77602
Si se necesita algn otro bloque para la gestin de la informacin del fichero se utilizan los bloques fsicos a partir
del 99.000.




b) Suponemos que el sistema no tiene ningn buffer en memoria para almacenar un bloque ledo del
disco; es decir, despus de leer un bloque coge la informacin necesitada, la entrega y desecha dicho
bloque. Indica a qu bloques del disco van a acceder las llamadas open, lseek y read del programa 1.
Se deber especificar el orden en que se accede a ellos y cuntas veces se va a realizar la lectura y/o
escritura del bloque en el disco.
Para mejorar el tiempo de acceso se decide implementar una cache para bloques de disco. Esta cache consistir en
un buffer en memoria principal que contiene los ltimos 5 bloques de disco a los que se ha hecho referencia,
siguiendo una poltica FIFO para la sustitucin de bloques. A continuacin se indican algunos aspectos del
funcionamiento de la cache de bloques:
- Varios procesos pueden estar accediendo simultneamente a un mismo bloque. El sistema no expulsar de la
cache a un bloque que est siendo utilizado en un momento dado.
- El sistema operativo tiene un proceso que peridicamente actualiza en el disco el contenido de los bloques
cargados en la cache que considera necesarios.
- En el sistema puede haber distintas particiones con tamao de bloque fsico distinto. Se desea que el sistema de
cache de bloques sirva para almacenar bloques procedentes de distintas particiones.
c) Supongamos que para gestionar la cache de bloques el sistema tiene un descriptor para cada uno de
los 5 buffers que la componen. Indica qu campos debe contener un descriptor de buffer y la utilidad
de cada uno de los campos.
Programa 1
df = open(/lrod/btxai) /* abre el fichero */
lseek (df, 2304) /* avanza el puntero del fichero 2304 bytes */
for i = 1 to 512 do
read (df, destino, 4) /* lee 4 bytes a partir de la posicin actual */
destino = destino + 4 /* y los deja en destino */
... /* trabaja con los datos */
end for;
close (df);
E.U. de Informtica-U.P.M. Sistemas Operativos
29

E. U. de Informtica Departamento de Informtica Aplicada
Examen Final de Sistemas Operativos I 14 de diciembre de 2005

EJERCICIO 3 (puntuacin 35 puntos) Tiempo Estimado 60 m

Un sistema operativo trabaja sobre un disco que cuenta con las siguientes caractersticas: 600 cilindros,
16 pistas por cilindros, 36 sectores por pista, 512 bytes por sector. La numeracin de cilindros, pistas y
sectores comienza en 0. Inicialmente, la cabeza lectora/grabadora est situada en el cilindro 0, pista 0,
sector 0. La velocidad de rotacin es de 6000 revoluciones por minuto. El tiempo de posicionamiento
entre cilindros consecutivos es de 1 ms. La controladora cuenta con un buffer interno de 512 bytes donde
almacena los bits que se van leyendo segn pasan por debajo de la cabeza lectora/grabadora y cuando
finaliza la lectura de un sector comienza a transferirlo a la memoria RAM. El factor de interleaving es de
4, es decir entre dos sectores lgicamente consecutivos se intercalan otros cuatro. La distribucin de
sectores en una pista sera la siguiente:
0,29,22,15,8,1,30,23,16,9,2,31,24,17,10,3,32,25,18,11,4,33,26,19,12,5,34,27,20,13,6,35,28,21,14,7.
El tiempo de transferencia de un sector almacenado en el buffer del controlador a memoria principal
coincide con el de la lectura de un sector.
El driver de disco del sistema operativo define bloques fsicos cuyo tamao coincide con el del sector.
Los numera desde 0 de manera secuencial, de tal forma que ofrece una visin del disco como una
secuencia lineal de bloques. As, por ejemplo, el bloque 35 se sita en el cilindro 0, pista 0 y sector 35. El
bloque fsico 36 se sita en el cilindro 0, pista 1, sector 0, etc. El factor de interleaving solo es visible al
controlador y es transparente al driver del disco, que ve los sectores del disco como si fuesen
consecutivos.
Por otra parte, el sistema de ficheros mantiene un rbol en que un fichero datos.txt tiene como primer
bloque de datos el bloque fsico 7.
Se pide:
1. Indique en qu cilindro pista y sector se sitan los bloques 40 y 43600.
2. Si el sistema de ficheros utiliza el sistema de almacenamiento contiguo para los bloques de un
fichero. Cunto tiempo se emplear en leer los dos primeros bloques del fichero datos.txt?
Considere que este tiempo est formado por el tiempo de posicionamiento + tiempo de latencia +
tiempo de transferencia desde el disco a la controladora + tiempo de transferencia desde la
controladora a la memoria principal.
3. Repita el apartado anterior si el sistema de ficheros utiliza la tabla FAT siguiente:

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
3 14 L Eof 40 72 300 L L Eof 5 33

L = bloque libre.
Eof = fin de fichero.

También podría gustarte