Sie sind auf Seite 1von 41

Sistemas Operativos

Ejercicios
Mario Medina C.
mariomedina@udec.cl
Versin 0.4
1er. Semestre 2009

Introduccin
Este documento rene ejercicios de sistemas operativos asignados en el curso de Sistemas Operativos de la carrera de Ingeniera Civil Electrnica, entre los aos 2004 y 2009, muchos de ellos
incluyendo un esbozo de solucin. Se hacen pblicos en la esperanza que sean una ayuda para el
estudio de la asignatura.
Se agradece la colaboracin de todos aquellos alumnos que hicieron notar errores y realizaron
comentarios a los ejercicios y soluciones dadas. Asimismo, en caso de detectarse algn error en los
ejercicios sus soluciones, se ruega contactar al autor via su e-mail, mariomedina@udec.cl.
Buen provecho.
Mario Medina C.
Concepcin, 8 de abril de 2009.

ndice general
Introduccin

1. Concurrencia de procesos

2. Bloqueos mortales

3. Planificacin de procesos

12

4. Administracin de memoria

18

5. Administracin de entrada/salida

30

6. Miscelnea

37

ii

1 Concurrencia de procesos
1. Una cadena de montaje utiliza una correa transportadora por donde circulan tres productos: A, B y C. En un extremo de la cadena, existen tres robots, R1 , R2 y R3 . El robot R1
retira de la cinta los productos A y B y los empaqueta juntos. Los robots R2 y R3 realizan
la misma accin para los productos B y C, y A y C, respectivamente. Estas son las nicas
combinaciones de productos vlidas. El proceso generador de productos llama a la funcin
InsertaProductos(P1, P2), mientras que los robots llaman a las funciones RetiraProductos(P1, P2)
y EmpaquetaProductos(P1, P2). Escriba cdigo que sincronice el proceso generador y los procesos robot de manera que el proceso generador no pueda agregar elementos a la cinta
si stos no han sido retirados por un robot, y adems que slo un robot retire productos de la cinta a la vez. Use las primitivas de paso de mensajes send(destino, mensaje} y
receive(destino, mensaje}.
Solucin
Se presenta el cdigo del proceso generador y del robot R1 . El cdigo de los robots R2 y R3
es similar. receive(ANY) indica que cualquier proceso puede escribir en esta casilla. Alternativamente, se realiza una llamada a receive () por cada send().
Generador ( )
{
Message mensaje ;
while ( t r u e ) {
I n s e r t a P r o d u c t o s ( prod1 ,
i f ( prod1 == A && prod2
send ( R1 , &mensaje ) ;
}
i f ( prod1 == B && prod2
send ( R2 , &mensaje ) ;
}
i f ( prod1 == A && prod2
send ( R3 , &mensaje ) ;
}
r e c e i v e (ANY, mensaje ) ;
}

prod2 ) ;
== B ) {
== C) {
== C) {

}
R1 ( )
{
Message mensaje ;
while ( t r u e ) {

r e c e i v e ( Generador , &mensaje ) ;
R e t i r a P r o d u c t o s (A, B ) ;
EmpaquetaProductos (A, B ) ;
send ( Generador , &mensaje ) ;
}
}

2. Un sistema multiprocesador tiene 8 procesadores y 20 unidades lectoras de cinta. Hay un


gran nmero de trabajos en el sistema, y ellos necesitan como mximo 4 lectoras de cinta
para completar su ejecucin. Cada trabajo comienza su ejecucin usando slo 3 unidades
lectoras de cinta, las que retiene durante un largo perodo antes de requerir la cuarta unidad
por un perodo corto, para despus terminar su ejecucin.
a) Supngase que el sistema operativo no activa un trabajo hasta que estn disponibles las
4 unidades de cinta requeridas. Al comenzar la ejecucin del trabajo, se le asignan las
4 unidades y stas no se liberan hasta que el trabajo ha terminado.
1) Cul es el nmero mximo de trabajos que pueden avanzar al mismo tiempo?
2) Cul es el nmero mximo y mnimo de unidades lectoras de cinta que pueden
estar desocupadas con esta estrategia?
b) Sugiera una tctica alternativa para incrementar la utilizacin de los recursos y al mismo tiempo, evitar los bloqueos mortales.
1) Cul es el nmero mximo de trabajos que pueden avanzar al mismo tiempo?
2) Cul es el nmero mximo y mnimo de unidades lectoras de cinta que pueden
estar desocupadas con esta nueva estrategia?
Solucin
a) Si se usa una poltica conservadora, a lo ms 20
4 = 5 procesos pueden estar activos en un
instante dado. Ya que una de la unidades de cinta asignadas a cada proceso estar ociosa
la mayor parte del tiempo, a lo ms 5 unidades lectoras de cinta estarn desocupadas
con esta estrategia. En el mejor caso, cada proceso estar usando las 4 unidades de cinta
asignadas y 0 unidades de cinta estn desocupadas.
b) Para mejorar la utilizacin de los recursos, cada proceso tendr asignado inicialmente 3
unidades lectoras de cinta. La cuarta unidad ser asignada cuando el proceso lo demande. Con esta poltica, a lo ms 20
3 = 6 procesos pueden estar activos simultneamente.
Entonces, el nmero mnimo de unidades lectoras desocupadas es 0, y el mximo es 2.
Como 6 procesos activos utilizan en total 18 unidades, siempre habr 2 unidades libres
para ser asignadas al proceso que las requiera, y no habr entonces bloqueos mortales.
3. Considere el algoritmo de Dekker, extendido para asegurar exclusin mutua a un nmero
arbitrario de procesos. Para ello, se modifica la lnea de cdigo a ejecutar cuando se abandona
la seccin crtica a turno = (turno + 1) %n. Evaluar este algoritmo extendido cuando el nmero
de procesos que se ejecutan concurrentemente n es mayor que 2.

Solucin
La solucin propuesta asegura exclusin mutua y evita los bloqueos mortales. Sin embargo,
puede ocurrir que el turno sea asignado a un proceso que no est interesado en entrar a su
seccin crtica, con lo que se produce inanicin.
4. Un estudiante aventajado de Sistemas Operativos propone la siguiente solucin al problema
de exclusin mutua. Bsque un contraejemplo que demuestre que esta solucin es incorrecta.
Nota: la funcin cobegin(P(0), P(1)) indica la ejecucin paralela de dos instancias del proceso
P, con argumentos 0 y 1.
boolean blocked [ 2 ] ;
i n t turno ;
void P ( i n t i d )
{
while ( t r u e )
{
blocked [ i d ] = t r u e ;
while ( turno != i d )
{
while ( blocked [ 1 i d ] )
{
/ * No h a c e r nada * / ;
}
turno = i d ;
}
/* Seccion Critica */
blocked [ i d ] = f a l s e ;
/ * R e s t o d e l programa * /
}
}
void main ( )
{
blocked [ 0 ] = f a l s e ;
blocked [ 1 ] = f a l s e ;
turno = 0 ;
cobegin ( P ( 0 ) , P ( 1 ) ) ;
}

Solucin
Considere el caso en que inicialmente turno = 0. El proceso P(1) hace blocked[1] = true y luego
halla blocked[0] = false . En ese momento, es intercambiado por el proceso P(0), que hace
blocked[0] = true, verifica que turno = 0 e ingresa a su seccin crtica. En ese momento, el
sistema operativo vuelve a ejecutar P(1), que hace turno = 1 y tambin entra en su seccin
crtica. Por ende, como ambos procesos estn en su seccin crtica al mismo tiempo, esta
solucin no asegura exclusin mutua.

5. Considere el siguiente programa:


const i n t n = 5 0 ;
i n t cuenta ;
void t o t a l ( )
{
i n t cont ;
f o r ( cont = 1 ; cont <= n ; cont ++)
{
cuenta ++;
}
}
void main ( )
{
cuenta = 0 ;
cobegin ( ( t o t a l ( ) , t o t a l ( ) ) ;
w r i t e ( cuenta ) ;
}

a) Determine los lmites inferior y superior para el valor final de la variable compartida cuenta. No realice ninguna suposicin sobre la velocidad relativa de los procesos.
Suponga adems que el programa se ejecuta sobre una arquitectura RISC.
b) Suponga que se ejecutan n copias de la funcin total () . Cules sern ahora los lmites
para cuenta?
Nota: la funcin cobegin(P(0), P(1)) indica la ejecucin paralela de dos instancias de P, con
argumentos 0 y 1.
Solucin
a) El lmite superior es trivial: si no hay problemas de concurrencia, cuenta debiera ser
igual a 100. Para obtener el lmite inferior, analicemos el peor caso:
1) Proceso A lee cuenta a un registro, lo incrementa a 1, y pierde el procesador.
2) Proceso B lee cuenta (que an es 0), lo incrementa 49 veces, y pierde el procesador
despus de escribir el valor 49 en cuenta.
3) Proceso A recupera el procesador, escribe el valor 1 en cuenta, y pierde el procesador nuevamente.
4) Proceso B lee cuenta (que tiene el valor 1) a un registro, incrementa el registro a 2 y
pierde el procesador.
5) Proceso A recupera el procesador, incrementa cuenta 49 veces, por lo que cuenta
toma el valor 50.
6) Proceso B se reactiva por ltima vez, y almacena el valor 2 en cuenta.
Por lo tanto, el lmite inferior de cuenta es 2.
b) En el caso de n procesos, los lmites de cuenta sern 2 y 50n.

6. Sea la siguiente implementacin de las operaciones wait() y signal () sobre un semforo s:


wait ( s ) {
while ( TestAndSet ( l o c k ) ) {
; / * No h a c e r nada * /
}
while ( s <= 0 ) {
; / * No h a c e r nada * /
}
s = s 1;
lock = 0;
}
signal ( s ) {
while ( TestAndSet ( l o c k ) ) {
; / * No h a c e r nada * /
}
s = s + 1;
lock = 0;
}

Suponiendo que lock tiene un valor inicial de 0 y s un valor inicial de 1, indique si la implementacin mostrada es correcta. En caso contrario, presente un caso donde se ilustra el
problema con esta implementacin.
Solucin
Primero, recordemos la implementacin de la instruccin TestAndSet(&i) vista en clases.
i f ( i == 0 ) {
i = 1;
return 1 ;
}
else {
return 0 ;
}

