Anda di halaman 1dari 35

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

Sistemas Operativos I

Curso 06/07

SISTEMAS OPERATIVOS I
Problemas escogidos

Febrero 2007

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

Sistemas Operativos I

Curso 05/06

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

Sistemas Operativos I

Curso 06/07

A continuacin se presenta una seleccin de problemas que han sido objeto de examen de Sistemas
Operativos I en los ltimos cursos.
Aquellos alumnos que deseen consultar las respuestas publicadas en su da a los problemas aqu
seleccionados, o incluso consultar enunciados y soluciones de otros problemas, as como de ejercicios de
tipo test, se les remite a la pgina web del Departamento:

www.dia.eui.upm.es
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

Procesos

Memori
a

E/S

Ficheros

Ejer.

Fecha

Comentario

Pgina

31/01/95

Seguimiento sencillo de RR, SJF y prioridades

18/01/97

Clculo de tiempo de retorno, rendimiento y eficiencia

10/09/03

Threads en nivel de usuario y de S.O. (aptdos. 1, 2c, 3)

02/09/99

Implementar dormirse (segundos)

08/09/04

Seguimiento de poltica de planificacin tipo tiempo real

15/12/04

Programacin de rutinas de planificacin tipo tiempo real

12/12/01

Planificacin tipo Linux

10

14/12/05

Polticas de planificacin para sistemas interactivos

13

8/06/04

Clculos sobre particiones variables y paginacin

15

17/09/01

Organizacin general de la paginacin

16

02/07/01

Paginacin y organizar rea swap con lista encadenada

17

12/12/01

Tabla de Pginas de dos niveles

19

14/06/03

Tabla de Pginas Invertida

21

15/12/04

Introduccin a la segmentacin

22

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

17/06/05

Accesos a disco

23

13/09/96

Sistema de tipo UNIX y creacin de estructura

24

25/06/97

Similar al anterior mezclando MS/DOS y UNIX

26

10/12/03

UNIX tratando cach de bloques

28

14/12/05

Accesos a bloques de disco correspondientes a un fichero

29

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

Sistemas Operativos I

Curso 06/07

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

Sistemas Operativos I

E. U. de Informtica

Curso 06/07

Departamento de Informtica Aplicada

Examen Final de Sistemas Operativos I


EJERCICIO 2 (4 puntos)

31 de Enero de 1995

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:
Prioridad:
Estructura del proceso:

Proceso P2
Instante de llegada:
Prioridad:
Estructura del proceso:

Proceso P3
Instante de llegada:
Prioridad:
Estructura del proceso:

0
Baja
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.
5
Media
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.
8
Alta
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 I

Curso 06/07

SISTEMAS OPERATIVOS I
Hoja de Respuestas del EJERCICIO 2

31 de enero de 1995

APARTADO 1
OCIOSO

P3
P2
P1
0

10

15

20

25

30

35

40

45

50

55

60

65

70

75

80

85

90

95

25

30

35

40

45

50

55

60

65

70

75

80

85

90

95

25

30

35

40

45

50

55

60

65

70

75

80

85

90

95

25

30

35

40

45

50

55

60

65

70

75

80

85

90

95

tiempo (mseg.)

APARTADO 2
OCIOSO

P3
P2
P1
0

10

15

20

tiempo (mseg.)

APARTADO 3
OCIOSO

P3
P2
P1
0

10

15

20

tiempo (mseg.)

APARTADO 4
OCIOSO

P3
P2
P1
0

10

15

20

tiempo (mseg.)

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

Sistemas Operativos I

E. U. de Informtica

Curso 06/07

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 ): tiempo total necesario para que un proceso se ejecute


completamente.
TIEMPO MEDIO DE RETORNO (
proceso.

):

media aritmtica de los tiempos de retorno de cada

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

, 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 I

Curso 06/07

E. U. de Informtica
Examen Final de Sistemas Operativos I

Departamento de Informtica Aplicada


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:

Proceso de
usuario P1

Thread 1

Thread 2

BCT
sT1T2

FIFO

Sistema
Operativo
PnP1Cola de preparados
BCPsP1Pn

cpu
Round
Robin

Proceso deEn este modelo, cuando el sistema operativo asigna al proceso de usuario una porcin de procesador mediante la
usuario 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
(1) Usa cpu (50 ms)
(2) Hace una llamada al sistema bloqueante (100 ms)
(3) Usa cpu (10 ms)
(4) Usa cpu (30 ms)

P2
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 P1A ejecuta las tres primeras instrucciones (1, 2 y 3) y el hilo P1 B
ejecuta la ltima (4). Se supone que P1A est antes que P1B en la cola de preparados.
3

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

Sistemas Operativos I

Curso 06/07

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:

Proceso de
usuario P1

T1

T2

Sistema
Operativo
TnT2T1Cola de preparados
BCPsP1Pn

cpu
Round
Robin

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
P1A, P1B 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.

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

Sistemas Operativos I

E. U. de Informtica
Examen Final de Sistemas Operativos I

Curso 06/07

Departamento de Informtica Aplicada


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 I

E. U. de Informtica

Curso 06/07

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 I

E. U. de Informtica

Curso 06/07
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
Pu.t.
Pu.t.
Pu.t.
C unidades de tiempo (u.t.) cada P u.t. La ejecucin
de las C u.t. puede hacerse en cualquier punto del
Cu.t.
Ejecucin
Cu.t.
Cu.t.
intervalo, pero siempre dentro de las P u.t. Adems, del proceso
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
N
Ci
nmero de procesos existentes en el sistema.

