SISTEMAS OPERATIVOS. Grado en Ingenier´ıa Informática. 2014

Anuncio
SISTEMAS OPERATIVOS. Grado en
Ingenierı́a Informática. 2014
TGR 3: Memoria
Ejercicios a resolver por los alumnos
1. Un sistema de 16 bits tiene paginación sin memoria virtual, El tamaño de página es de 4K y cada
entrada de la tabla de páginas tiene 8 bits, cuyo
significado es el siguiente
• bit 0: proteccion (1:r/w)
• bit 1: privilegio (1: supervisor)
• bit 2 y 3: 00 entrada valida; 11 entrada
no valida
• bits 4-7: dirección del marco fśico
En un instante dado la memoria del sistema está
como se muestra a continuación
0xE000
0xD000
P2 CODE 0
P1 STACK 0
0xC000
0xB000
P1 STACK 1
0xA000
0x9000
P1 DATA 0
0x8000
0x7000
0x6000
0x5000
0x4000
0x3000
P2 CODE 1
P2 DATA 0
P1 DATA 1
P2 STACK 0
P1 CODE 0
0x2000
0x1000
0x0000
S.O. (data)
S.O. (code)
a) ¿Cuánta memoria hay instalada en el sistema? 15 páginas de 4Kbytes, 60 Kbytes
b) ¿Cuánta hay libre? 16 Kbytes
c) Sabiendo que en dicho sistema los procesos
ven el S.O. (código y datos) en las direcciones más altas de su espacio virtual, que
el código lo ven en las direcciones virtuales
más bajas, que los datos están en la zona
inmediatamente superior al código, y que
la pila está en las direcciones virtuales altas
(inmediatamente inferior al S.O.), construir
las tablas de páginas que para dichos procesos en dicho sistema reflejan la situación
descrita
F
E
D
C
B
A
9
8
7
6
5
4
3
2
1
0
página
13
02
B1
D1
0C
0C
0C
0C
0C
0C
0C
0C
0C
51
91
30
Proceso P1
13
02
41
0C
0C
0C
0C
0C
0C
0C
0C
0C
0C
61
70
E0
Proceso P2
d) ¿ Es razonable un tamaño de página de 4K
en un sistema de 16 bits? ¿por qué?
Aunque para hacer el ejercicio, queda muy
sencillo 16 bits y página de 4K (4 bits num
página y 12 bits desplazamiento, que corresponden a 1 y 3 cifras hexadecimales respectivamente) un tamaño de página de 4K
es excesivamente grande para uns sistema
de 16 bits. Presentarı́a muchı́sima fragmentación interna.
2. En un sistema con paginación bajo demanda
con páginas de 4K y 1GB de memoria instalada, la memoria tiene un tiempo de acceso de 55
ns y el disco utilizado para paginación tiene un
tiempo medio de búsqueda de 3 ms, una latencia de 1 ms y una velocidad de transferencia de
4 Mbytes/seg.
a) ¿ Cual es el tiempo efectivo de acceso
a memoria si la probabilidad de fallo de
página es de 10−6 (1 fallo por cada millon
de accesos)?
60 ns
El tiempo de servicio del fallo de página lo
podemos aproximar al tiempo de lectura de
la página desde disco, es decir, búsqueda
+ latencia + transferencia. Puesto que
el disco transfiere 4Mbytes/seg, para transferir una página (4K) emplea aproximadamente 1ms. Por tanto el tiempo de servicio
del fallo de página es de 5 ms (búsqueda +
latencia + transferencia). El tiempo efectivo de acceso a memoria es:
00 999999.55ns + 10−6 ∗ 5ms '= 60ns
b) Suponiendo que la probabilidad de fallo de
página es inversamente proporcional a la
cantidad de memoria instalada, ¿cuál serı́a
el tiempo efectivo de acceso si pasamos de
1GB a 4 Gb instalados en el sistema? ¿Aumentará la velocidad aparente del sistema?
Como el el caso anterior supondremos que
el tiempo de servicio del fallo de página son
5 ms. Si la probabilidad de fallo de página
es inversamente proporcional a la cantidad
de memoria instalada en el sistema, al aumentar la memoria de 1 GB a 4 GB la
probabilidad de fallo de página pasará a ser
00 25.10−6 y por tanto el tiempo efectivo de
acceso a memoria quedará:
00 99999975.55ns + 00 25.10−6 ∗ 5ms '=
560 3ns
Al disminuir el tiempo efectivo de acceso a
memoria, el sistema irá más rápido
3. Considŕense los siguientes códigos
/********** PROGRAMA A ****************/
}#define FIL 4096
#define COL 1024
main()
{
int a[FIL][COL];
int i,j;
for (i=0;i<FIL;i++)
for (j=0;j<COL;j++)
a[i][j]=0;
while(1);
}
/********** PROGRAMA B ****************/
#define FIL 4096
#define COL 1024
int a[FIL][COL];
main()
{ int i,j;
for (i=0;i<FIL;i++)
for (j=0;j<COL;j++)
a[i][j]=0;
while(1);
}
y las salidas del comando pmap a continuación
####################### PMAP 1 #########################
0000000000400000
684K r-x-- /home/antonio/SO/TGR-2014/a.out
00000000006ab000
4K rw--- /home/antonio/SO/TGR-2014/a.out
00000000006ac000 16396K rw--[ anon ]
0000000002fef000
140K rw--[ anon ]
00007fffe2fda000
132K rw--[ stack ]
00007fffe2fff000
4K r-x-[ anon ]
ffffffffff600000
4K r-x-[ anon ]
total
17364K
###################### PMAP 2 #########################
0000000000400000
684K r-x-- /home/antonio/SO/TGR-2014/a.out
00000000006ab000
4K rw--- /home/antonio/SO/TGR-2014/a.out
00000000006ac000
12K rw--[ anon ]
0000000001fc5000
140K rw--[ anon ]
00007fff3d646000 16396K rw--[ stack ]
00007fff3e7ff000
4K r-x-[ anon ]
ffffffffff600000
4K r-x-[ anon ]
total
17244K
a) ¿ Se trata de un sistema de 32 bits?
No, es de 64 bits
b) ¿Cuál es el tamaño de página e esta arquitectura?
4K
c) ¿Puede determinartse que salida del comando pmap corresponde a cada código?
Si. Con enteros de 4 bytes la matriz a tiene
un tamaño de 16 Mbytes. La salida del
comando pmap donde la pila tiene espacio
para almacenar una variable de ese tamaño
corresponde al código deonde dicha variable
es local. Por tanto PMAP 2 corresponde al
código del PROGRAMA A
Descargar