/* 0 es f a l s o */
/* 1 es verdadero */

Considere tres procesos, A, B y C. Suponga que A ejecuta la funcin wait() y por ende la
funcin TestAndSet(). Entonces, la variable lock tomar el valor 1, TestAndSet() retorna 1, y
el ciclo while se repite. Esta vez TestAndSet() retorna 0 y el proceso A decrementa en 1 el
semforo s, hacindolo igual a 0. Por ltimo, el proceso A hace lock igual a false .
Luego, el proceso B ejecuta la funcin wait() , nuevamente ejecuta TestAndSet() dos veces,
dejando al final la variable lock igual a 1. Esta vez, el proceso B se queda esperando en
el segundo lazo ya que el semforo s tiene valor 0. Ahora, el proceso C ejecuta la funcin
wait() . C ejecuta TestAndSet() una vez, y queda esperando en el segundo lazo ya que s tiene
valor 0.
El proceso A ejecuta signal () , hace s igual a 1 y lock igual a 0. El proceso B verifica el valor
de s, y sale del lazo. En ese momento, el proceso B es suspendido y se ejecuta el proceso C.
C verifica el valor de s, y sale del lazo. En ese momento es suspendido, y se vuelve a ejecutar

el proceso B. Tenemos entonces dos procesos, B y C, que estn ejecutando cdigo crtico (el
decremento del semforo s).
En resumen, el problema con esta solucin es que los dos procesos pueden quedar en un
lazo de espera dentro de la seccin crtica de la funcin, antes de incrementar el semforo.
7. Indique cules de las siguientes transiciones no se puede producir en un sistema operativo
con un algoritmo de planificacin no expropiativo.
a) Bloqueado a listo
b) Ejecutando a listo
c) Ejecutando a bloqueado
d) Listo a ejecutando
Solucin
Un algoritmo de planificacin no expropiativo es aquel donde, una vez asignada la CPU a
un proceso, ste no pierde la CPU por acciones externas a l. Es decir, el proceso puede pasar
de listo a ejecutando a bloqueado a listo otra vez, pero el sistema operativo no puede obligar a
un proceso en ejecucin a liberar la CPU y retornar a la cola de procesos en espera. Por ello,
la alternativa correcta es b).
8. Considere las siguientes funciones, incrementa() y decrementa(), las cuales son compartidas
por varios procesos:
s t a t i c i n t contador = 0 ;
i n t incrementa ( void )
{
contador ++;
i f ( contador > 5 )
{
p r i n t f ( contador v a l e %N\n , contador ) ;
return 0 ;
}
return 1 ;
}
i n t decrement ( void )
{
while ( contador > 5 )
{
p r i n t f ( contador v a l e % d\n , contador ) ;
contador ;
}
i f ( contador == 0 )
return 0 ;
else
return 1 ;
}

Utilice primitivas mutex de la biblioteca Pthreads para hacer que ambas funciones sean atmicas.

Solucin
El siguiente cdigo muestra una posible solucin.
# include <pthread . h>
pthread_mutex_t cuentaLock = PTHREAD_MUTEX_INITIALIZER ;
s t a t i c i n t count = 0 ;
i n t incrementa ( void )
{
pthread_mutex_lock (& cuentaLock ) ;
contador ++;
i f ( contador > 5 )
{
p r i n t f ( contador % d t i e n e v a l o r > 5\n , contador ) ;
pthread_mutex_unlock (& cuentaLock ) ;
return 0 ;
}
pthread_mutex_unlock (& cuentaLock ) ;
return 1 ;
}
i n t decrement ( void )
{
pthread_mutex_lock (& cuentaLock ) ;
while ( contador > 5 )
{
p r i n t f ( contador % d e s mayor que 5\n , contador ) ;
count ;
}
i f ( count == 0 )
{
pthread_mutex_unlock (& cuentaLock ) ;
return 0 ;
}
else
{
pthread_mutex_unlock (& cuentaLock ) ;
return 1 ;
}
}

9. Otra solucin software al problema de exclusin mutua es el algoritmo de la panadera de


Lamport, el cual, como su nombre lo dice, est modelado en el sistema de turnos de las
panaderas y otros establecimientos comerciales. En este algoritmo, cada cliente recibe un
ticket numerado cuando llega, que le permite ser servido por turno. El algoritmo es como
sigue:
boolean e l i g i e n d o [ n ] ;
i n t numero [ n ] ;
int j ;
while (TRUE)
{

e l i g i e n d o [ i ] = TRUE ;
numero [ i ] = 1 + maximo ( numero [ ] ) ;
e l i g i e n d o [ i ] = FALSE ;
f o r ( j = 0 ; j < n ; j ++)
{
while ( e l i g i e n d o [ j ] )
continue ;
while ( ( numero [ j ] != 0 ) && ( numero [ j ] , j ) < ( numero [ i ] , i ) )
continue ;
}
/* Seccion c r i t i c a */
numero [ i ] = 0 ;
}

donde la notacin (a, b) < (c, d) se define como (a < c) OR (a = c AND b < d). Los vectores
eligiendo[] y numero[] son inicializados a los valores FALSE y 0, respectivamente. la funcin
maximo(numero[]) retorna el mximo valor almacenado en el vector numero. El elemento isimo de cada vector puede ser ledo y escrito por el proceso i solamente pero puede ser
ledo por otros procesos.
a) Describa el algoritmo en palabras
b) Demuestre que el algoritmo evita los bloqueos mortales
c) Demuestre que el algoritmo asegura exclusin mutua

2 Bloqueos mortales
1. Suponga un sistema computacional que consta de mltiples unidades del recurso R. En este
sistema se ejecutan p procesos, tal que cada uno de ellos puede necesitar hasta k unidades
del recurso R. Cuntas unidades del recurso R deben existir como mnimo para asegurar la
ausencia de bloqueos mortales?
Solucin
Es claro que si hay pk unidades del recurso R, no habr bloqueos mortales en el sistema. Asimismo, si slo hay p(k 1) unidades, es posible que cada proceso adquiera k 1 unidades del
recurso R y que todos los procesos queden bloqueados esperando adquirir el ltimo recurso.
Si se agrega una unidad ms, entonces uno de los procesos tendr k recursos asignados y
podr terminar. Es decir, habr p 1 procesos con k 1 recursos asignados, y un proceso
dueo de k recursos. Por lo tanto, el nmero mnimo de unidades necesarias para asegurar
la ausencia de bloqueos mortales es p(k 1) + 1.
2. Sea el siguiente estado de asignacin de recursos

1 1 0
3 0 2
h
i

Asignacin = 0 1 2 , Demanda = 2 2 0 , Disponible = 2 1 2

1 0 0
1 1 2

a) Utilice el algoritmo del banquero para determinar si ste es un estado seguro.


b) Supngase que en ese instante llega una solicitud de P3 por una unidad de R3 . Se concedera esta solicitud en un sistema que utilice un algoritmo de prediccin?
c) Supngase que al instante siguiente llega una solicitud de P2 por una unidad de R1 . Se
concedera esta solicitud en un sistema que utilice un algoritmo de prediccin?
Solucin
a) El algoritmo del banquero dice que ste es un estado seguro, ya que los tres procesos
pueden ejecutarse con los recursos disponibles, en la secuencia P3 P1 P2 .

b) S, porque la secuencia an puede completarse. Las nuevas matrices seran:

1 1 0
3 0 2
h
i

Asignacin = 0 1 2 , Demanda = 2 2 0 , Disponible = 2 1 1

1 0 1
1 1 1

c) No, porque se llega a un estado inseguro. Las matrices despus de asignado el recurso
seran:

3 0 2
1 1 0
h
i

Asignacin = 1 1 2 , Demanda = 1 2 0 , Disponible = 1 1 1

1 1 1
1 0 1

P3 es el nico proceso que puede ejecutarse hasta terminar, lo que dejara el sistema en
la siguiente situacin:

3 0 2
1 1 0
h
i

Asignacin = 1 1 2 , Demanda = 1 2 0 , Disponible = 2 1 2

0 0 0
0 0 0

Claramente, ninguno de los otros procesos puede satisfacer su demanda de recursos


con los recursos disponibles.
3. Sea la siguiente solucin al problema de los filsofos comensales:
int estado [ 5 ] ;
/ * E s t a d o de l o s f i l s o f o s * /
semaforo sem [ 5 ] = { 0 , 0 , 0 , 0 , 0 } ;
semaforo mutex = 1 ;
/ * Asegura e x c l u s i n mutua * /
tomaTenedores ( i ) {
wait ( mutex ) ;
e s t a d o [ i ] = HAMBRIENTO;
test ( i );
s i g n a l ( mutex ) ;
wait ( sem [ i ] ) ;
}
liberaTenedores ( i ) {
wait ( mutex ) ;
e s t a d o [ i ] = PENSANDO;
t e s t ( ( i + 1) %N ) ;
t e s t ( ( i 1) %N ) ;
s i g n a l ( mutex ) ;
}
test ( i ) {
i f ( e s t a d o [ i ] == HAMBRIENTO &&
e s t a d o [ ( i 1) %N] != COMIENDO &&
e s t a d o [ ( i + 1) %N] != COMIENDO) {
e s t a d o [ i ] = COMIENDO;
s i g n a l ( sem [ i ] ) ;
}
}

a) Demuestre que esta solucin previene los bloqueos mortales.


b) Demuestre que esta solucin puede dejar a un filsofo morirse de hambre.

10