Pi

i=1

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)

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

Sistemas Operativos I

Curso 06/07

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 I

E. U. de Informtica

Curso 06/07

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 =

var

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

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

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

Sistemas Operativos I

Curso 06/07

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.

P1
P2
P3
P4

Tiempos

Tipo de Proceso

4 (10) 4
3 (3) 3
3 (3) 3
4 (2) 2

Tiempo Real FIFO con prioridad 20


Tiempo Real Round Robin con prioridad 10
Tiempo Real Round Robin con prioridad 10
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.
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 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.

10

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

Sistemas Operativos I

Curso 06/07

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.
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 Crditos(P3)
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.

11

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

Sistemas Operativos I

E. U. de Informtica

Curso 06/07

Departamento de Informtica Aplicada

Examen Final de Sistemas Operativos I

14 de diciembre de 2005

EJERCICIO 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

12

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

Sistemas Operativos I

Curso 06/07

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.

13

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

Sistemas Operativos I

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

14

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

Curso 06/07

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

Sistemas Operativos I

E. U. de Informtica

Curso 06/07
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).

15

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

Sistemas Operativos I

E. U. de Informtica

Curso 06/07
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.

16

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

Sistemas Operativos I

E. U. de Informtica

Curso 06/07
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:

H1
Pi
H2

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.

Pk
H3

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


primero

H1

Pi

H2

Pk

H3

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:
primero

Pk

H1

Pi

H2 H3

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.

17

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

Sistemas Operativos I

Curso 06/07

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.

18

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

Sistemas Operativos I

E.U. de Informtica
Examen final de Sistemas Operativos I

Curso 06/07
Departamento de Informtica Aplicada
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.
Tablas de pginas
de segundo nivel

Marcos de
pgina

Tabla de pginas
de primer nivel

marco

Entrada de 1er nivel

Entrada de 2 nivel

Desplazamiento

10 bits

10 bits

12 bits

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.

19

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

Sistemas Operativos I

Curso 06/07

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
$0F2000
$0F2100
$0F2FFC
$0F3000
$0F30C8
$0F3FFC
$0F4000
$0F4C78
$0F4FFC
$1F5000

4 BYTES

100F...1
1F30...4
0F40...1
0C8F...0
1013...5
1013...4
0F42...1
1F52...1
0F41...8
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).

20

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

Sistemas Operativos I

E. U. de Informtica

Curso 06/07
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.

21

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

Sistemas Operativos I

Curso 06/07

c. Indicar en pseudocdigo el contenido de la rutina de tratamiento de la interrupcin


intLRU.
E. U. de Informtica

Examen Final de Sistemas Operativos I

Departamento de Informtica Aplicada


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.
Tabla de segmentos

Memoria fsica

Base

cpu

df
b

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
6700

6300

5700

4700

4300

3200

2400

1400

0000

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.

22

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

Sistemas Operativos I

Curso 06/07

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.

23

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

Sistemas Operativos I

E. U. de Informtica

Curso 06/07

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

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.

24

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

Sistemas Operativos I

E.U. de Informtica

Curso 06/07

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

...

...

......
Bloques de
datos

Mapa de bits
de bloques

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 :
Caractersticas
del fichero
7 bloques
directos
Indirecto simple

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.

Indirecto doble
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 :

25

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

Sistemas Operativos I

Nmero de
nodo-i
2 bytes

Curso 06/07

Nombre del
fichero
14 bytes

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)
b)
c)
d)

Nmero de bloques que ocupa el mapa de bits de bloques


Nmero de bloques que ocupa el mapa de bits de i-nodos
Numero de bloques que ocupan los nodos-i
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

d2

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

26

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

Sistemas Operativos I

Curso 06/07

E. U. de Informtica

Departamento de Informtica Aplicada

Examen Final de Sistemas Operativos I


EJERCICIO 3 (3,5 puntos)

25 de Junio de 1997

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

MS-DOS

...

0 1 2

...

FAT

......
Bloques de
datos

Bloques de
entradas del
Directorio Raz

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:
Tipo del
fichero:
D/F

Nombre del
fichero

El Tipo de fichero indica


si es un directorio (D) o
un fichero (F).

Tamao en
bloques

Primer bloque
de datos

FAT
0

n-2

n-1

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

...
Mapa de bits
de nodos-i

Nodos-i

...

...

0 1

......
Bloques de
datos

Mapa de bits
de bloques

27

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

Sistemas Operativos I

Curso 06/07

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:
Permisos rwx
Propietario
Fechas
Tamao en
bloques

Entrada de directorio
N de nodo-i

Nombre del fichero

7 bloques
directos
Indirecto simple
Indirecto doble

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

d2

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.

28

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

Sistemas Operativos I

E. U. de Informtica

Curso 06/07
Departamento de Informtica Aplicada

Examen Final de Sistemas Operativos I


EJERCICIO 3 (3,5 puntos)

10 de diciembre de 2003

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 inodo 12 y los bloques lgicos que contienen los datos de este fichero estn almacenados en los siguientes bloques
fsicos:
N Bloque lgico
N Bloque fsico

0
81000

1
81002

2
81003

3
54500

4
54501

5
54502

6
77600

7
77601

8
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.
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);
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.

29

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

Sistemas Operativos I

E. U. de Informtica

Curso 06/07

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.

30

Anda mungkin juga menyukai