Gestión contigua: Particiones múltiples fijas, particiones múltiples

Anuncio
Sistemas Operativos II
CONVOCATORIA EXTRAORDINARIA
Facultad de Informática / Escuela Universitaria de Informática /
APELLIDOS
NOMBRE
EUI o
FI
DNI
??
??
??
??
??
10 de Septiembre de 2001
FIRMA
No desgrape las hojas.
Conteste exclusivamente en los espacios reservados para tal fin.
Utilice el reverso de cada hoja para sus anotaciones.
Responda de forma breve y precisa.
El examen consta de 18 cuestiones, que valen 0.5 puntos cada una excepto la 5 y la 18 que valen 1 punto cada una
Enumere y clasifique las técnicas de gestión contigua y las técnicas de gestión dispersa de la memoria.
1. Gestión contigua:
Particiones múltiples fijas, particiones múltiples variables.
Gestión dispersa:
Paginación, segmentación, segmentación paginada.
Enumere las llamadas al sistema en Unix cuya eficiencia podría verse aumentada por el hecho de compartir
segmentos con un proceso que ya se está ejecutando en memoria. Diga para cada una de ellas qué segmentos
podrían compartirse.
2.
?? fork(): crear un nuevo proceso, clonando el proceso que la
invoca.
o Puede compartirse el segmento T. El segmento D solo
puede compartirse en modo “copy on write”.)
?? exec() : cambiar la imagen de memoria
o Solo puede compartirse el segmento T.
Sea un sistema de memoria virtual segmentado-paginado. Los espacios de direcciones lógicas son de 8Gbytes y
el tamaño de página es de 2Kbytes. Un espacio de direcciones puede tener hasta 256 segmentos y los
descriptores de página tienen 4 bytes. Diga cual será el tamaño de la tabla de páginas de un segmento.
3.
8GB ? Dir. lógicas de 33 bits.
256 segmentos ? 8 bits para el número de segmento.
Páginas de 2 KB ? 11 bits para el desplazamiento.
Nº bits para nº de página ? 33 – (8 + 11) = 33 – 19 = 14
214 = 16384 descriptores
Tamaño tabla = 16384 * 4 = 65536 = 64 KB
Sistemas Operativos II
CONVOCATORIA ORDINARIA
Escuela Universitaria de Informática / Facultad de Informática
7 de junio de 2001
Explique brevemente cual es el principal inconveniente que puede presentar la segmentación por demanda
cuando se la compara con la paginación por demanda.
4. La gestión de la memoria es más complicada, pues la búsqueda de
un segmento víctima ante un fallo de página se convierte en un
problema
de
asignación
dinámica
de
memoria,
con
los
inconvenientes que este conlleva:
?? Fragmentación externa importante
?? Posible necesidad de compactación
?? Posible necesidad de seleccionar más de una víctima.
Todo ello hace el algoritmo de fallo de segmento más complicado
e ineficiente que el de fallo de página.
Sea un sistema con doble nivel de paginación donde las direcciones lógicas tienen 15 bits, el tamaño de página
es de 1Kbyte y cada tabla de primer nivel puede contener cuatro descriptores de tablas de segundo nivel.
La memoria física tiene 4 marcos asignables a procesos, se encuentra inicialmente vacía y los marcos libres se
asignan en orden creciente. Suponga que un mismo proceso emite la siguiente secuencia de direcciones lógicas:
7168, 26624, 16508, 5120, 7168, 26624, 12288, 7168, 26624, 16508, 5120, 12288
Esta secuencia se repite indefinidamente
Diga qué página ocupará cada marco de la memoria física después de la primera repetición de la secuencia
suponiendo que el algoritmo de reemplazo de páginas es el OPTIMO y utilizando la siguiente notación:
(i,j): identifica la página cuyo descriptor de primer nivel es el i, y cuyo descriptor de segundo nivel es el j.
NOTA: Las tablas de páginas de 1er y segundo nivel las gestiona el sistema operativo y por tanto no se ubican
en la memoria asignable a procesos.
5.
7168,
26624,
16508,
5120
Marco 0 (0,7)
Marco 1
(3,2)
Marco 2
(2,0)
Marco 3
(0,5)
7168
26624
12288
X
7168
26624
16508
5120
X
(0,7)
X
X
(3,2)
X
(1,4)
12288
(0,5)
(0,5)
(1,4)
Sea un sistema de memoria virtual segmentado-paginado en el que la tabla de segmentos se ubica íntegramente
en registros de la MMU y las tablas de páginas se encuentran en memoria principal, existiendo una TLB para los
descriptores de páginas más frecuentemente usados. La probabilidad de que un descriptor se encuentre en la
TLB es p1. Los descriptores de páginas ocupan dos palabras.
La tabla de páginas de un segmento ocupa una página y se construye sobre un marco de la memoria principal en
el momento que se referencia por primera vez una página de ese segmento (es decir, por demanda). Esto ocurre
con una probabilidad p2 y supone un coste de N1 accesos a memoria y si, además no existe un marco libre, el
coste de desalojar una página de memoria y escribirla en disco (page out). La probabilidad de que no exista un
marco libre se supondrá del 100% y la de que haya que refrescar la víctima en disco también del 100%. Si, se
tiene que:
?? El tiempo de acceso a una palabra de memoria es TAM
?? El tiempo de acceso a los registros de la MMU es despreciable frente al TAM
?? El tiempo de lectura/escritura de una página en disco es TAD
2
Sistemas Operativos II
CONVOCATORIA ORDINARIA
Escuela Universitaria de Informática / Facultad de Informática
7 de junio de 2001
diga cual será el incremento del TAE de este sistema respecto a uno que tuviese las tablas de páginas en
registros de la MMU. Escriba la expresión y el resultado en nanosegundos para los siguientes valores
numéricos: p1=0.99, p2=0.001, N1=1024, TAM=10ns, TAD=1ms.
NOTA: Los marcos con las tablas de páginas nunca son elegidos como víctimas.
Inc. TAE = (1-p1)*( (1-p2)*2TAM + p2*(N1*TAM + TAD) ) + TAM
6.
Inc. TAE =
=
=
0.01*(0.999*2*10 + 0.001*(1024*10+1000000)) + 10
0.01*(19.98 + 0.001*1010240) + 10 =
0.01*1030.22 + 10 = 20.3022 ns
Porcentualmente ? 20.3022/10= 2.03022 = 203.022%
Diga si las siguientes afirmaciones sobre el modelo del área activa son verdaderas (V) o falsas (F):
7.
V
Si la suma de los tamaños de las ventanas del área activa de los distintos procesos de un sistema
es mayor que el número de marcos de memoria física, entonces en el sistema se produce
hiperpaginación.
Si el espacio de direcciones lógicas de un proceso es de 1024 páginas y el tamaño del área activa
en un instante dado es de 512 páginas, entonces puede asegurarse que el proceso provocará
hiperpaginación en todos los casos.
Una MMU que pudiese provocar una interrupción cada cierto número fijo de referencias a
memoria y gestionase el bit de referencia, podría calcular de forma exacta el tamaño del área
activa.
En un sistema cuyo tamaño de ventana de área activa es 1024, el tamaño del área activa en un
instante t vale 1024 si, y solo si, las últimas 1024 páginas de una serie de referencias son distintas.
F
Si se aumenta el número de marcos que tiene asignados un proceso, entonces aumentará el
tamaño del área activa.
F
F
F
Se tiene un sistema con memoria virtual que utiliza la técnica de la segmentación paginada por demanda. En
este sistema se ejecuta un proceso A con tres segmentos T (código), D (datos) y S (pila). Los segmentos de
datos y de pila pueden crecer. Las longitudes de estos segmentos se especifican en la tabla 1. La memoria física
consta de 4 marcos de 512 bytes cuyo contenido en un instante t es el de la tabla 2, donde la nomenclatura Ti
indica la página lógica i del segmento T (ej: D0 es la página 0 del segmento D).
Segmento Longitud
T
2500
D
1500
S
300
Marco
0
T2
1
D0
2
T1
3
S0
Tabla 1
Tabla 2
Si en ese instante t se produjese la referencia a memoria que se especifica en los siguientes casos, diga si se
produciría fallo de página y, en caso afirmativo, el tipo de fallo (violación de protección, dirección fuera de
rango, página en disco, ...) y el manejo o tratamiento que recibiría por parte del sistema operativo.
a) Acceso a la dirección (D,1000) para escribir en una variable.
b) Acceso a la dirección (T, 3510) para ejecutar una instrucción.
3
Sistemas Operativos II
CONVOCATORIA ORDINARIA
Escuela Universitaria de Informática / Facultad de Informática
8.
7 de junio de 2001
Tipo de fallo
Manejo
(D,1000) ?
Fallo de
página.
La
página
D1
debe
cargarse
en
memoria
reemplazando a una de las cuatro cargadas.
(T,3510) ?
Dirección
fuera de
rango.
La dirección no está dentro del tamaño
segmento. El sistema abortará el proceso.
del
Ídem que en la pregunta anterior, pero considerando los siguientes accesos:
c) Acceso a la dirección (D, 1510) para crear una variable dinámica.
d) Acceso a la dirección (T,950) para ejecutar una instrucción.
9.
Tipo de fallo
Manejo
(D,1510) ?
Fallo de
página.
Aunque la dirección está fuera del rango actual
del segmento D, el sistema permite que crezca
dicho segmento. La página D2 será asignada al
proceso (puede que no se necesite cargarla desde
disco si todavía no ha sido utilizada y pertenece
al
área
de
datos
sin
valores
iniciales),
reemplazando a una de las ya cargadas.
(T,950): Sin
fallo.
No requiere ningún manejo pues es una dirección
de la página T1, ya presente en memoria.
Suponga que en un sistema de memoria virtual se desea realizar una implementación de los siguientes
algoritmos:
a) LRU (Last Recently Used)
b) SEGUNDA OPORTUNIDAD
c) LFU (Least Frequently Used)
Diga, para cada uno de ellos, qué registros hardware sería estrictamente necesario que la MMU actualizase cada
vez que se referencia una página, para poder realizar una implementación de dichos algoritmos. Los posibles
registros hardware son: Bit de modificación, Bit de referencia, Bit de validez, Contador del número de veces
que una página ha sido referenciada, Tiempo de la última referencia a una página, Registro de desplazamiento
en el que el bit de referencia se introduce como bit de mayor peso.
10. LRU: Tiempo de la última referencia a una página.
(El registro de desplazamiento para el bit de referencia no sería siempre
utilizable porque para implementar exactamente este algoritmo debería
disponer de un número muy grande de bits y el desplazamiento debería
realizarse tras cada acceso, no periódicamente como se explicó en clase.)
SEGUNDA OPORTUNIDAD: Bit de referencia.
LFU: Contador de referencias.
4
Sistemas Operativos II
CONVOCATORIA ORDINARIA
Escuela Universitaria de Informática / Facultad de Informática
7 de junio de 2001
Se tiene un disco con sectores de 512 bytes y una partición de 80Mb. Esta partición se formatea en MS-DOS
con formato FAT-16 y FAT duplicada y directorio raiz de 112 entradas, siendo 1 cluster = 4 sectores
consecutivos. Detalle la estructura de la partición y los tamaños de cada uno de los elementos de esta partición.
1 cluster = 2 KB.
11. Partición = 80 MB = 40*1024 clusters = 40960 clusters (aprox.)
Tam. FAT = 40960*2/512 = 81920/512 = 160 sectores
Tam. raíz = 112*32/512 = 112 / 16 = 7 sectores
Estructura:
1 sector de arranque.
160 sectores para primera copia FAT.
160 sectores para segunda copia FAT.
7 sectores para directorio raíz.
40960 – (328/4) = 40960 – 82 = 40878 clusters.
En la partición del problema anterior se tiene un directorio C:\DOS con
33 entradas y un fichero
C:\DOS\copy.exe cuyo tamaño es 64Kb. Si el manejador de disco siempre realiza los accesos de lectura y
escritura por sectores de 512 bytes, detalle sobre la tabla siguiente los accesos a realizar en el peor de los casos
para leer el último cluster completo de este fichero. NOTAS:
a) En la tabla siguiente, “Elemento de la partición accedido” se refiere a FAT, Dir raiz , Datos, etc...
b) Suponga que no es necesario acceder la FAT duplicada
c) Suponga que el fichero no está abierto..
Elemento
12. partición
Descripción del acceso
accedido
Número
accesos
Total
accesos
7
7
Raíz
Búsqueda de la entrada DOS en el
directorio raíz.
Datos
Búsqueda de la entrada COPY.EXE en
3
directorio C:\DOS. Implica tres accesos
porque hay hasta 16 entradas de directorio
en un sector. Se lee la entrada de
directorio, se abre el fichero y se cargan
sus atributos en memoria.
10
FAT
Obtención del 16º número de cluster en la 15
FAT para el fichero COPY.EXE, a partir del
primero obtenido en su entrada de
directorio.
31
Datos
Hay que acceder los cuatro sectores del
cluster
35
4
5
Sistemas Operativos II
CONVOCATORIA ORDINARIA
Escuela Universitaria de Informática / Facultad de Informática
7 de junio de 2001
Se tiene un disco con sectores de 512 bytes y una partición de 400Mb. Esta partición se formatea con el sistema
de ficheros de MINIX especificando un número máximo de ficheros de 24575
a) Si el tamaño de un bloque es de 1 Kbyte, diga cuál debe ser el tamaño mínimo de zona para poder
formatear esta partición.
b) Suponiendo que se adopta el tamaño de zona del apartado anterior, detalle la estructura de la partición y
los tamaños de cada uno de los elementos de esta partición. (NOTA. Una referencia a zonas tiene 16
bits, el tamaño de un nodo-i es de 32 bytes y una entrada de directorio son 16 bytes)
Tam. zona = (400 * 1024 * 1024 ) / (64 * 1024) bytes =
13. = 400 * 1024 / 64 = 400 * 16 = 6400 bytes
Pero como hay que redondear a la potencia de dos que esté
inmediatamente por encima ? 8 KB
1 bloque de arranque
1 superbloque
3 bloques para mapa de bits de nodos-i (24576 bits).
7 bloques para mapa de bits de zonas.
(400*1024 / 8)/8192 = 50/8 = 7
768 bloques para nodos-i: (24*1024*32/1024)= 768.
408820 para zonas de datos
400*1024 – 780 = 409600 – 780 = 408820.
En la partición del problema anterior el directorio raiz tiene 33 entradas, el directorio /bin tiene 33 entradas y se
tiene un fichero directorio /bin/copy cuyo tamaño es 64Kb. Si el manejador de disco siempre realiza los accesos
de lectura y escritura por bloques de 1Kb, detalle sobre la tabla siguiente los accesos a realizar en el peor de los
casos para acceder la última zona completa de este fichero.
NOTAS:
a) En la tabla siguiente, “Elemento de la partición accedido” se refiere a Superbloque, Mapas de zonas,
etc.
b) Suponga que el fichero no está abierto.
14.
Elemento
partición
accedido
Descripción del acceso
Número
accesos
Total
accesos
Nodos-i.
Lectura del nodo-i 1 (Esto normalmente
no es necesario ya que el directorio
raíz está siempre abierto).
1
1
Zonas.
Búsqueda de la entrada “bin” en el
directorio raíz. Se puede encontrar en
el primer bloque de la primera zona. Se
obtiene su número de nodo-i.
1
2
Nodos-i.
Lectura del nodo-i que guarda los
atributos de “/bin”.
1
3
Zonas.
Búsqueda de la entrada “copy” en el
directorio “/bin”. Se encuentra en el
primer bloque de la primera zona. Se
obtiene su número de nodo-i.
1
4
6
Sistemas Operativos II
CONVOCATORIA ORDINARIA
Escuela Universitaria de Informática / Facultad de Informática
7 de junio de 2001
Nodos-i.
Lectura del nodo-i que guarda los
atributos de “copy”.
1
5
Zonas.
Lectura del primer bloque de la primera 1
zona de índice para obtener el número de
la octava zona del fichero “copy”, lugar
donde se encuentra la información a
acceder.
6
Zonas.
Acceso a la octava zona del fichero
“copy”.
14
El dibujo adjunto esquematiza una parte de un sistema
de ficheros Minix después de una caída del sistema En
este sistema de ficheros existen dos inconsistencias.
Márquelas sobre el dibujo y diga en que consisten.
Nodo -i: 1
Nodo -i: 2
8
Nodo -i: 3
Nº enlaces: 3
Long: 78
Nº enlaces: 2
Long: 78
Nº enlaces: 1
Long: 1112
Referencias directas
Referencias directas
Referencias directas
1
2
NIL
NIL
2
3
.
.
.
.
.
.
Zona 1
Zona 2
1 .
1 ..
2 xy
-
2 .
1 ..
3 xy
-
NIL
Mapa de bits de nodos-i
0
1
2
3
0
1
1
1
Mapa de bits de zona
1
2
3
0
1
1
0
.
.
.
0
15. La zona 2 está asignada a dos ficheros: al directorio /xy y al
fichero /xy/xy.
La zona 3 está asignada al nodo-i nº 3 y no está marcada como
“en uso” en el mapa de bits de zonas.
Explique brevemente cómo se implementa un enlace físico y un enlace simbólico en Unix.
Enlace físico: Dos o más entradas de directorio (“enlaces” en
16. terminología UNIX) referencian el mismo fichero y, por tanto,
tienen el mismo número de nodo-i.
Enlace simbólico: Se crea un nuevo fichero de tipo “link” y en
su contenido se guarda el nombre de ruta (absoluto o relativo,
no importa) del fichero al que haga referencia.
7
Sistemas Operativos II
CONVOCATORIA ORDINARIA
Escuela Universitaria de Informática / Facultad de Informática
7 de junio de 2001
Se tiene la siguiente lista de peticiones de acceso a bloques de una partición de disco:
52, 31, 157, 143, 230, 112, 89, 0, 175, 188
Si el disco tiene 250 bloques, numerados del 0 al 249, y el cilindro inicial sobre el que se encuentra el cabezal es
el 151 diga cual sería la trayectoria recorrida por el cabezal del disco con los siguientes algoritmos:
a) SSTF
b) LOOK con dirección inicial descendente
17. 157, 143, 112, 89, 52, 31, 0, 175, 188, 230.
143, 112, 89, 52, 31, 0, 157, 175, 188, 230.
Se tiene un sistema Unix en el que existen tres usuarios: so1, so2 y ast. Los usuarios so1 y so2
pertenecen al grupo prac mientras que ast pertenece al grupo guest. Asimismo, se tiene un directorio cuyo
listado es el siguiente:
prop.
rws
rws
rwx
rwx
grup.
rw--x
rwr--
otros
--x
--x
-----
propietario.
so1
so1
so1
ast
grupo
prac
prac
prac
guest
fichero
type
trunc
script1
script2
La descripción de los ficheros de este directorio es la siguiente:
type arg1: visualiza el contenido del fichero arg1 por la salida estándar.
trunc arg1: borra el contenido del fichero arg1, truncándolo pero sin eliminarlo.
script1: fichero ASCII con órdenes del shell de Unix.
script2: fichero ASCII con órdenes del shell de Unix.
Represente el resultado de la cuestión anterior mediante una matriz de acceso en la que los objetos son
script1 y script2 y las operaciones a considerar son la operaciones type y trunc, descritas
anteriormente, y sh donde sh es el shell de Unix.
18.
(so1,prac)
(so2,prac)
(ast,guest)
script1
script2
type
trunc
sh
---
trunc
sh
---
type
trunc
type
sh
8
Descargar