Solucin
a) El filsofo Fi puede pasar al estado COMIENDO slo si ninguno de sus vecinos filsofos
est comiendo. Si, mientras Fi cena, su vecino F(i1) %N su vecino F(i+1) %N intentan
coger los tenedores, estos filsofos quedarn bloqueados al ejecutar sem[i] en la funcin
tomaTenedores(). Una vez que Fi termine con su spaghetti, ceder sus tenedores primero a su vecino a mano izquierda F(i1) %N , y luego a su vecino a mano derecha F(i+1) %N ,
mediante la ejecucin de signal(sem[i]) . El semforo mutex controla el acceso a las variables compartidas estado[] y sem[]. Al bloquear a un filsofo que intenta coger un tenedor
que est siendo usado, este mtodo asegura la exclusin mutua entre filsofos.
b) Suponga que, inicialmente, los filsofos F2 y F4 estn deleitandose con un rico spaghetti, mientras que los filsofos F0 , F1 y F3 estn mirndolos hambrientos. Suponga,
adems, que en cuanto un filsofo comienza a pensar, le da hambre (pensar es un trabajo que consume mucha energa!). Imagine, entonces, que se da la siguiente secuencia
de eventos:
F4 termina de cenar.
F0 comienza a comer, pues F1 y F3 estn bloqueados por F2 .
F2 termina de cenar.
F3 comienza a comer, pues F1 y F4 estn bloqueados por F0 .
F3 termina de cenar.
F2 comienza a comer, pues F1 y F4 estn bloqueados por F0 .
F0 termina de cenar.
F4 comienza a comer, pues F1 y F3 estn bloqueados por F2 .
Esta secuencia se puede repetir indefinidamente, y condena al pobre filsofo F1 a morirse de inanicin.

11

3 Planificacin de procesos
1. En un centro de cmputo se reciben cinco trabajos, detallados en la siguiente tabla:

Nombre Duracin Prioridad tllegada


7
8
3
6
5

A
B
C
D
E

6
3
7
9
4

0
2
3
5
6

Se considera que, a menor valor, mayor es la prioridad. Determine el tiempo medio de retorno Tr para cada uno de los siguientes algoritmos de planificacin.
a) Turno rotatorio con quantum = 3
b) Planificacin por prioridades
c) Shortest Remaining Time (SRT)
d) Highest Response Ratio Next (HRRN)
Solucin
Las figuras 3.1, 3.2, 3.3 y 3.4 muestran los diagramas de tiempo para los algoritmos de planificacin especificados. Se aplicaron los siguientes criterios:
Para el algoritmo de planificacin via turno rotatorio, se supone que la cola de procesos
en espera es una cola FIFO que da preferencia a los procesos nuevos.
El algoritmo de planificacin HRRN es no expropiativo, mientras que los algoritmos de
planificacin mediante turno rotatorio, prioridades y SRT son expropiativos.

A
B
C
D
E

12

15

18

21

24

27

Figura 3.1: Diagrama de tiempo, planificacin via turno rotatorio, quantum = 3

12

A
B
C
D
E

12

15

18

21

24

27

Figura 3.2: Diagrama de tiempo, planificacin via prioridades

A
B
C
D
E

12

15

18

21

24

27

Figura 3.3: Diagrama de tiempo, planificacin via algoritmo Shortest Remaining Time

A
B
C
D
E

12

15

18

21

24

27

Figura 3.4: Diagrama de tiempo, planificacin via algoritmo Highest Response Ratio Next

13

El cuadro 3.1 muestra los tiempos de retorno para cada proceso y el tiempo medio de retorno
para cada algoritmo de planificacin.
Cuadro 3.1: Tiempos medios de retorno para los algoritmos enumerados
Proceso Turno rotatorio Prioridades SRT HRRN
Tr (A)
Tr (B)
Tr (C)
Tr (D)
Tr (E)
Tr

22
27
6
20
21

20
8
20
24
9

10
27
3
16
9

7
16
7
24
17

19,2

16,2

13

14,2

2. Suponga que dispone de un sistema operativo de propsito general que realiza planificacin
de procesos via prioridades. Se tiene, entonces, que en cada activacin del sistema operativo
puede ocurrir una de las siguientes alternativas:
a) No cambia el estado de ningn proceso
b) Cambia el estado de un proceso pero no hay cambio de contexto
c) Hay un cambio de contexto voluntario (causado por el proceso)
d) Hay un cambio de contexto involuntario (causado por el sistema operativo)
Analice cules de estas alternativas pueden ocurrir para cada uno de los siguientes casos,
planteando en cada caso una situacin que sirva como ejemplo.
a) Se produce una interrupcin de reloj
b) Se produce una interrupcin del disco
c) Se produce una llamada al sistema
Solucin
Se puede indicar a priori que una interrupcin nunca puede causar un cambio de contexto
voluntario. Este tipo de cambio de contexto slo puede ocurrir por una llamada al sistema
operativo que cause el bloqueo del proceso que la invoc.
a) Al ocurrir una interrupcin de reloj, pueden ocurrir los casos a, b y d.
Puede ocurrir que el sistema operativo procese la interrupcin y determine que no
es necesario cambiar el estado de ningn proceso. Este es el caso de la mayora de
las interrupciones de reloj, que simplemente realizan las labores tpicas asociadas
como actualizar la hora del sistema, labores de contabilidad, etc.
Una interrupcin de reloj puede despertar a algn proceso bloqueado que haya
ejecutado la funcin del sistema sleep () para dormir un perodo determinado. Si

14

la prioridad de este proceso es menor que la del proceso en ejecucin, slo hay un
cambio de estado y el proceso desbloqueado entra en la cola de procesos listos.
En cambio, si la prioridad del proceso despertado es mayor que la del proceso en
ejecucin, el sistema operativo expropiar la CPU del proceso en ejecucin y habra
un cambio de contexto involuntario.
b) En caso de una interrupcin de disco, sta siempre est ligada al proceso que solicit
el acceso a disco. Por ello, no puede ocurrir el caso que no se produzca al menos un
cambio de estado. Entonces, pueden ocurrir las alternativas b y d.
Puede ocurrir que la interrupcin de disco desbloquee algn proceso que est esperando por los datos. Si la prioridad de este proceso es menor que la del proceso
en ejecucin, slo hay un cambio de estado y el proceso desbloqueado entra en la
cola de procesos listos.
En cambio, si la prioridad del proceso desbloqueado es mayor que la del proceso en
ejecucin, el sistema operativo expropiar la CPU del proceso en ejecucin y habra
un cambio de contexto involuntario.
c) En cuanto a las llamadas al sistema, se pueden presentar todas las alternativas.
Una llamada al sistema puede no producir ningn cambio de estado. Por ejemplo,
una llamada que lea la posicin actual del mouse.
Una llamada al sistema puede producir un cambio de estado pero no un cambio de
proceso. Por ejemplo, una llamada al sistema para incrementar un semforo puede
desbloquear algn proceso que est bloqueado en ese semforo. Si este proceso es
de prioridad menor que el proceso en ejecucin, slo hay un cambio de estado y el
proceso desbloqueado entra en la cola de procesos listos.
En cambio, si la prioridad del proceso desbloqueado es mayor que la del proceso en
ejecucin, el sistema operativo expropiar la CPU del proceso en ejecucin y habra
un cambio de contexto involuntario.
Tambin puede producirse un cambio de contexto voluntario si la llamada bloquea
al proceso que la realiza. Por ejemplo, una llamada al sistema para leer datos de un
archivo puede bloquear al proceso que la invoca.
3. En un sistema operativo hay tres procesos en ejecucin, P0 , P1 y P2 . Todos estos procesos
tienen el mismo comportamiento: usan la CPU por un tiempo T , luego solicitan E/S y se
bloquean por un tiempo B, luego usan la CPU por un tiempo T , luego solicitan E/S y se
bloquean por un tiempo B y finalmente usan la CPU por un tiempo T . Todos estos procesos
arriban al mismo tiempo t = 0 en el orden P0 , P1 , P2 y sus solicitudes de CPU y E/S son
planificadas usando el algoritmo FCFS. Los valores de T y B se muestran en la siguiente
tabla.
a) Suponga primero que los tres procesos requieren acceder al mismo dispositivo de entrada/salida, y que las solicitudes por el dispositivo son atendidas en orden FCFS. Realice
un diagrama de tiempo que muestre la ejecucin de estos procesos. Calcule el tiempo
de espera y de respuesta promedio para estos procesos y el porcentaje de utilizacin de
la CPU. Ignore la sobrecarga debida al proceso despachador.

15

Proceso

7
1
1

P0
P1
P2

B
4
2
2

b) Suponga ahora que los tres procesos acceden a dispositivos de entrada/salida diferentes y que las solicitudes por el dispositivo son atendidas en orden FCFS. Realice un
diagrama de tiempo que muestre la ejecucin de estos procesos. Calcule el tiempo de
respuesta promedio para estos procesos y el porcentaje de utilizacin de la CPU. Ignore
la sobrecarga debida al proceso despachador.
c) Suponga ahora que se agrega una nueva CPU al sistema, idntica a la anterior, y que
un proceso puede ser ejecutado indistintamente en cualquiera de las 2 CPUs. Repita el
anlisis anterior, calculando el porcentaje de utilizacin de ambas CPUs.
Solucin
La realizacin de los diagramas de tiempo se deja de ejercicio al lector. De ellas, se pueden
extraer los resultados que se muestran a continuacin.
a) El tiempo de espera promedio es 0+23+24
= 15,6 y el tiempo de respuesta promedio es
3
29+30+31
=
30.
El
porcentaje
de
utilizacin
del procesador es 27
3
31 = 87 %.
b) El tiempo de espera promedio es 0+13+15
= 9,3 y el tiempo de respuesta promedio es
3
29+20+22
= 23,6. El porcentaje de utilizacin del procesador es 93,5 %.
3
= 0,3 y el tiempo de respuesta promedio es
c) El tiempo de espera promedio es 0+0+1
3
29+7+8
=
14,6.
El
porcentaje
de
utilizacin
del primer procesador es 72,4 % y el porcen3
taje de utilizacin del segundo procesador es 20,6 %.
4. Considere el conjunto de procesos mostrados en la siguiente tabla.
Nombre Llegada Duracin
A
B
C
D
E

0
1
3
9
12

3
5
2
5
5

Calcule el tiempo de finalizacin, el tiempo de retorno y el tiempo de retorno normalizado


para cada proceso para las siguientes polticas de planificacin:
First-Come, First-Served (FCFS)
Round-Robin, q = 1 (RR)

16

Shortest Process First (SPF)


Highest Response Ratio Next (HRRN)
5. Qu tipo de proceso se ve favorecido por un sistema de planificacin de procesos que utiliza
colas multinivel con realimentacin: un proceso que hace uso intensivo de la CPU, o un
proceso que se ve dominado por el costo de realizar E/S? Explique brevemente por qu.
6. En un sistema operativo arriban simultneamente 4 trabajos de la duracin y prioridades
indicadas en el siguiente cuadro, pero en el orden A, B, C, D.

