Beruflich Dokumente
Kultur Dokumente
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 ) ;
}
}
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.
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.
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 ;
}
}
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
1 0 0
1 1 2
1 1 0
3 0 2
h
i
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
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
0 0 0
0 0 0
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:
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
12
A
B
C
D
E
12
15
18
21
24
27
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
16
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
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.
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
= 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
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
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
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
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
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
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
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
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
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
3 bits
Pgina
11 bits
Desplazamiento
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
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
28
Tacceso
Tacceso
Tacceso
Tacceso
=
=
=
=
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
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
31
32
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
34
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
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