1 a) Posibilidad de compartir memoria: Segmentación, paginación

Anuncio
Sistemas Operativos II
CONVOCATORIA ORDINARIA
Escuela Universitaria de Informática / Facultad de Informática
•
•
•
•
•
APELLIDOS
NOMBRE
DNI
FIRMA
25 de junio de 1999
No desgrape las hojas.
Conteste exclusivamente en los espacios reservados para tal fin.
Utilice el reverso de cada hoja para sus anotaciones.
Emplee letra clara y legible y responda de forma breve y precisa.
El examen consta de 21 cuestiones, que valen 0.33 puntos cada una y dos problemas de 1.5 puntos.
De entre todos los esquemas de gestión de memoria estudiados (tanto con asignación contigua como con
asignación dispersa), indique cuáles cumplen cada una de las siguientes características:
1
a) Posibilidad de compartir memoria:
Segmentación, paginación, segmentación paginada
b) Presentan fragmentación externa:
segmentación, particiones variables
En un PC con un Intel Pentium (páginas de 4 Kbytes), tres procesos P1, P2 y P3 han emitido algunas
direcciones lógicas que la MMU ha traducido en sus direcciones físicas asociadas. Asuma que los tres procesos
están en memoria y que no se utiliza memoria virtual ni intercambio. Indique qué tipo (o tipos) de gestión de
memoria pueden utilizarse en ese sistema para que se haya podido dar esa traducción, cuando los tres procesos
emitan la misma dirección lógica. Elija entre: segmentación, paginación, segmentación paginada e imposible (la
traducción no puede llevarse a cabo suponiendo que los tres procesos están a la vez en memoria).
Dirección lógica: (0, 5120)
2
segmentación
Dirección lógica: (0, 17080)
3
Direcciones físicas: P1: 6000, P2: 18000, P3: 40960
Direcciones físicas: P1: 4792, P2: 17080, P3: 33464
Segmentación paginada
En un sistema de gestión de memoria segmentado-paginado se tiene una MMU donde únicamente se permiten 8
segmentos por proceso y se emplean dos niveles de paginación, implementando ambos en memoria principal.
La tabla de segmentos se ha implementado en registros, con un tiempo de acceso igual a 2 ns. El tiempo de
acceso a memoria (TAM) es igual a 20 ns. Para mejorar el rendimiento, se tiene un conjunto de registros
asociativos (TLB), donde se guarda como clave tanto el número de segmento como los dos números de página.
El tiempo de acceso para estos registros asociativos es igual a 10 ns.
Indique cuál será el tiempo de acceso efectivo (TAE) de este sistema, si las direcciones lógicas a traducir se
encuentran en el TLB en el 90% de los accesos.
4
Taef= (Tam+Ttlb)tasa_acier+(1-tasa_acier)(3Tam+Ttlb+Treg)
Taef= (20+10) 0.9 +(0.1)(60+10+2)= 27+7.2=34.2
Se tiene un sistema de gestión de memoria virtual basada en segmentación paginada por demanda, donde
existen dos procesos A y B. Las direcciones lógicas tienen 18 bits, el tamaño de página es 1Kb y cada proceso
puede llegar a tener 4 segmentos. Las direcciones físicas son de 12 bits. La memoria física se encuentra
inicialmente vacía y se da la siguiente secuencia de direcciones:
(A, 0, 800) (B, 1, 3000) (B, 0, 28202) (A, 1, 0) (B, 3, 782) (B, 1, 2048) (A, 0, 523) (B, 0, 27990)
(A, 0, 121)
Indicar cuál es el contenido final de la memoria, si se utiliza un algoritmo de reemplazo:
a) LRU local.
5
Marco 0=(A,0,0); Marco 1=(B,0,27); Marco 2=(B,1,2);
Marco 3=(A,1,0)
b) óptimo global.
6
Marco 0=(A,0,0); Marco 1=(B,1,2); Marco 2=(B,0,27);
Marco 3=(B,3,0);
En un sistema se sabe que, con su carga normal, habitualmente se da hiperpaginación. Marque cuáles de las
siguientes acciones podrían llevarse a cabo para que no se dé este problema con una V y con una F las que no
solucionarían el probema :
7
F
Añadir otra partición al espacio de intercambio.
V
Impedir que se incremente el grado de multiprogramación cuando queden pocos
marcos libres.
F
Sustituir el disco por otro con menor tiempo de acceso.
V
Extraer de la memoria (swap out) algunos procesos cuando la tasa de fallos de
página supere cierto límite.
F
Sustituir la MMU por otra que admita espacios lógicos de mayor tamaño.
En un disco con algún formato UNIX, se tienen los siguientes ficheros:
/usr/X11/bin/xinit
/usr/X11/bin/xemacs
/usr/bin/as
/usr/bin/awk
/usr/man/man1/as.1
/usr/man/man1/awk.1
Indique cuál es el número mínimo de enlaces físicos que tendrá el directorio /usr y qué entradas de directorio
originan cada uno de esos enlaces.
2
8
5 enlaces físicos
/usr
/usr/.
/usr/X11/..
/usr/bin/..
/usr/man/..
Asumiendo que el directorio de trabajo actual del intérprete de órdenes es /usr/man/man1, dé el nombre de ruta
relativo más corto posible para hacer referencia al fichero /usr/X11/bin/xinit.
9
../../X11/bin/xinit
Indique el número de bloque donde comienzan cada una de las áreas de un disquete de 1.44 MB en MINIX,
después de utilizar la orden mkfs.minix -n14 /dev/fd0. Asúmase un número de 480 nodos-i con un tamaño de
32 bytes cada uno, zonas de 1024 bytes y entradas de directorio de 16 bytes.
10
Arrq
B0
Super
B1
Mapa
Nodos-i
B2
Mapa
Zonas
B3
Nodos-i
B4...B18
Datos
B19............B1439
Suponga que un disco con 200 cilindros, numerados de 0 a 199, esta sirviendo una petición sobre el cilindro 143
tras terminar de servir una en el cilindro 125. La cola de peticiones contiene los siguientes números de cilindro:
86, 147, 91, 177, 94, 180, 181, 118. Indique para los algoritmos de planificación LOOK y C-SCAN el número
de cilindros recorridos para atender dicha secuencia de solicitudes.
11 LOOK = 133
C-SCAN = 373
Implementar un shell script cuya misión principal sea lanzar cada 5 minutos el programa “/bin/estadísticas”
cuya salida se vuelca al fichero “/tmp/estad”. En caso de interrupción del shell script, este deberá mover el
fichero de salida al directorio inicial de trabajo del usuario.
12 trap ´mv /tmp/estad $HOME; exit´ 2 1 15
while sleep 300
do
/bin/estadisticas > /tmp/estad
done
3
¿Cuántos bloques de datos y cuántos nodos-i ocupa un fichero vacío en UNIX ¿
13 Bloques de datos = 0 bloques
Nodos-i = 1 nodo-i
Partiendo de la existencia de un archivo denominado fich1, que se creó ejecutando la orden
echo “hola” >fich1
Indique el contenido del primer bloque de datos de los ficheros que se crean en los siguientes casos:
• ln –s fich1 fich2
• ln fich1 fich3
14 Contenido de fich2 = fich1
Contenido de fich3 =contenido de fich1 ya que son el mismo
fichero = hola
Indique la secuencia de bloques de datos que ocupa el directorio "so2" en los casos siguientes:
§ Disco con un sistema de archivos MS-DOS.
Nombre
so2
Entrada de directorio
FAT
0
XX
1
XX
2
EOF
3
20
4
2
...
...
...
XX
17
21
Ptr. 1r blq.
17
..
..
20
4
21
25
XX
22
23
23
24
24
EOF
25
26
26
27
27
22
..
..
15 Bloques de datos del directorio so2 =17,21, 25,26, 27, 22,
23, 24
§
Disco con un sistema de archivos Unix (Minix).
Nodo-i
17
Entrada de directorio
Nodo-i Atributos
17
XX
Blq. 17
Blq. 18
35
40
Nombre
So2
Ptr. 1
Ptr. 2
Ptr. 3
Ptr. 4
Ptr. 5
Ptr. 6
Ptr. 7
17
21
25
26
27
22
23
36090 37000
404
1024
11400
365
715
840
980
9086
Ptr. S.
Indirecto
18
Ptr. D.
Indirecto
-
40567 64500 10567
16 Bloques de datos del directorio so2 =17,21, 25,26, 27,22,
23,40
Teniendo en cuenta las características utilizadas en las prácticas 3 y 4 de construcción de un simulador de
gestión de memoria.
4
Indíquese qué elementos se han de evaluar a la hora de comprobar si una dirección pertenece al espacio de un
proceso bajo un sistema de gestión de memoria virtual basado en paginación por demanda.
17 Tamaño del proceso o número de páginas que ocupa el
proceso
Indíquese qué elementos se han de evaluar a la hora de comprobar si una página está en memoria física.
18 El bit de validez en la tabla de páginas
Se dispone de un disco de 10 cabezales, 512 cilindros y 512 bytes por sector, con una capacidad total de 100
MB.
Indique el número de bloques por pista en los siguientes casos:
19 a) 2 sectores por bloque lógico = 20 bloques lógicos por pista, total 40 sectores
b) 5 sectores por bloque lógico = 8 bloques lógicos por pista, total 40 sectores
Dado el bloque lógico 56, obtener las direcciones CHS (cilindro, cabezal, sector), teniendo en cuenta que 5
sectores forman un bloque lógico.
20 Cilindro 0, cabezal 7, sectores 0,1,2,3,4
Dado el siguiente listado del contenido de un directorio UNIX:
-rwsr--r-x
-r---w----rw----r--
1 calif grupo1
1 calif grupo1
1 calif grupo1
1014 May 17 11:10 miprog
14487 Jun 25 09:11 datos
2099 Jun 25 08:49 punt2
Y los usuarios “ramon” (perteneciente al grupo “grupo1”), “marta” (perteneciente al grupo “grupo3”) y “juan”
(perteneciente al grupo “grupo2”). Indique, de entre los tres usuarios citados, quienes podrán utilizar el
programa “miprog”, y con él, procesar la información existente en los ficheros “datos” y “punt2” (para ello,
únicamente se necesita leer el contenido de ambos ficheros).
21 Grupo 1, no puede ejecutar miprog
Grupo 2 y 3 pueden ejecutar miprog y leer en ejecución los
ficheros datos y punt2.
5
PROBLEMA 1
Sea un sistema de memoria virtual basado en segmentación paginada por demanda. El tamaño de marco es de
1024 bytes, las direcciones lógicas son de 15 bits y las direcciones físicas son de 13 bits.
a) Teniendo en cuenta que en dicho sistema un segmento ha de poder ser ubicado totalmente en memoria.
Indique el tamaño máximo de segmento en páginas, así como el número máximo de segmentos por proceso
con dicho tamaño de segmento.
a) Tamaño máximo de segmento en páginas = 8 páginas
Número de segmentos con tamaño máximo por proceso = 4
b) Dicho sistema trabaja con una única tabla de páginas por proceso, en la que aparecen en primer lugar todos
los descriptores de página del segmento 0, a continuación los del segmento 1, etc.. En un instante dado
existen dos procesos ejecutándose en el sistema P1 y P2 con parte de sus segmentos en memoria. Teniendo
en cuenta que el contenido de la memoria principal es el que se indica en la siguiente tabla:
Memoria Principal
Núm. marco contenido
0
(P2, 0, 3)
1
(P2, 3, 1)
2
(P1, 3, 2)
3
(P1, 0, 2)
4
(P2, 1, 3)
5
(P1, 1, 3)
6
(P1, 2, 1)
7
(P2, 2, 2)
Página
Segmento
Proceso
con el formato (proceso, segmento, página) y considerando que la última dirección solicitada por cada uno de
los procesos hace referencia a la última página de los respectivos segmentos, dicha última página sólo contiene
500 direcciones válidas. Indique el contenido de las tablas de segmentos y de las tablas de páginas. (Nota: para
que sea menos tedioso se proporcionan las tablas a rellenar).
Proceso P 1
Tabla de segmentos
Número de Tamaño
Base
segmento
0
1
2
3
2548
3572
1524
2548
0
3
7
9
Tabla de páginas
marco
Bit validez
0
1
2
3
4
5
6
7
8
9
10
11
3
5
6
2
i
i
v
i
i
i
v
i
v
i
i
v
6
Proceso P 2
Tabla de segmentos
Número de Tamaño
Base
segmento
0
1
2
3
3572
3572
2548
1524
0
4
8
11
Tabla de páginas
marco
Bit validez
0
1
2
3
4
5
6
7
8
9
10
11
12
0
4
7
1
i
i
i
v
i
i
i
v
i
i
v
i
v
C) En dicho sistema se solicita una secuencia de accesos a páginas por parte de 3 procesos P1, P2 y P3 dentro de su
espacio lógico de direcciones, como se muestra en la siguiente tabla. El último acceso indica que el proceso termina, lo que
implica que sus páginas deben ser eliminadas de memoria en ese instante.
Proceso
P1
P2
P3
(seg,pag)
(0,1)
(2,2)
(0,0)
(seg,pag)
(1,2)
(2,2)
(0,0)
(seg,pag)
(3,0)
(2,1)
(1,0)
Terminado
Terminado
Terminado
El sistema atiende a los procesos siguiendo un turno rotatorio, de tal forma que permite a un proceso emitir una dirección y
luego se lo permite al siguiente. Ejemplo: (P1, 0,1), (P2,2,2), (P3,0,0), (P1,1,2) ......
Para controlar el número de páginas que deben residir en memoria por cada proceso, se decide utilizar un modelo de área
activa, empleando 4 referencias. La estrategia utilizada es la siguiente:
•
•
•
•
•
Siempre se asigna el marco más bajo que haya libre.
Cada vez que se solicita un nuevo acceso a memoria por parte de un proceso, se calcula su área activa teniendo en
cuenta dicha solicitud.
Sólo deben estar presentes en memoria las páginas que forman las áreas activas de todos los procesos, siempre y
cuando exista disponibilidad de memoria física. Por tanto, se han de sacar de memoria aquellas que no formen parte
del área activa calculada.
Si al calcular el área activa de un proceso P, se detecta que no hay suficiente memoria física, el proceso es
suspendido.
Cuando se produzca nueva disponibilidad de memoria física, debe cargarse en memoria el área activa del primer
proceso que se encuentre suspendido
Complete la tabla siguiente a partir de un instante en que el estado de la memoria física está completamente ocupada (como
se muestra en la tabla) teniendo en cuenta el esquema propuesto y la secuencia de accesos complete la siguiente tabla:
7
Proc Seg.
.
P2
0
Pág.
Marco 0
Marco 1
Marco 2
Marco 3
Marco 4
Marco 5
Marco 6
Marco 7
3
P2, 0, 3
P2
3
1
P2, 0, 3
P2, 3, 1
P1
3
2
P2, 0, 3
P2, 3, 1
P1, 3, 2
P1
0
2
P2, 0, 3
P2, 3, 1
P1, 3, 2
P1, 0, 2
P2
1
3
P2, 0, 3
P2, 3, 1
P1, 3, 2
P1, 0, 2
P2, 1, 3
P1
1
3
P2, 0, 3
P2, 3, 1
P1, 3, 2
P1, 0, 2
P2, 1, 3
P1, 1, 3
P1
2
1
P2, 0, 3
P2, 3, 1
P1, 3, 2
P1, 0, 2
P2, 1, 3
P1, 1, 3
P1, 2, 1
P2
2
2
P2, 0, 3
P2, 3, 1
P1, 3, 2
P1, 0, 2
P2, 1, 3
P1, 1, 3
P1, 2, 1
P2, 2, 2
P1
0
1
P2, 0, 3
P2, 3, 1
P1, 0, 1
P1, 0, 2
P2, 1, 3
P1, 1, 3
P1, 2, 1
P2, 2, 2
P2
2
2
______
P2, 3, 1
P1, 0, 1
P1, 0, 2
P2, 1, 3
P1, 1, 3
P1, 2, 1
P2, 2, 2
P3
0
0
P3,0,0
P2, 3, 1
P1, 0, 1
P1, 0, 2
P2, 1, 3
P1, 1, 3
P1, 2, 1
P2, 2, 2
P1
1
2
P3,0,0
P2, 3, 1
P1, 0, 1
P1, 1, 2
P2, 1, 3
P1, 1, 3
P1, 2, 1
P2, 2, 2
P2
2
2
P3,0,0
_______
P1, 0, 1
P1, 1, 2
P2, 1, 3
P1, 1, 3
P1, 2, 1
P2, 2, 2
P3
0
0
P3,0,0
_______
P1, 0, 1
P1, 1, 2
P2, 1, 3
P1, 1, 3
P1, 2, 1
P2, 2, 2
P1
3
0
P3,0,0
P1,3,0
P1, 0, 1
P1, 1, 2
P2, 1, 3
______
P1, 2, 1
P2, 2, 2
P2
2
1
P3,0,0
P1,3,0
P1, 0, 1
P1, 1, 2
P2, 2,1
______
P1, 2, 1
P2, 2, 2
P3
1
0
P3,0,0
P1,3,0
P1, 0, 1
P1, 1, 2
P2, 2,1
P3,1,0
P1, 2, 1
P2, 2, 2
P1
T
P3,0,0
______
______
______
P2, 2,1
P3,1,0
______
P2, 2, 2
P2
T
P3,0,0
______
______
______
______
P3,1,0
______
______
P3
T
______
______
______
______
______
______
______
______
8
PROBLEMA 2
Se desea inicializar un disco de 15Mb con sectores de 512 bytes para poderlo utilizar en Linux, previendo que
sobre ese dispositivo no se crearán más de 780 ficheros. Como Linux admite tanto el formato FAT como el de
MINIX, habrá que decidir cuál resulta más conveniente. Por tanto, hay que elegir entre:
1) Inicializar con FAT12, lo cual implica utilizar clusters de 4 Kb y 32 sectores para el directorio raíz.
2) Inicializar con FAT16, empleando clusters de 512 bytes y 32 sectores para el directorio raíz.
3) Inicializar con MINIX, empleando zonas de 1 Kb, y un número máximo de nodos-i igual a 800 (Los nodos-i
guardan 7 punteros directos, 1 indirecto simple y 1 indirecto doble, ocupando 32 bytes cada uno, como
siempre. Los punteros a bloque son de 16 bits.).
SE PIDE:
Indicar cuánto espacio (en Kb) se pierde en cada sistema para guardar la cabecera de la partición. Téngase en
cuenta que en los formatos FAT habrá que guardar dos copias de ella (la principal y una auxiliar):
a) FAT12: Sect arranque+ sect. 2ª arranque + FAT + FAT + Raíz
1sector + 1sector+ 12sectores+12sectores+32sectores= 29Kb
(con un sólo sector de arranque =28,5Kb)
b) FAT16: Sect arranque+ sect. 2ª arranque + FAT + FAT + Raíz
1sector + 1sector+120sectores+120sectores+32sectores=137Kb
(con un sólo sector de arranque =136,5Kb)
c) MINIX:1b arranque+ 1b super + mapa nodos-i 1b + 2b mapa
zonas
25b nodos-i =Total cabecera 30Kb
Tras iniciar la partición, se crean en ella 100 ficheros de 7800 bytes, 100 con 2100 bytes y 2 con 600 Kb cada
uno. Indique cuánto espacio se pierde en cada sistema debido a fragmentación interna (hay que considerar
también las zonas de índice).
d) FAT12: (8192-7800)*100+(4096-2100)*100+ 0
=39200+199600=238800bytes
e) FAT16:(8192-7800)*100+(2560-2100)*100+ 0
=39200+46000=85200bytes
f) MINIX:(8192-7800)*100+índ.1022*100+(3072-2100)*100+
índ. (1022+862)*2 =39200+102200+97200+ 3768=242368bytes
De entre los tres formatos propuestos, ¿cuál preferiría y por qué?
g)
9
10
Descargar