Proceso Duracin Prioridad


8
5
3
7

A
B
C
D

2
4
2
3

Para los siguientes algoritmos de planificacin, realice un diagrama que muestre el orden
de ejecucin de estos trabajos, e identifique el algoritmo con menor tiempo de respuesta.
Suponga que, a mayor valor, menor prioridad.
a) Planificacin por prioridades no expropiativa
b) Planificacin cclica con un quantum de 2 unidades de tiempo
c) FIFO
7. Supngase un conjunto de tres tareas peridicas con los perfiles que se indican en el siguiente cuadro.
Nombre 1ra Ejecucin Perodo Duracin
A
B
C

0
0
0

20
50
50

10
10
15

Es decir, la tarea A se ejecuta cada 20 ciclos, demora 10 ciclos en ejecutarse, y su primera


ejecucin ocurre al tiempo t = 0.
Realice un diagrama de tiempo que muestre cmo se planifican estas tareas para una poltica
de planificacin por plazos de trmino.

17

4 Administracin de memoria
1. Sea un computador que dispone de 36 MiB de memoria principal, y cuyo sistema operativo
ocupa 4 MiB sin incluir las estructuras necesarias para la administracin de la memoria.
En este computador, se prev la ejecucin de aplicaciones con un espacio de direcciones
compuesto por 3 segmentos, cdigo, datos y pila, con tamaos promedio de 264 KiB, 124
KiB y 124 KiB, respectivamente.
Se desea implementar un sistema de administracin de memoria, siendo los posibles esquemas a seguir los siguientes:
Asignacin contigua con particiones dinmicas, tal que cada proceso ocupa una nica
particin.
Paginacin simple.
Segmentacin simple.
Memoria virtual paginada.
Memoria virtual segmentada.
Para los sistemas basados en pginas, considere que el tamao de la pgina es de 4 KiB y que
cada entrada en la tabla de pginas es de 4 bytes. Para los sistemas basados en segmentos, el
tamao mximo de un segmento es 16 MiB. Suponga que los esquemas con memoria virtual
usan una poltica de asignacin fija que otorga a cada proceso 16 marcos de pgina.
Para cada uno de los esquemas anteriores, se pide analizar lo siguiente:
a) La memoria utilizada por el sistema de gestin de memoria para las estructuras de
datos que Ud. determine son necesarias.
b) La memoria perdida debido al esquema usado, indicando la razn de dicha prdida.
En los casos que no disponga de otros datos, y sea aplicable, considere que la memoria
perdida debido al esquema de administracin de memoria utilizada es de un 25 %.
c) El grado de multiprogramacin posible de alcanzar en este sistema, para el tamao
promedio de procesos dado.
d) El tamao mximo del proceso que se puede ejecutar.
Solucin
Dado el espacio ocupado por el sistema operativo, quedan 32 MiB disponibles para la ejecucin de programas y para las estructuras de datos necesarias para la administracin de
memoria.

18

Asignacin Contigua
En este esquema de administracin de memoria, la memoria es dividida dinmicamente
tanto en nmero como en tamao de acuerdo a las caractersticas de los procesos a ejecutar.
Un proceso es asignado exactamente la memoria que necesita y nada ms.
a) En este caso, basta con un par de palabras por proceso que indiquen la direccin de
memoria donde comienza el proceso (registro base) y la longitud del mismo (registro
lmite). Estas palabras, que pueden almacenarse en memoria o en registros dedicados
del procesaor, solucionan los problemas de reubicacin y proteccin.
Aparte de estas dos palabras por proceso, el sistema de administracin de memoria
requiere saber en todo momento qu secciones de la memoria estn disponibles. Esto
puede implementarse como una lista encadenada de punteros a las reas de memoria
libre, junto con informacin sobre su tamao. Para calcular las dimensiones de esta
lista, es necesario saber el grado de multiprogramacin.
b) En este esquema de administracin de memoria se produce fragmentacin externa.
Segn el enunciado, supondremos que la memoria que se pierde como consecuencia
de la fragmentacin externa es un 25 % de la memoria disponible, es decir, 8 MiB.
c) El tamao promedio de un proceso es de 512 KiB. Dado que se pierden 8 MiB de memoria, slo 24 MiB de memoria estn disponibles para almacenar procesos. Por ende,
slo 48 procesos pueden estar residentes en memoria a la vez.
d) El tamao mximo del proceso que se puede ejecutar bajo este esquema de administracin de memoria est dado por la memoria disponible. Si suponemos que hay slo
un proceso en memoria, no habr fragmentacin externa y la memoria disponible ser
32 MiB, menos la memoria necesaria para almacenar las estructuras detalladas en la
primera parte de esta pregunta.
Paginacin Simple
En este esquema, tanto el proceso como la memoria estn divididos en pginas y marcos de
pginas de 4 KiB de tamao. En un esquema de paginacin simple (no hay memoria virtual),
todas las pginas del proceso deben estar residentes en memoria durante su ejecucin.
a) En este caso, se necesita una tabla de pginas por cada proceso, cuyo tamao vara en el
tiempo de acuerdo con el comportamiento de cada proceso. Asimismo, se necesita una
lista encadenada de los marcos de pgina libres. La memoria disponible para procesos
de usuario (32 MiB) est dividida entonces en 8192 marcos de pgina. Dado que cada
entrada en una tabla de pginas es de 4 bytes, una tabla de pginas direcciona a lo ms
1024 pginas, y son necesarias como mximo 8 tablas de pgina y una tabla de pginas
maestra por cada proceso.
b) Este esquema de administracin de memoria presenta fragmentacin interna. sta se
presenta en la ltima pgina de un proceso y su tamao es, en promedio, la mitad de
un pgina, es decir, 2 KiB por proceso. Para calcular cunta memoria se pierde en total,
es necesario conocer el grado de multiprogramacin. Si hay slo un proceso gigante
en ejecucin, la memoria perdida por fragmentacin ser de 2 KiB. Por el contrario, si

19

hay 8192 procesos en ejecucin, ocupando un marco de pgina cada uno, la memoria
promedio perdida por fragmentacin ser de 16 MiB. Este ltimo caso no considera la
memoria necesaria para almacenar las estructuras detalladas en el punto anterior.
c) Dado que el tamao promedio de un proceso es 512 KiB, ste ocupa 128 marcos de pgina y su tabla de pginas cabe en una pgina. Por ende, un proceso ocupa 129 marcos.
Dado que la memoria total es de 8192 marcos de pgina, es posible tener como mximo
63 procesos en ejecucin en forma simultnea. En este caso, la memoria perdida por
fragmentacin interna es de 63 2 KiB = 126 KiB. Esto representa menos del 1 % de la
memoria disponible para los programas de usuario.
d) Como se mencion, el tamao mximo del proceso est dado por la memoria disponible
(32 MiB) menos las 9 pginas necesarias para almacenar su tabla de pginas. Entonces,
el tamao mximo est dado por (8192 9) 4 KiB = 32732 KiB.
Segmentacin Simple
Cada programa est dividido en un conjunto de segmentos, no siendo necesario que stos
estn contiguos en memoria ni que tengan el mismo tamao. En nuestro caso, cada programa consta de un segmento de cdigo, uno de datos y uno de pila. En un esquema de
segmentacin simple (no hay memoria virtual), todos los segmentos del proceso deben estar
residentes en memoria durante su ejecucin.
a) La administracin de memoria en este caso es similar al esquema de asignacin contigua. Adems de la lista encadenada de reas libres de memoria, es necesario disponer
de registros base y lmite para cada segmento del proceso, es decir, 6 registros en total
por cada proceso.
b) En este caso, supondremos que la fragmentacin externa es de 8 MiB (el 25 % de la
memoria disponible para programas).
c) El grado de multiprogramacin que se puede alcanzar es equivalente al primer caso,
es decir, 48 procesos, con la diferencia que los procesos no se encuentran contiguos en
memoria.
d) El tamao mximo de un proceso est determinado por la memoria fsica disponible,
es decir, ser de 32 MiB, menos el espacio ocupado por la lista encadenada de punteros
a reas libres. Cada segmento no puede ser mayor a 16 MiB.
Memoria Virtual Paginada
A diferencia del caso de paginacin simple, no es necesario que todas las pginas del proceso
estn en memoria principal para su ejecucin.
a) Se necesita una tabla de pginas por proceso. Dado que cada proceso tiene asignadas
slo 16 pginas, son necesarios slo 64 bytes para almacenarla. Sin embargo, podemos
suponer que la tabla de pginas ocupa 1 pgina.
b) En este caso, la memoria que se pierde por fragmentacin interna se produce en la
ltima pgina del espacio de direcciones virtuales del proceso. Dado que el administrador de memoria otorga un nmero fijo de 16 marcos de pgina a cada proceso, la
probabilidad que la ltima pgina del proceso se encuentre en memoria principal en

20

16
un momento determinado est dada por 128
, es decir, el nmero de pginas asignadas
al proceso dividido por el nmero de pginas total del proceso. Si sabemos el grado de
multiprogramacin, podremos determinar la memoria perdida.

c) El tamao que ocupa cada proceso en memoria principal est dado por los 16 marcos
de pginas del proceso, y la pgina que ocupa su tabla, es decir, ocupa 17 4 = 68 KiB.
Luego, es posible tener hasta 481 procesos en memoria. La memoria usada por todas
las tablas de pgina es de 481 pginas 1924 KiB, y la memoria total perdida debido a
16
481 2 = 120,25 KiB, prcticamente igual a lo que
la fragmentacin interna ser 128
se pierde si se usa paginacin simple.
Memoria Virtual Segmentada
Este caso es similar a la segmentacin simple, excepto que no es necesario que todos los
segmentos del proceso estn en memoria simultneamente.
a) En forma similar al caso de segmentacin simple, se requieren 3 registros por proceso,
uno para cada segmento. Adems, se requiere de una estructura de datos que lleve el
control de los espacios de memoria disponibles.
b) Nuevamente, tendremos fragmentacin externa de 8 MiB.
c) En este caso, no sabemos cunta memoria fsica es reservada para cada proceso por
el sistema operativo. Si suponemos, por ejemplo, que es necesario que el segmento de
cdigo de un proceso permanezca en memoria todo el tiempo, entonces el grado de
multiprogramacin estar dado por 32768
264 = 124 procesos.

