Teoría de Sistemas Operativos, 2013 Certamen 2

Anuncio
Teoría de Sistemas Operativos, 2013
Certamen 2
Alumno:
•
•
•
•
•
•
RUN:
NOTA:
Cada pregunta debe ser respondida en la hoja respectiva.
Coloque su Nombre y RUN en donde corresponda.
Debe responder en forma clara y ordenada, no mezclando respuestas. Si no responde una
pregunta, deje un espacio en blanco. Si sus respuestas no cumplen con estos requisitos, no
se corregirán y no tendrán derecho a recorrección.
Las respuestas escritas con lápiz grafito NO tienen derecho a recorrección.
Tiene 90 minutos para responder.
Estas instrucciones rigen para todas las preguntas del certamen
Pregunta 1
Se tiene un sistema con memoria virtual paginada, con 128 [MiB] de memoria principal, con frames de
2n[KiB]. La arquitectura es de 16[bits]. Se sabe que cada proceso tiene un espacio de direcciones virtuales
de 16[MiB]. La dirección virtual de memoria es de la forma (p,d), mientras que dirección física de
memoria es de la forma (f,d), donde p representa los bits para las páginas, f los bits para los frames y d los
bits para el desplazamiento respectivo.
Determine la función S(n), que permite calcular el tamaño de la tabla de páginas del sistema
Solución
Para determinar el tamaño de la tabla de páginas, es necesario determinar la cantidad de registros de ella y
el tamaño de cada registro. La primera cantidad tiene relación con la cantidad de páginas virtuales que
tiene el proceso (2p), mientras que la segunda, con la cantidad de frames en memoria principal (2f). El
tamaño de la tabla de página está dada por la relación:
𝑆 = 2! ∙ 𝑓
Cantidad de páginas virtuales
Según los datos del problema, la cantidad de páginas virtuales son 2p.
2! =
𝐸𝑠𝑝𝑎𝑐𝑖𝑜𝐷𝑖𝑟𝑉𝑖𝑟𝑡𝑢𝑎𝑙𝑒𝑠 2! ∙ 2!" [𝐵]
= ! !"
= 2!"!!
𝑇𝑎𝑚𝑎ñ𝑜𝑃á𝑔𝑖𝑛𝑎
2 ∙ 2 [𝐵]
Cantidad de frames en memoria principal
Según los datos del problema, la cantidad de páginas virtuales son 2f.
2! =
𝐸𝑠𝑝𝑎𝑐𝑖𝑜𝐷𝑖𝑟𝐹í𝑠𝑖𝑐𝑎𝑠 2! ∙ 2!" [𝐵]
= ! !"
= 2!"!!
𝑇𝑎𝑚𝑎ñ𝑜𝐹𝑟𝑎𝑚𝑒
2 ∙ 2 [𝐵]
Luego, 𝑓 = 17 − 𝑛 [𝑏𝑖𝑡𝑠]
Por lo tanto, la tabla de página tiene un tamaño de:
𝑆 = 𝑆 𝑛 = 2!"!! ∙ 17 − 𝑛 [𝑏𝑖𝑡𝑠]
1
Pregunta 2
El equipo de innovación de negocios de la empresa ZFC (por la siglas de su dueño, Zacarías Flores del
Campo) está diseñando un estacionamiento como el de la Figura 1, cuyas características son:
•
•
•
El estacionamiento se compone de 50 sectores.
Un automóvil cabe dentro de un sector del estacionamiento.
Sólo se permite un auto en movimiento dentro del estacionamiento
Se necesita modelar este sistema y para eso se contrató a un asesor, el que después de pensar y luego
cobrar 50UF, dijo que el problema se resuelve utilizando el concepto de semáforos de los Sistemas
Operativos y que cada auto se puede modelar por el siguiente algoritmo:
automóvil(){
llega_a_la_entrada();
entra_al_estacionamiento();
estaciona();
llega_a_la_salida();
sale();
}
Todo iba bien hasta que el asesor desapareció con el dinero. El jefe del equipo, indignado por la situación,
toma cartas en el asunto y lo contacta a usted, debido a que tiene muy buenas referencias de los alumnos
de la carrera de Ingeniería Civil Informática, en lo que respecta a conceptos de Sistemas Operativos.
Su misión es completar el algoritmo que simula el funcionamiento de cada automóvil. Como recompensa,
y si hace bien su trabajo, éste equivaldrá al 35% de la nota final del Certamen 2 de la asignatura de
Sistemas Operativos. Para optar a la totalidad del puntaje, usted deberá explicar muy bien su solución.
Salida
Entrada
Figura 1
Solución
Una solución posible es utilizando dos semáforos: uno para exclusión mutua del estacionamiento y otro
para monitorear los sectores disponibles.
llega_entrada(){
//primero verifica si hay sectores disponibles
wait(disponibles);
//Luego verifica si puede transitar por el estacionamiento
wait(mutex);
}
estaciona(){
//Al llegar a su sector, debe permitir que otro
//automóvil pueda transitar
signal(mutex);
//Al querer moverse para salir del estacionamiento,
//debe esperar que ningún otro automóvil esté en movimiento.
wait(mutex);
}
sale(){
//Al salir, primero debe
//permitir que otro automóvil pueda transitar
signal(mutex);
//Luego, debe aumentar en uno la cantidad de sectores
//disponibles
signal(disponibles);
}
2
Pregunta 3
Un sistema computacional tiene punteros a direcciones físicas de 5 [bits]. La memoria física está dividida
en 8 frames. La dirección virtual de memoria tiene 5 [bits]. Se tiene un programa de 14 instrucciones, que
es cargado en memoria principal según el mapa de memoria de la.
Procesador
p [bits]
d [bits]
p
d
inst.
inst.
inst.
inst.
00
01
02
03
inst. 12
inst. 13
Tabla de páginas
0
Dirección Base
Tabla de Páginas
0xFFAA
+
+
inst. 08
inst. 09
inst. 10
inst.11
N-1
inst. 04
inst. 05
inst. 06
inst. 07
Memoria Principal
(Frames)
00000
00001
00010
00011
00100
00101
00110
00111
01000
01001
01010
01011
01100
01101
01110
01111
10000
10001
10010
10011
10100
10101
10110
10111
11000
11001
11010
11011
11100
11101
11110
11111
Dirección
Física
Figura 2
a)
Diseñe la MMU del sistema. Esto significa que debe determinar todos los anchos de los buses
involucrados y la cantidad de registros de la tabla de páginas.
Debido a que los frames tienen 4 registros, d=2[bits]. Como la DV tiene 5[bits], entonces
p=3[bits]. Como hay 8 frames en memoria principal, f=3[bits].
Además, como p=3[bits], la tabla de páginas tiene N=8[registros]. Cada registro es de 3[bits], ya
que almacena un número de frame.
b) Determine el contenido de la tabla de páginas.
Índice
0
1
2
3
4
5
6
7
Dato
000
111
100
010
3
Descargar