d) El tamao mximo de un proceso est determinado por la memoria fsica disponible,


es decir, ser de 32 MiB, menos el espacio ocupado por la lista encadenada de punteros
a reas libres. Cada segmento no puede ser mayor a 16 MiB.
2. Considrese un tamao de pgina de 4 KiB y una entrada en la tabla de pginas de 4 bytes.
Cuntos niveles de tablas de pgina seran necesarios para la traduccin de un espacio de
direcciones de 64 bits, si el tamao de la tabla de pginas maestra es una pgina?
Solucin
Dado que cada pgina tiene 4 KiB, y cada entrada en una tabla de pginas ocupa 4 bytes, entonces una tabla de pginas tiene a lo ms 210 = 1024 entradas. Como cada pgina
contiene 212 bytes, un sistema de un nivel de tablas de pgina puede direccionar a lo ms
210 212 = 222 = 4 MiB. Un sistema de dos niveles de tablas de pginas puede direccionar a
lo ms 232 = 4 GiB. Un sistema de 5 niveles puede direccionar 262 = 4 EiB, mientras que un
sistema de 6 niveles puede direccionar 272 = 4 ZiB. Dado que el espacio de direcciones es de
64 bits, se requieren 6 niveles de tablas de pgina. La tabla de pginas maestra tendr slo
4 entradas en uso. (Recuerde que los prefijos son: Kilo, Mega, Giga, Tera, Peta, Eta, Zetta,
Yotta)

21

3. Un proceso tiene 8 pginas virtuales en el disco, y se asignan con una ubicacin fija de 4
marcos de pgina en la memoria principal. Se produce la siguiente secuencia de accesos a
pginas:
1 0 2 2 1 7 6 7 0 1 2 0 3 0 4 5 1 5 2 4 5 6 7 6 7 2 4 2 7 3 3 2 3

Considere que los marcos estn inicialmente vacos. Muestre la secuencia de pginas residentes en los 4 marcos y calcule la tasa de aciertos en la memoria principal, si se utilizan
polticas de reemplazo:
a) LRU
b) FIFO
c) MRU
d) OPT
Solucin
A continuacin, se muestran el contenido de los 4 marcos de pgina para cada poltica de
reemplazo, indicando las faltas de pginas asociadas.
16
33

a) La tasa de aciertos para la poltica LRU es

= 48 %

1 0 2 2 1 7 6 7 0 1 2 0 3 0 4 5 1 5 2 4 5 6 7 6 7 2 4 2 7 3 3 2 3
1

1
0

1
0
2

1
0
2

1
0
2

1
0
2
7
F

1
6
2
7
F

1
6
2
7

1
6
0
7
F

1
6
0
7

1
2
0
7
F

1
2
0
7

1
2
0
3
F

1
2
0
3

4
2
0
3
F

4
5
0
3
F

4
5
0
1
F

4
5
0
1

b) La tasa de aciertos para la poltica FIFO es

4
5
2
1
F

16
33

4
5
2
1

4
5
2
1

4
5
2
6
F

4
5
7
6
F

4
5
7
6

4
5
7
6

2
5
7
6
F

2
4
7
6
F

2
4
7
6

2
4
7
6

2
4
7
3
F

2
4
7
3

2
4
7
3

2
4
7
3

= 48 %

1 0 2 2 1 7 6 7 0 1 2 0 3 0 4 5 1 5 2 4 5 6 7 6 7 2 4 2 7 3 3 2 3
1

1
0

1
0
2

1
0
2

1
0
2

1
0
2
7
F

6
0
2
7
F

6
0
2
7

6
0
2
7

6
1
2
7
F

6
1
2
7

6
1
0
7
F

6
1
0
3
F

6
1
0
3

4
1
0
3
F

4
5
0
3
F

4
5
1
3
F

4
5
1
3

c) La tasa de aciertos para la poltica MRU es

4
5
1
2
F

16
33

4
5
1
2

4
5
1
2

6
5
1
2
F

6
7
1
2
F

6
7
1
2

6
7
1
2

6
7
1
2

6
7
4
2
F

6
7
4
2

6
7
4
2

6
7
4
3
F

6
7
4
3

2
7
4
3
F

2
7
4
3

= 48 %

1 0 2 2 1 7 6 7 0 1 2 0 3 0 4 5 1 5 2 4 5 6 7 6 7 2 4 2 7 3 3 2 3
1

1
0

1
0
2

1
0
2

1
0
2

1
0
2
7
F

1
0
2
6
F

1
0
2
7
F

1
0
2
7

1
0
2
7

1
0
2
7

1
0
2
7

1
3
2
7
F

1
0
2
7
F

1
4
2
7
F

1
5
2
7
F

22

1
5
2
7

1
5
2
7

1
5
2
7

1
5
4
7
F

1
5
4
7

1
6
4
7
F

1
6
4
7

1
6
4
7

1
6
4
7

1
6
4
2
F

1
6
4
2

1
6
4
2

1
6
4
7
F

1
6
4
3
F

1
6
4
3

1
6
4
2
F

1
6
4
3
F

d) La tasa de aciertos para la poltica OPT es

21
33

= 64 %

1 0 2 2 1 7 6 7 0 1 2 0 3 0 4 5 1 5 2 4 5 6 7 6 7 2 4 2 7 3 3 2 3
1

1
0

1
0
2

1
0
2

1
0
2

1
0
2
7
F

1
0
6
7
F

1
0
6
7

1
0
6
7

1
0
6
7

1
0
6
2
F

1
0
6
2

1
0
3
2
F

1
0
3
2

1
4
3
2
F

1
4
5
2
F

1
4
5
2

1
4
5
2

1
4
5
2

1
4
5
2

1
4
5
2

6
4
5
2
F

6
4
7
2
F

6
4
7
2

6
4
7
2

6
4
7
2

6
4
7
2

6
4
7
2

6
4
7
2

3
4
7
2
F

3
4
7
2

3
4
7
2

3
4
7
2

4. Considere un sistema de memoria virtual en el que existen 4 marcos de pgina inicialmente


vacos. Un proceso genera la siguiente secuencia de referencias a pginas: 8, 1, 3, 1, 4, 5, 2,
3, 4, 5, 1, 2, 3, 6, 1, 8, 4, 1, 3.
a) Indique el nmero de faltas de pgina que ocurren si se utiliza un algoritmo de reemplazo LRU.
b) Indique el nmero de faltas de pgina que ocurren si se utiliza un algoritmo FIFO.
c) Un compaero suyo dice que ha inventado un algoritmo de reemplazo muy sencillo que
incurre en slo 8 faltas de pgina en las condiciones descritas. Qu opinin le merece
este algoritmo?
Solucin
a) Usando la poltica LRU, se producen 14 faltas de pgina.
Referencia

Falta

8
1

8
1
3

8
1
3

8
1
3
4

5
1
3
4

5
1
2
4

5
3
2
4

5
3
2
4

5
3
2
4

5
3
1
4

5
2
1
4

5
2
1
3

6
2
1
3

6
2
1
3

6
8
1
3

6
8
1
4

6
8
1
4

3
8
1
4

b) En el caso FIFO, se producen 13 faltas de pgina.


Referencia

Falta

8
1

8
1
3

8
1
3

8
1
3
4

5
1
3
4

5
2
3
4

5
2
3
4

5
2
3
4

5
2
3
4

5
2
1
4

5
2
1
4

5
2
1
3

6
2
1
3

6
2
1
3

6
8
1
3

6
8
4
3

6
8
4
1

3
8
4
1

c) Si se usa la poltica OPT, se producen 9 faltas de pgina. Por lo tanto, no es posible


disear una poltica que produzca slo 8 faltas de pgina con la secuencia dada.

23

Referencia

Falta

8
1

8
1
3

8
1
3

8
1
3
4

5
1
3
4

5
2
3
4

5
2
3
4

5
2
3
4

5
2
3
4

1
2
3
4

1
2
3
4

1
2
3
4

1
6
3
4

1
6
3
4

1
8
3
4

1
8
3
4

1
8
3
4

1
8
3
4

5. Un computador tiene una cache, una memoria principal y un disco usado para memoria
virtual. Si una palabra referenciada est en la cache, se necesitan 20ns para acceder a ella. Si
est en memoria principal pero no en la cache, se necesitan 60ns para cargarla en la cache,
y entonces la referencia comienza de nuevo. Si la palabra no est en la memoria principal,
se necesitan 12ms para cargar la palabra desde el disco, seguidos de 60ns para copiarla en la
cache, y entonces se realiza de nuevo la referencia. La tasa de aciertos en la cache es 90 %, y
la tasa de aciertos en memoria principal es de 60 %. Cul es el tiempo promedio de acceso a
una palabra, en ns?
Solucin
Hay tres casos a considerar, los que se muestran en el cuadro 4.1.
Cuadro 4.1: Tiempo de acceso en funcin de la ubicacin del dato
Ubicacin del dato

Probabilidad

Tiempo de acceso (ns)

Presente en cache
Presente en memoria principal
Ni en cache ni en memoria

0,90
0,1 0,6 = 0,06
0,1 0,4 = 0,04

20
60 + 20 = 80
80 + 12 106 = 12000080

Por lo tanto, el tiempo de acceso promedio en ns es:


Tavg = 0,90 20 + 0,06 80 + 0,04 12000080 = 480026
6. Considere un sistema de almacenamiento de memoria que almacena segmentos en forma
contigua en el orden de su creacin, como se muestra en la siguiente figura:
S1

S2

...

Sn1

Sn

espacio libre

Al crearse el segmento Sn+1 , ste se almacena inmediatamente despus del segmento Sn , aun
cuando puedan haberse eliminado ya de memoria alguno de los segmentos S1 , . . . , Sn1 . Si el
segmento a almacenar es mayor que el espacio libre, se compactan los segmentos en uso,
copindolos de manera de que nuevamente estn contiguos en memoria.
Suponga:
Cada ciclo hay una referencia a memoria

24

Cada t referencias se elimina un segmento


El largo promedio de un segmento en bytes es s
El sistema est en equilibrio
El tamao de la memoria es de m bytes
Copiar un byte de una parte de memoria a otra requiere de dos referencias a memoria
Calcule la fraccin de tiempo F consumida en la compactacin de memoria.

Pista: calcule la velocidad de movimiento de la frontera entre el ltimo segmento y el espacio


libre.
Solucin
Si el sistema est en equilibrio y cada t referencias se elimina un segmento, entonces cada t
referencias se aade un nuevo segmento. Si el tamao promedio de un segmento es s bytes,
tenemos que la frontera entre el ltimo segmento y el espacio libre se mueve a una velocidad
de st bytes por ciclo.
Sea f la fraccin de la memoria que est libre despus del ltimo segmento en un instante
cualquiera. Entonces, el tiempo que demorar llenar esa fraccin de memoria con segmentos
f mt
ser t0 = s . Una vez llena la memoria, es necesario compactar sta. En el peor caso, es
necesario mover todos los bytes de la fraccin de memoria ocupada, es decir, (1 f )m bytes.
En ese caso, el tiempo de compactacin es tc = 2(1 f )m y la fraccin F es:
F

tc
t0 + tc
2(1 f )m
f mt
s

+ 2(1 f )m
2s(1 f )
f t + 2s(1 f )

7. En un sistema computacional con memoria virtual paginada, la asignacin de marcos es realizada en forma global, bajo un esquema de paginacin por demanda. Suponga que existen
5 marcos de pgina y slo 2 procesos en ejecucin, A y B.
El proceso A hace referencias a sus pginas 7, 15, 17, 13, 15, 11, 15, 11, 9 y 9, mientras que
el proceso B hace referencias a sus pginas 3, 7, 8, 6, 7, 5, 7, 5, 5 y 5, donde el sistema de
memoria recibe estas referencias en forma alternada, comenzando por el proceso A.
Indique qu referencias a pginas generan una falta de pgina si el algoritmo de reemplazo
es LRU.
Solucin
La siguiente tabla muestra el estado de la memoria paso a paso. La primera columna indica
la pgina accesada, las siguientes 5 columnas muestran el contenido de los marcos de pgina,
y la ltima columna indica la ocurrencia de una falta de pgina.

25

7A
3B
15A
7B
17A
8B
13A
6B
15A
7B
11A
5B
15A
7B
11A
5B
9A
5B
9A
5B

7A
7A
7A
7A
7A
8B
8B
8B
8B
8B
11A
11A
11A
11A
11A
11A
11A
11A
11A
11A

3B
3B
3B
3B
3B
13A
13A
13A
13A
13A
5B
5B
5B
5B
5B
5B
5B
5B
5B

15A
15A
15A
15A
15A
6B
6B
6B
6B
6B
6B
6B
6B
6B
9A
9A
9A
9A

7B
7B
7B
7B
7B
15A
15A
15A
15A
15A
15A
15A
15A
15A
15A
15A
15A

F
F
F
F
F
F
F
F
F
F
F
F

17A
17A
17A
17A
17A
7B
7B
7B
7B
7B
7B
7B
7B F
7B
7B
7B

8. Considere un sistema basado en pginas que usa un solo nivel de tabla de pginas, la que
est siempre en memoria
a) Si una referencia a memoria demora 200ns, cunto tiempo lleva una referencia a memoria paginada, en promedio?
b) Ahora, se agrega hardware en forma de una TLB, que demora 20ns en realizar su traduccin. Si este TLB tiene una tasa de aciertos de 85 %, cul es el tiempo de acceso
efectivo?
Solucin
a) Una referencia a memoria paginada requiere, en promedio, dos accesos a memoria,
uno para la tabla de pginas y otro para acceder al datos propiamente tal. Por ello, se
requieren 400ns.
b) Tenemos dos casos: si el TLB contiene la direccin buscada, el tiempo de acceso ser de
200 + 20 = 220ns. Si dicha direccin no se encuentra en el TLB, hay un costo adicional
de 200ns para acceder a la tabla de pginas. Entonces, el tiempo de acceso efectivo ser
220 0,85 + 420 0,15 = 250ns.
9. Considere una tarea dividida en 4 segmentos de igual tamao, y un sistema con segmentacin y paginacin que implementa una tabla de pginas con 8 entradas por cada segmento.
Suponga que el tamao de cada pgina es de 2 KiB.
a) Cul es el tamao mximo que puede tener un segmento?
b) Cul es el mximo espacio de direcciones lgicas para una tarea?

26

c) Suponga que la tarea accede a la direccin fisica 00021ABC. Cul es el formato de la


direccin lgica generada por la tarea?
Solucin
a) Dado que un segmento puede tener slo 8 pginas de 2 KiB cada una, el tamao mximo de un segmento es 16 KiB.
b) Dado que una tarea puede tener a lo ms 4 segmentos, el mximo espacio de direcciones
lgicas es 64 KiB.
c) El formato de la direccin lgica estar definido por el nmero de segmentos por proceso, el nmero de pginas por segmentos y el espacio mximo de direcciones lgicas.
Como ste es de 64 KiB, las direcciones lgicas tendrn 16 bits.
2 bits
Segmento

3 bits
Pgina

11 bits
Desplazamiento

De la informacin dada, no se puede obtener los nmeros de segmento pgina, pero


el desplazamiento puede obtenerse de la direccin fsica de 32 bits 00021ABC, dividindola de la forma indicada abajo. De la figura, el desplazamiento es 2BC.
21 bits
0000 0000 0000 0010 0001 1
Marco de pgina

11 bits
010 1011 1100
Desplazamiento

10. Suponga que Ud. tiene un sistema operativo que utiliza segmentacin en un computador
con 1 MiB de memoria fsica. Sobre este sistema, se ejecuta una secuencia de aplicaciones,
las que realizan las siguientes operaciones:
Proceso A solicita 512 KiB de memoria
Proceso B solicita 256 KiB de memoria
Proceso C solicita 64 KiB de memoria
Proceso B termina
Proceso D solicita 186 KiB de memoria
Proceso E solicita 190 KiB de memoria
a) Indique el estado final de la memoria si se usa una poltica de asignacin de memoria
first-fit
b) Indique el estado final de la memoria si se usa una poltica de asignacin de memoria
best-fit
c) Suponga ahora que el sistema operativo combina paginacin y segmentacin, con pginas de 4 KiB. Indique ahora cunta memoria se pierde por fragmentacin interna y
externa en los dos casos anteriores.

27

Solucin
a) En caso de usarse una poltica de asignacin de memoria first-fit, el estado final de la
memoria es:
512 KiB
A

186 KiB
D

70 KiB
libre

64 KiB
C

190 KiB
E

2 KiB
libre

b) En caso de usarse una poltica de asignacin de memoria best-fit, el estado final de la


memoria es:
512 KiB
A

190 KiB
E

66 KiB
libre

64 KiB
C

186 KiB
D

6 KiB
libre

c) En caso de usarse memoria segmentada y paginada con pginas de 4 KiB, es fcil ver
que slo existe fragmentacin interna en los procesos D y E, pues la memoria asignada
a estos procesos no es mltiplo de 4 KiB. Entonces, la fragmentacin interna total es de
4 KiB.
Adems, por ser ste un sistema de memoria paginada, no existe fragmentacin externa.
11. Suponga un sistema operativo con memoria virtual paginada, donde la tabla de pgina est
residente en registros internos a la CPU. El tiempo de acceso a memoria es de 100ns. Suponga
adems que leer una pgina de disco a memoria demora 8ms sin reemplazo y 20ms con
reemplazo, y que el 70 % de las veces es necesario reemplazar una pgina. Cul es la mxima
tasa de faltas de pginas aceptable para tener un tiempo de acceso promedio de 200ns?
Solucin
El tiempo de acceso efectivo a disco en ns es:
Tdisco = 0,3 8 106 + 0,7 20 106 = 16,4 106

Se pide calcular P tal que

200 = 100(1 P) + 16,4 106 P


De donde la tasa de faltas de pgina debe ser P 0,0000061.
12. Uno de sus amigos quiere actualizar su computador y le ha solicitado su ayuda. Ud., como
buen ingeniero, decide primero medir el desempeo actual del computador, para determinar dnde est el cuello de botella. Ud. descubre los siguientes datos:
La probabilidad de un fallo en el TLB es de 10 %
La probabilidad de una falta de pgina cuando hay un fallo en el TLB es de 0,02 %
Tiempo de acceso al TLB: 10ns
Tiempo de acceso a memoria: 1s
Tiempo de transferencia de una pgina: 10ms

28

Probabilidad de reemplazar una pgina modificada: 50 %


El computador en cuestin usa un sistema de memoria virtual paginada con slo un nivel de
tablas de pgina. El TLB es actualizado automticamente por el hardware en caso de fallo.
Las tablas de pgina residen en memoria principal, as que un acceso a una tabla de pgina
demora 1s.
a) Calcule el tiempo promedio de acceso a memoria
b) Luego de hacer estas mediciones, Ud. consulta con el fabricante del computador, quien
le da la siguiente lista de precios:
Aumento de TLB: Reduce probabilidad de fallo en TLB a 5 %.
Actualizacin de disco: transfiere una pgina en 8ms.
Aumento de memoria RAM: reduce la probabilidad de falta de pgina en caso de
fallo de TLB a 0,01 %
Cada una de estas alternativas cuesta $100,000. Su amigo tiene $200,000 para gastar.
Qu opciones le recomienda Ud.? Justifique su respuesta.
Solucin
a) Supondremos que el acceso al TLB ocurre en paralelo con el acceso a las tablas de
pgina en memoria. Entonces, un 90 % de las veces el acceso a un dato o instruccin
involucra un acceso al TLB y otro acceso a memoria. El 10 % restante, debe hacerse
un acceso a memoria para acceder a la tabla de pginas y otro para acceder al dato o
instruccn. En un 0,02 % de estos casos, hay una falta de pgina.

Tacceso
Tacceso
Tacceso
Tacceso

=
=
=
=

0,9 (10 + 1000) + 0,1 (2000 + 0,0002 (10000000 + 0,5 10000000))


0,9 1010 + 0,1 (2000 + 3000)
909 + 500
1409

b) Veamos el efecto de cada modificacin.


1) Aumento de TLB: 0,95 1010 + 0,05 500 = 1209,5
2) Actualizacin de disco: 909 + 0,1 4400 = 1349

3) Aumento de memoria RAM: 909 + 0,1 3500 = 1259

Estos resultados ya nos dicen que probablemente le conviene aumentar la memoria


RAM y aumentar el tamao del TLB. El efecto combinado de ambos es:
T+T LB,+RAM = 0,95 1010 + 0,05 3500 = 1134,5

29

5 Administracin de entrada/salida
1. Un disco magntico tiene una velocidad de rotacin de 7200 RPM, y est organizado en 5000
cilindros, numerados del 0 al 4999. El disco est actualmente atendiendo una solicitud por el
cilindro 143, y la solicitud anterior fue para el cilindro 125. La cola de solicitudes pendientes
contiene los cilindros 86, 1470, 913, 1774, 948, 1509, 1022, 1750 y 130. El controlador de
disco implementa una poltica C-LOOK. Suponga que el disco puede realizar una bsqueda
a un cilindro adyacente en 1 ms, y que mover el brazo de un extremo del disco al otro demora
18 ms.
a) Calcule el nmero total de cilindros recorridos
b) La fsica elemental nos dice que un objeto sometido a una aceleracin constante a recorre una distancia d en el tiempo t, donde estas variables estn gobernadas por la
ecuacin d = 12 at 2 . Entonces, mover el brazo a travs de L pistas involucra acelerar el
brazo a una tasa constante a por la primera mitad del movimiento, y luego decelerar
el brazo a la misma tasa a por la segunda mitad del movimiento. La siguiente figura
ilustra la velocidad del brazo en funcin del tiempo.
Velocidad

Tiempo

Calcule el tiempo t necesario para recorrer L pistas en funcin de L y a.


c) En realidad, existen constantes de tiempo asociadas a vencer la inercia inicial del movimiento del brazo y a cambiar su direccin de movimiento. El modelo
presentado en el
punto anterior puede ser mejorado. Por ejemplo, la ecuacin t = x + y L es una buena
aproximacin al tiempo t necesario para mover el brazo a travs de L pistas. En base a
la informacin que Ud. conoce para el disco, calcule x e y.
d) En base a sus resultados para los puntos anteriores, calcule el tiempo total de bsqueda para la secuencia de solicitudes dada. Sugerencia: las partes c) y d) no requieren del
resultado de la parte b)
Solucin
a) Del enunciado, el brazo lector se est moviendo hacia las pistas de nmero superior. El
algoritmo C-LOOK determina que el brazo viaja de la pista 143 a la pista 1774, luego
cambia su direccin de movimiento y visita la pista 86, para terminar en la pista 130.
Por lo tanto, recorre (1774 143) + (1774 86) + (130 86) = 3363 pistas.
30

b) Ya que el brazo se mueve a una aceleracin y deceleracin constantes,


q el tiempo neL
cesario para acelerar hasta la mitad del recorrido ( 2 pistas) ser t1 = La , y el tiempo
q
necesario para desacelerar el brazo ser tambin t2 = La . Entonces, el tiempo necesario
q
para recorrer L pistas es t1 + t2 = 2 La .
c) Del enunciado, sabemos que mover el brazo la distancia de 1 cilindro demora 1 ms, y
que recorrer 4999 pistas demora 18 ms. Eso nos da dos ecuaciones:
1 = x+y

18 = x + 4999y
Despejando para x e y, se obtiene x = 0,7561 e y = 0,2439
d) El tiempo total de bsqueda se calcula aplicando la ecuacin obtenida en c) a las distancias entre las pistas visitadas por el brazo lector. La tabla 5.1 muestra los recorridos
del brazo, la distancia entre las pistas visitadas y el tiempo de bsqueda entre ellas,

calculado como tBusq = 0,7561 + 0,2439 y. De esta tabla, el tiempo total de bsqueda
es 40,42 ms.
Comienzo Final Distancia
143
913
948
1022
1470
1509
1750
1774
86
Total

913
948
1022
1470
1509
1750
1774
86
130

tBusq

770 7,52
35 2,20
74 2,85
448 5,92
39 2,28
241 4,54
24 1,95
1688 10,78
44 2,37
3363 40,42

Cuadro 5.1: Tiempo de bsqueda entre pistas


2. En un sistema computacional basado en memoria virtual se hacen mediciones de tiempo de
utilizacin de recursos, con los siguientes resultados:
Utilizacin de la CPU: 20 %
Utilizacin del disco: 97,7 %
Utilizacin de otros dispositivos de E/S: 5 %
Un compaero suyo propone una lista de posibles acciones a tomar para mejorar la utilizacin de la CPU. Para cada accin, indique su efecto sobre los parmetros anteriores.

31

a) Reemplazar la CPU por otra 2,5 veces ms rpida


b) Instalar otra CPU idntica en paralelo
c) Reemplazar el disco magntico por uno 2,5 veces ms grande
d) Reemplazar el disco magntico por uno 2,5 veces ms rpido
e) Reemplazar el disco magntico por una configuracin RAID-0
f ) Reemplazar el disco magntico por una configuracin RAID-1
g) Instalar ms memoria RAM
h) Reducir el grado de multiprogramacin
i) Configurar el sistema operativo para realizar paginacin previa
j) Configurar el sistema operativo para aumentar el tamao de la pgina
Solucin
El sistema est hiperpaginando, es decir, pasa la mayor parte del tiempo esperando por el
disco, lo que indica que se ha sobreasignado la memoria fsica disponible. Reducir el nmero
de procesos presentes en memoria reducir el nmero de faltas de pgina y mejorar la
utilizacin de la CPU. En forma alternativa, se puede mejorar el desempeo reemplazando
el disco magntico por un disco ms rpido, o instalando ms memoria RAM. La utilizacin
de los otros dispositivos de entrada/salida no se ver afectada. Entonces,
a) Reemplazar la CPU por una 2,5 veces ms rpida
No afecta mayormente la utilizacin del disco. Puede reducir la utilizacin de la CPU.
b) Instalar otra CPU idntica en paralelo
No afecta mayormente la utilizacin de la memoria ni del disco.
c) Reemplazar el disco magntico por uno 2,5 veces ms grande
No afecta la utilizacin del disco.
d) Reemplazar el disco magntico por uno 2,5 veces ms rpido
Instalar un disco ms rpido permite servir pginas ms rapidamente, aumentando
la tasa de transferencia a memoria. Esto aumenta la utilizacin de la CPU y puede
disminuir la utilizacin del disco.
e) Reemplazar el disco magntico por una configuracin RAID-0
RAID 0 distribuye los datos a travs de varios discos independientes. Esto es visto por
el sistema como un disco ms rpido, por lo que aumenta la utilizacin de la CPU y
puede disminuir la utilizacin del disco.
f ) Reemplazar el disco magntico por una configuracin RAID-1
RAID 1 mantiene dos copias de los datos, pero desde el punto de vista del sistema
aparece como un solo disco del mismo tamao y aproximadamente el mismo tiempo
de acceso. Por ello, no afecta la utilizacin de la CPU.

32

g) Instalar ms memoria RAM


Reduce la paginacin, aumenta la utilizacin de la CPU y disminuye la utilizacin del
disco.
h) Reducir el grado de multiprogramacin
Reduce la paginacin, por lo que aumenta la utilizacin de la CPU y disminuye la
utilizacin del disco.
i) Configurar el sistema operativo para realizar paginacin previa
Transfiere ms pginas de disco a memoria en caso de una falta de pgina. Esto no
alivia al disco, e incrementa la utilizacin de la CPU slo si las aplicaciones acceden
secuencialmente a memoria.
j) Configurar el sistema operativo para aumentar el tamao de la pgina
Aumentar el tamao de la pgina reduce el nmero de pginas residentes en memoria
y aumenta la hiperpaginacin. Puede ser beneficioso slo en caso que las aplicaciones
accedan secuencialmente a memoria, ya que reduce las faltas de pgina.
3. Considere un sistema de archivos que utiliza dos niveles de tablas para almacenar los bloques de disco asignados a un archivo. Suponga que el tamao del bloque de este sistema de
archivos es de 512 bytes. Suponga adems que el tamao de una entrada en tabla es de 32
bits.
a) Cul es el tamao mximo de un archivo en este sistema de archivos?
b) Cul es el espacio total ocupado en disco por un archivo de tamao mximo?
c) Existe algn lmite a la suma total del tamao de todos los archivos en el sistema de
archivos?
Solucin
a) Cada tabla tiene 512 bytes, es decir, almacena 128 entradas de 4 bytes cada una. Entonces, el tamao mximo de un archivo es 128 128 512 = 8 MiB.

b) Adems del espacio ocupado por los datos, se deben almacenar 1 + 128 tablas de 512
bytes cada una, que ocupan en total 129 512 = 64,5 KiB. Entonces, el espacio total
ocupado en disco por un archivo de tamao mximo es 8 MiB + 64,5 KiB.
c) En este caso, la principal limitacin al tamao total del sistema de archivos est dado
por la representacin del ndice de un bloque en 4 bytes, es decir, 32 bits. Entonces, el
sistema de archivos puede almacenar a lo ms 232 27 = 2 TiB de datos.
4. Suponga que Ud. tiene un disco magntico compuesto por 4 platos y 8 superficies de almacenamiento de datos, que rota a 12000 RPM. El disco est dividido en 3 zonas:
La zona externa posee 400 sectores por pista
La zona intermedia tiene 320 sectores por pista
La zona interna tiene 240 sectores por pista

33

Adems, considere que un sector en disco almacena 512 bytes, que el tiempo para mover
la cabeza lectora de un cilindro a otro es de 3,2 ms, y que el tiempo de conmutacin entre
pistas de un mismo cilindro es de 2,4 ms.
a) Calcule la tasa ideal de transferencia de datos para las 3 zonas del disco (no considere
los tiempos de conmutacin entre pistas ni entre cilindros).
b) Calcule la tasa mxima de transferencia de datos para las 3 zonas del disco, considerando los tiempos de conmutacin entre pistas y entre cilindros (suponga que se desea
transferir una gran cantidad de datos que abarca muchos cilindros).
c) Suponga que se desea transferir un archivo de datos de 1,5 MiB que est almacenado
en forma contigua en alguna parte del disco. Calcule la tasa mnima de transferencia
de datos para las tres zonas del disco, considerando los tiempos de conmutacin entre
pistas y entre cilindros. (Pista: pngase en el peor caso posible)
Solucin
El disco rota a 12000 RPM o 200 RPS. Es decir, realiza una rotacin cada 5 ms. En la zona
externa, una pista almacena 200 KiB. En la zona intermedia, una pista almacena 160 KiB.
En la zona interna, una pista almacena 120 KiB.
a) En el caso ideal, las tasas de transferencia son:
Texterna
= 200 200 KiB = 40000 KiB/s
Tintermedia = 200 160 KiB = 32000 KiB/s
Tinterna
= 200 120 KiB = 24000 KiB/s

b) Se consideran ahora los tiempos de conmutacin entre pistas y entre cilindros. El mejor
caso a considerar es el acceso secuencial a una gran cantidad de datos que abarca muchos cilindros. Examinemos el tiempo necesario para leer completamente un cilindro.
Se requieren 8 revoluciones, mas 7 cambios de pista mas un cambio de cilindro. En ese
tiempo se transfieren 8 pistas de datos. Entonces, se tiene
Texterna
= (8 200 KiB)/(5 8 + 7 2,4 + 3,2) ms = 26666 KiB/s
Tintermedia = (8 160 KiB)/0,06s = 21333 KiB/s
Tinterna
= (8 120 KiB)/0,06s = 16000 KiB/s

c) Un archivo secuencial de 1,5 MiB se almacena en 3000 sectores consecutivos. En caso


de almacenarse ste en la zona externa del disco, el archivo ocupar como mnimo 8
pistas, o, como mximo, 9. El peor caso, entonces, es si el primer sector del archivo
se almacena en el ltimo sector de un cilindro y los 2999 sectores restantes ocupan 7
pistas y fraccin del cilindro siguiente. Entonces, el tiempo total de lectura del archivo
secuencial es el tiempo necesario para leer 3000 sectores a 40000 KiB/s, que es 38,4
ms, mas el tiempo para cambiar de un cilindro a otro (3,2 ms) y 7 veces el tiempo de
conmutacin (2,4 ms).
Para la zona intermedia, es fcil ver que 3000 sectores consecutivos ocupan 10 pistas o,
como mximo, 11. El peor caso nuevamente corresponde al primer sector del archivo
almacenado como el ltimo sector de un cilindro, 2560 sectores se almacenan en el
cilindro siguiente y los 439 sectores finales se almacenan en las dos primeras pistas del

34

cilindro subsiguiente. Entonces, el tiempo total de lectura del archivo secuencial es el


tiempo necesario para leer 3000 sectores a 32000 KiB/s, que es 48 ms, mas dos veces el
tiempo para cambiar de un cilindro a otro (3,2 ms) y 8 veces el tiempo de conmutacin
(2,4 ms).
Para la zona interna, se puede calcular que 3000 sectores consecutivos ocupan 13 pistas
o, como mximo, 14. El peor caso nuevamente corresponde al primer sector del archivo
almacenado como el ltimo sector de un cilindro, 1920 sectores se almacenan en el
cilindro siguiente y los 1079 sectores finales se almacenan en las cinco primeras pistas
del cilindro subsiguiente. Entonces, el tiempo total de lectura del archivo secuencial
es el tiempo necesario para leer 3000 sectores a 24000 KiB/s, que es 64 ms, mas dos
veces el tiempo para cambiar de un cilindro a otro (3,2 ms) y 11 veces el tiempo de
conmutacin (2,4 ms).
En resumen, las tasas de transferencias son
Texterna
= 1536 KiB/(38,4 + 7 2,4 + 3,2) ms = 26199 KiB/s
Tintermedia = 1536 KiB/(48 + 8 2,4 + 2 3,2) ms = 20869 KiB/s
Tinterna
= 1536 KiB/(64 + 11 2,4 + 2 3,2) ms = 15867 KiB/s
5. Un sistema de almacenamiento magntico en disco recibe solicitudes de acceso a las siguientes pistas: 27, 129, 110, 186, 147, 41, 10, 64, 120. Supngase que la cabeza del disco
est ubicada inicialmente sobre la pista 100 y se est moviendo hacia la pista 0. Analice el
tiempo medio de bsqueda para los algoritmos de planificacin First-In First-Out (FIFO),
Shortest Seek Time First (SSTF), y SCAN.
6. El algoritmo de planificacin de disco C-SCAN es una variante del algoritmo SCAN que recorre el disco atendiendo solicitudes en una sola direccin hasta un extremo del disco, para
luego reubicar la cabeza lectora al otro extremo del disco antes de continuar atendiendo solicitudes. Un sistema de almacenamiento magntico recibe solicitudes de acceso a las pistas
42, 23, 139, 89, 71, 2, 61 y 112. Inicialmente la cabeza lectora est en la pista 80, atendiendo
solicitudes mientras se mueve hacia las pistas de nmero superior. Suponga que el disco tiene 140 pistas en total, numeradas de 0 a 139, y que el movimiento de la cabeza entre pistas
contiguas demora 2 ms, mientras que mover la cabeza de un extremo a otro del disco demora 21 ms (Valores promedio para un disco Western Digital Caviar SE120). Usando estos
valores, calcule el tiempo medio de bsqueda para los algoritmos SCAN y C-SCAN.
7. El tiempo de transferencia total de datos desde un disco magntico depende de tres factores:
El tiempo de bsqueda de la pista
El tiempo de rotacin del disco
El tiempo de transferencia de los datos
Supngase que es necesario escribir k bytes a un disco duro de 7200 RPM que tiene 1000
pistas, y un tiempo de bsqueda de pista promedio de 6 ms. Para acelerar el desempeo
del sistema de disco, Ud. propone una estructura de tipo RAID-0, donde los datos sern
escritos en paralelo a dos discos magnticos independientes de iguales caractersticas. Este
nuevo esquema puede ser visto como un solo disco magntico de mayor capacidad. En este

35

caso, cmo variarn los 3 factores del tiempo de transferencia total? Indique si los factores
aumentan o disminuyen, y porqu.
8. Considere la organizacin de un archivo en UNIX. Suponga que hay 12 punteros a bloques
directos almacenados en el nodo-i del archivo, adems de punteros a tablas de primer, segundo, y tercer nivel, respectivamente. Suponga adems que el tamao del bloque en disco
es de 8 KiB, y que cada puntero a un bloque de disco ocupa 32 bits.
a) Cul es el tamao mximo de un archivo?
b) Cul es el tamao mximo de los metadatos del archivo?
9. Aumentar el tamao del bloque de disco en un sistema de archivos tipo UNIX implica:
a) Disminuir la fragmentacin interna
b) Aumentar la fragmentacin externa
c) Disminuir el tamao del bitmap de bloques libres
d) Disminuir el tamao mximo posible para un archivo de texto
Explique su respuesta.

36

6 Miscelnea
1. El profesor le entrega a un estudiante dos cajas negras de idntico aspecto. El profesor le
dice al estudiante que una de ellas es una fuente de corriente, y la otra una fuente de voltaje.
El estudiante inmediatamente identifica cul es cul. Cmo lo hizo?
2. A continuacin encontrar una lista de medallistas olmpicos chilenos. Identifique la especialidad en la cual recibieron sus medallas.
a) Marlene Ahrens
b) scar Cristi
c) Ramn Tapia
d) Manuel Plaza
e) Csar Mendoza
3. Cul es el siguiente nmero en la secuencia?
1
11
21
1211
111221

4. Este problema es un clsico:


Un estudiante universitario norteamericano que est de intercambio en la Universidad de
Concepcin enva un mensaje a su padre pidiendo dinero. El mensaje dice:
SEND
+MORE
---MONEY
donde cada letra corresponde a un dgito diferente. Cunto dinero necesita el estudiante?
5. Ud. tiene dos mechas, de 1 metro de largo cada una. Si enciende una mecha, sta se consume en una hora exacta. Sin embargo, el cortarla por la mitad no genera dos mechas de 30
minutos cada una, pues la velocidad de consumo es no uniforme y desconocida.
Cmo usara estas mechas para medir un perodo de 45 minutos?

37

6. Un grupo de peregrinos debe llevar un mensaje por el desierto desde Casablanca hasta Marrakech. El viaje demora 6 das, pero cada peregrino puede llevar agua y comida slo para
4 das. Cul es el nmero mnimo de peregrinos que deben dejar Casablanca para asegurar
que al menos uno de ellos llegar a Marrakech? Por supuesto que su solucin no debe dejar
peregrinos murindose de hambre y sed en la mitad del desierto.
7. Los seores Fulano, Zutano y Mengano se odian a muerte. Deciden resolver sus diferencias
con un duelo a tres bandas, donde cada uno disparar una bala hacia alguno de los otros dos
por turnos, hasta que slo quede uno vivo. El Sr. Fulano tiene mala puntera: acierta 1/3 de
las veces. El Sr. Zutano tiene mejor puntera: acierta 2/3 de las veces. El Sr. Mengano es un
as: siempre acierta sus disparos. En compensacin, se acuerda que el orden de los disparos
ser: Sr. Fulano, Sr. Zutano, Sr. Mengano.
Qu estrategia debe seguir el Sr. Fulano para maximizar sus chances de sobrevivir al duelo?
8. Hace unos pocos aos, en Suecia decidieron cambiar el sentido de circulacin de todo el
pas: de manejar por la mano izquierda (como en Gran Bretaa y Japn), a manejar por
la mano derecha (como en todo el resto del mundo). Para definir cundo hacer el cambio,
un grupo de ingenieros de transporte decidi estudiar las estadsticas de trnsito de los 5
aos anteriores para determinar a qu da y hora el trnsito en todo el pas era el mnimo.
Los ingenieros encontraron una cosa curiosa: si analizaban las 8760 horas del ao, siempre
haba una hora en el ao en que no ocurran accidentes automovilsticos. A qu se debe este
interesante fenmeno?
9. Todos los autos tienen uno. Algunos tienen 2. Unos pocos tienen 4. Ninguno tiene 3. Qu es?

38

Das könnte Ihnen auch gefallen