UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID

Anuncio
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID
Facultad de Informática
Escuela Universitaria de Informática
Departamento de Lenguajes, Sistemas Informáticos e Ingeniería de Software
ORGANIZACIÓN Y ADMINISTRACIÓN DE MEMORIA VIRTUAL.
EJERCICIO Nº 1.
a)
Una computadora proporciona a cada proceso 65.536 bytes de espacio de direcciones.
Un programa se divide en tres partes:
 Texto, con un tamaño de 32.768 bytes.
 Datos, con un tamaño de 16.386 bytes.
 Tablas, con un tamaño de 15.870 bytes.
Sabiendo que en una misma página, solo se puede introducir texto, datos o tablas, pero no
mezclas. Indique si el programa se podría ejecutar con paginación pura:
1) Sí el tamaño de página fuese de 4 Kb.
2) Sí el tamaño de página fuera de 512 Bytes.
b)
Una computadora con memoria virtual, mantiene todas las tablas de páginas de sus procesos
en la memoria. El acceso a la memoria se realiza en 500 nseg.
Para reducir ese tiempo de acceso la computadora tiene una memoria asociativa, la cual
contiene 32 registros y puede realizar una búsqueda en 100 nseg.
¿Que proporción de encuentros será necesaria, para reducir el tiempo de acceso hasta los 200
nseg.?
EJERCICIO Nº 2.
Dado un sistema con administración de memoria basada en la segmentación y suponiendo que se
desea acceder a la dirección física 142.760. Determinar cual sería la dirección lógica que la
representa. Razone su respuesta.
SEGMENTO
1
2
3
4
TABLA DE SEGMENTOS
DIRECCIÓN BASE
100.000
120.000
140.000
160.000
TAMAÑO
3.000
5.000
7.000
9.000
EJERCICIO Nº 3.
Considerando la siguiente tabla de segmentos:
SEGMENTO
0
1
2
3
TABLA DE SEGMENTOS
DIRECCIÓN BASE
214
2.500
720
1.332
TAMAÑO
23
14
354
100
¿Cuales son las direcciones físicas de las siguientes direcciones lógicas?
a) 0,21 b) 1,23 c) 3,53 d) 3,200
ORGANIZACIÓN Y ADMINISTRACCIÓN DE MEMORIA VIRTUAL
1
EJERCICIO Nº 4.
Un programa al ejecutarse genera las siguientes direcciones lógicas, en hexadecimal: 2040A3, 3BC, 235D, 2AB372
y 2052A7.
El sistema utiliza segmentación paginada con bus de direcciones de 24 bits, los segmentos tienen un tamaño de 64
Kb y cada pagina tiene un tamaño de 4 Kb.
El registro base (origen) de la tabla de segmentos del programa, apunta a la dirección 3.000 (decimal) y las tablas de
segmentos y páginas del programa son las siguientes:
3.000
200
SEGMENTO
0
1
2
3
DIRECCIÓN
(DECIMAL)
200
300
400
500
300
PÁGINA
0
1
2
3
Nº MARCO
(HEXADEC)
BE8
FE8
3E8
7E8
400
PÁGINA
0
1
2
3
4
Nº MARCO
HEXADEC.
2D02
2902
3102
2502
2102
500
PÁGINA
0
1
2
3
4
5
Nº MARCO
HEXADEC.
42E1
52E1
56E1
4AE1
4EE1
46E1
PÁGINA
0
1
2
Nº MARCO
HEXADEC.
BCB2
C0B2
B8B2
Se desea obtener lo siguiente:
a)
b)
c)
¿Cuantos segmentos puede soportar el sistema?
Si el programa ha generado alguna dirección que sea incorrecta, indique cual y razone porqué.
Traduzca a direcciones físicas las direcciones lógicas generadas por el programa.
EJERCICIO Nº 5.
Determinar el número de interrupciones por fallo de página provocadas por un programa que va a tener la siguiente
secuencia de peticiones de página:
1, 4, 2, 3, 2, 5, 4, 1, 7, 2, 8, 6
El sistema tiene asignados cuatro marcos de memoria para el programa y va a seguir una asignación local de marcos.
El sistema de forma automática carga una página del programa para comenzar su ejecución.
Aplicar por separado, los algoritmos OPTIMO Y LRU.
EJERCICIO Nº 6.
Considérese un sistema de memoria virtual con paginación bajo demanda. En un instante determinado se están
ejecutando los procesos P1 y P2 a los cuales se han asignado respectivamente 3 y 4 marcos.
El sistema sigue una política de asignación local de marcos.
Las tablas de páginas de los procesos en un instante determinado de su ejecución tienen, entre otra información, la
siguiente:
TABLA DE PÁGINAS DE P 1
Nº DE PÁGINA
6
7
8
9
15
16
DIR. DE MARCO
512
3.584
1.536
2.560
1.024
5.120
TABLA DE PÁGINAS DE P 2
Nº DE PÁGINA
4
5
6
7
16
18
DIR DE MARCO
3.072
3.584
4.096
5.120
2.560
6.144
NOTA: Solo se indican las páginas de cada proceso que se encuentran cargadas en memoria física.
El sistema dispone de un conjunto de marcos adicionales para páginas compartidas por los procesos, que nunca son
intercambiadas a memoria auxiliar. Los procesos P1 y P2 tienen una zona de código común que ocupa tres páginas.
ORGANIZACIÓN Y ADMINISTRACCIÓN DE MEMORIA VIRTUAL
2
El procesador se cede a cada proceso durante intervalos alternos.
Durante el último periodo de ejecución de P1 se referenció la siguiente cadena de páginas:
,6, 7, 7, 8, 9, 15
Determinar el número de fallos de página que generará P1 en la ejecución de la siguiente cadena de páginas,
correspondiente a su siguiente intervalo de ejecución, si se utiliza un algoritmo de reemplazo de páginas LRU.
7, 8, 9, 5, 7, 11, 6, 6, 3, 9, 8, 16, 7, 2, 3, 16, 4, 15, 3, 7, 1, 15
EJERCICIO Nº 7.
Un Sistema Operativo administra la memoria mediante paginación pura y utiliza direcciones lógicas de 24 bits
distribuidas de la siguiente forma:


Para determinar el nº de página, 12 bits.
Para el desplazamiento dentro de la página, 12 bits.
Cada entrada en la tabla de páginas consta de 4 bytes y su estructura es la siguiente:


Para información de control de la página, 8 bits.
Para la dirección física de comienzo del marco de la página a la que corresponde la entrada, 24 bits.
El grado de multiprogramación es de 5 procesos.
Se desea calcular lo siguiente:
a)
b)
c)
La máxima cantidad de memoria direccionable, sabiendo que el tamaño de la palabra es de 1 byte.
El tamaño de un programa de 7 páginas.
El área de memoria que ocuparan las tablas de páginas de los procesos cuando se alcance el grado máximo de
multiprogramación.
EJERCICIO Nº 8.
Un Sistema administra la memoria mediante Paginación, utilizando direcciones lógicas de 24 bits. Para disminuir el
tiempo de traducción de una dirección lógica, se ha dotado al Sistema de una memoria asociativa de 16 registros
obteniéndose los siguientes tiempos:


El tiempo empleado para consultar la memoria asociativa, es de 160 nseg.
El tiempo empleado para acceder a la memoria real, es de 1 microsegundo.
Se desea calcular lo siguiente:
a)
El tiempo medio de acceso a la palabra referenciada por cada dirección lógica, si se supone un porcentaje de
búsquedas positivas en la memoria asociativa del 75%.
b)
En que porcentaje ha disminuido el tiempo de acceso, respecto a la situación en la que el Sistema no disponía
de memoria asociativa.
EJERCICIO Nº 9.
Una memoria virtual dispone de 9 marcos para programas. En ese momento se esta ejecutando el proceso A, que
tiene concedidos 3 marcos y piden memoria los procesos B y C de 40K y 20K respectivamente.
Se realiza un reparto proporcional de marcos libres, según el tamaño de los procesos y ambos entran en ejecución.
Si cuando el proceso C demanda por primera vez la página 3 el proceso A termina y sus marcos se reparten entre los
procesos B y C con el mismo criterio anteriormente citado.
ORGANIZACIÓN Y ADMINISTRACCIÓN DE MEMORIA VIRTUAL
3
Se desea:
Determinar cuantos fallos de página y en que secuencia, originaría el proceso C si se sigue una asignación de marcos
basada en el algoritmo OPTIMO.
La secuencia de petición de páginas del proceso C es la siguiente:
1, 2, 1, 5, 2, 3, 7, 6, 5, 4, 3, 7, 5, 6, 4, 3, 2, 1, 5, 4, 2, 7
EJERCICIO Nº 10.
Una computadora tiene cuatro marcos de página. El tiempo de carga, el tiempo del último acceso y los bits de
acceso y modificación son los que se muestran a continuación:
PÁGINA
0
1
2
3
a)
b)
c)
CARGADA
126
230
120
160
ÚLTIMO ACCESO
270
260
272
280
BIT DE ACCESO
0
0
1
1
BIT DE MODIFICACIÓN
0
1
1
1
¿Que página sustituirá el algoritmo NRU?
¿Que página sustituirá el algoritmo FIFO?
¿Que página sustituirá el algoritmo LRU?
EJERCICIO Nº 11.
Un sistema operativo gestiona la memoria mediante el esquema de segmentación paginada y utiliza direcciones de
24 bits. Para disminuir el tiempo de traducción de una dirección lógica, se ha dotado al sistema de una memoria
asociativa de 16 registros, obteniéndose los siguientes tiempos:


El tiempo empleado para la consulta de la memoria asociativa, es de 50 nseg.
El tiempo empleado para acceder a la memoria real, es de 300 nseg.
Los datos para la resolución del problema se encuentran en el esquema que figura a continuación:
DIRECCIÓN LÓGICA
11 12
0
N PÁGINA
23
DESPLAZAMIENTO
TLB
0
DIRECCIÓN FÍSICA
11 12
N. MARCO
0
56
N. SEGMENTO
N. PÁGINA
N
n
.
.
DESPLAZ.
11
TABLA SEGMENTOS
0
3
5.000
1
3
3.000
2
2
2.000
.
.
31
T. DE PAG.
5.000
0
046 HEX
1
032 HEX
2
53F HEX
T. DE PAG.
3.000
0
A64 HEX
1
010 HEX
2
F23 HEX
MEMORIA REAL
7.000
.
.
.
ORGANIZACIÓN Y ADMINISTRACCIÓN DE MEMORIA VIRTUAL
4
Se desea obtener lo siguiente:
a)
b)
c)
d)
e)
El tamaño de página y de marco de página.
La máxima memoria real que se puede dimensionar.
El tamaño máximo de segmento.
Calcular las direcciones físicas que corresponden a Las siguientes direcciones lógicas: 0003A9 Hex. y
041F5A Hex.
Calcular el Tiempo de acceso efectivo suponiendo que el porcentaje de encuentros en la TLB es del 80%
ORGANIZACIÓN Y ADMINISTRACCIÓN DE MEMORIA VIRTUAL
5
UNIVERSIDAD PONTIFICIA DE SALAMANCA EN MADRID
Facultad de Informática
Escuela Universitaria de Informática
Departamento de Lenguajes, Sistemas Informáticos e Ingeniería de Software
SOLUCIONES DE LOS EJERCICIOS
SOLUCIÓN AL EJERCICIO Nº 1.
a)
a1)
65.536/4*1024 = 16 páginas.
Texto = 32.768/4*1024 = 8 páginas.
Datos = 16.386/4*1024 = 4,00048 = 5 páginas.
Tablas = 15.870/4*1024 = 3,87 = 4 páginas.
Ocuparía 8 + 5 + 4 = 17 páginas y por lo tanto no se podría ejecutar.
a2)
65.536/512 = 128 paginas.
Texto = 32.768/512 = 64 paginas.
Datos = 16.386/512 = 32,0039 = 33 paginas.
Tablas = 15.870/512 = 30,99 = 31 paginas.
Ocuparía 64 + 33 + 31 = 128 paginas y por lo tanto si se podría ejecutar.
b)
100p + 600(1-p) = 200
p = 400/500 = 0,80 es decir el 80%
SOLUCIÓN AL EJERCICIO Nº 2.
La dirección física 142.760 se corresponde con la dirección lógica 3,2760, es decir, Pagina 3 y
Desplazamiento 2.760.
Dicha dirección física, esta dentro del espacio de direcciones cubiertas por el segmento 3, ya que el
desplazamiento de 2.760 posiciones, con respecto al origen del segmento, esta dentro del tamaño del
segmento.
SOLUCIÓN AL EJERCICIO Nº 3.
Las direcciones físicas correspondientes a las siguientes direcciones lógicas:
a) 0,21
b) 1,23
c) 3,53
d) 3,200
214 + 21 = 235
ERROR ya que 23 > 14
1332 + 53 = 1385
ERROR ya que 200 > 100
ORGANIZACIÓN Y ADMINISTRACCIÓN DE MEMORIA VIRTUAL
6
SOLUCIÓN AL EJERCICIO Nº 4.
a)
b)
c)
Si para expresar una dirección se utilizan 24 bits y con ellos debemos indicar el desplazamiento,
numero de pagina y numero de segmento tenemos:
Como las paginas son de 4 Kb el mayor desplazamiento será: 4*1024 = 2 12 luego se necesitan 12
bits.
Si tenemos en cuenta que, los segmentos tienen 64 Kb y las paginas son de 4 Kb, cada segmento
tiene 16 paginas, luego son necesarios 16 números de pagina, es decir 2 4 , por lo tanto se necesitan
4 bits para el numero de pagina.
Para el numero de segmento quedan 24 - (12 + 4) = 8 bits
Por lo tanto, el numero de segmentos posibles será 2 8 , es decir, 256 segmentos.
Según la tabla de segmentos, el programa tiene solamente 4 segmentos, por lo tanto, no son validas
las direcciones que indiquen segmentos mayores de 3.
En cada dirección hexadecimal, las tres primeras cifras, es decir los 12 bits de orden inferior, son el
desplazamiento, la siguiente 4 bits, es el numero de pagina y el resto el numero de segmento.
Las direcciones 2040A3, 2AB372 y 2052A7 no son validas pues el numero de segmento es mayor
que 3.
Las únicas direcciones que pertenecen al programa son, según lo anterior: 3BC y 235D.
3BC: Desplazamiento 3BC, pagina 0 y segmento 0.
En las tablas vemos que la pagina 0 del segmento 0 comienza en BE8, por tanto la dirección física
pedida será BE83BC.
235D: Desplazamiento 35D, pagina 2 del segmento 0.
En las tablas vemos que la pagina 2 del segmento 0 comienza en 3E8, por tanto la dirección física
pedida será 3E835D.
SOLUCIÓN AL EJERCICIO Nº 5.
Secuencia de peticiones: 1, 4, 2, 3, 2, 5, 4, 1, 7, 2, 8, 6
Algoritmo OPTIMO.
1 4 2 3 2 5 4 1 7 2 8 6
1 1 1 1
4 4 4
2 2
3
x x x
1
4
2
3
1
4
2
5
x
1
4
2
5
1
4
2
5
7
4
2
5
x
7
4
2
5
7
8
2
5
x
7
8
6
5
x
7 Interrupciones.
3 2 5 4 1 7 2 8 6
1 1 4 3 2 5 4 1 7
4 4 3 2 5 4 1 7 2
2 3 2 5 4 1 7 2 8
3 2 5 4 1 7 2 8 6
x x x
x x x x x x
9 Interrupciones.
Algoritmo LRU.
1 4 2
1 1 1
4 4
2
ORGANIZACIÓN Y ADMINISTRACCIÓN DE MEMORIA VIRTUAL
7
SOLUCIÓN AL EJERCICIO Nº 6.
De las tablas de páginas se deduce que las paginas comunes son las siguientes, ya que son referenciadas
en las tablas de paginas de los dos procesos, compartiendo el mismo marco de memoria real:
PROCESO P1
Nº DE PÁGINA
7
9
16
DIRECCIÓN
DEL MARCO
3.584
2.560
5.120
PROCESO P2
Nº DE PÁGINA
5
16
7
De la secuencia de paginas del anterior período de ejecución de P1, debemos descartar las paginas
comunes, ya que estas nunca se intercambian a la memoria auxiliar; por lo tanto, dicha secuencia desde
el punto de vista de las páginas que considera el algoritmo de sustitución, queda como sigue:
...., 6, 8, 15
Se descartan las paginas 7 y 9 que son páginas comunes.
Las páginas 6, 8 y 15 deberán de estar presentes en memoria en el siguiente período de ejecución de P1,
ya que son las mas recientemente referenciadas y se utiliza el algoritmo LRU.
La secuencia de páginas de este periodo, una vez descartadas las comunes, quedará como sigue:
8
5
11
6
6
3
8
2
3
4
15
3
1
15
6
8
15
5
8
15
X
5
8
11
X
5
6
11
X
5
6
11
3
6
11
X
3
6
8
X
3
2
8
X
3
2
8
3
2
4
X
3
15
4
X
3
15
4
3
15
1
X
3
15
1
TOTAL FALLOS DE PAGINA = 9
SOLUCIÓN AL EJERCICIO Nº 7.
a)
Calcular la máxima cantidad de memoria direccionable, sabiendo que el tamaño de la palabra es de
1 byte.
Nº máximo de paginas = 2 12 = 4096
Tamaño de pagina = 2 12 = 4096
Por lo tanto, 2 24 = 16 Mpalabras = 16 Mb.
b)
El tamaño de un programa con 7 paginas.
Tamaño del programa = 4096*7 paginas = 28.672 = 28 Kb.
c)
Para calcular el área de memoria que ocuparán, las tablas de paginas de los procesos, cuando se
alcance el máximo grado de multiprogramación:
Tamaño de cada entrada = 4 Bytes.
Nº de entradas por pagina = 2 12 = 4096 Bytes.
Por tanto, 4*4096= 16.384 = 16 Kb.
Grado de Multiprogramación = 5*16 Kb. = 80 Kb.
ORGANIZACIÓN Y ADMINISTRACCIÓN DE MEMORIA VIRTUAL
8
SOLUCIÓN AL EJERCICIO Nº 8.
a)
Sabiendo que:
El tiempo de acceso a memoria asociativa(tama) = 160 nseg.
El tiempo de acceso a memoria principal(tamp) = 1000 nseg.
h = 75% y n = 0,25 tanto por uno.
Tendremos que:
tp(tiempo positivo) = tama+tamp = 160+1000 = 1160 nseg.
tn(tiempo negativo) = tama+2*tamp = 160+2*1000 = 2160 nseg.
ta(tiempo acceso) = (h*tp)+(n*tn) = (1160*0,75)+(2160*0,25) = 870 – 540 = 1410 nseg.
b)
El tiempo de acceso sin memoria asociativa será:
ta(tiempo acceso)= 2*1000=2000 nseg.
Por lo tanto:
Si a 2000 ----- 100
2000-1410 ----- x
x=
59.000
 29,5%
2000
SOLUCIÓN AL EJERCICIO Nº 9.
Cuando solicitan memoria los procesos B y C, quedan 6 marcos:
Por lo tanto se repartirán de la siguiente forma:
B(40K)=40*
6
6
 4 marcos y C(20K)=20*
 2 marcos.
60
60
Cuando A finaliza sus 3 marcos se reparten proporcionalmente, por lo tanto serán 2 para B y 1 para C.
1
2
1
5
2
3
7
6
5
4
3
7
5
6
4
3
2
1
5
4
2
7
1
1
2
2
1
2
5
5
2
5
3
6
X
3
5
4
X
5
4
3
X
5
4
7
X
4
5
7
4
5
6
X
5
4
6
5
4
3
X
5
4
2
X
5
4
1
X
4
5
1
4
5
1
X
5
3
7
X
3
5
6
X
5
3
2
X
2
4
5
X
7
2
4
X
X
Termina A, 1 marco mas para C
1215237654375643215427
1122555533554455554427
215233355445544445542
27664377663211154
xx x xxx xxx x xxx
xx
Se producen 15 fallos de pagina.
SOLUCIÓN AL EJERCICIO Nº 10.
ORGANIZACIÓN Y ADMINISTRACCIÓN DE MEMORIA VIRTUAL
9
a) La pagina que se sustituirá, según el algoritmo NRU, será la 0, ya que es la única que pertenece a la
clase 0.
b) La pagina que se sustituirá, según el algoritmo FIFO, será la 2, ya que fue cargada primero y es la mas
antigua.
c) La pagina que se sustituirá, según el algoritmo LRU, será la 1, ya que se accedió a ella en el tiempo
260 y por lo tanto es la que mas tiempo lleva sin ser accedida.
SOLUCIÓN AL EJERCICIO Nº 11.
a)
Para calcular el tamaño de página y marco de página tendremos:
El número de direcciones que se pueden utilizar será:
Dirección Física
0
11 12
N.Marco
b)
23
Desplaz.
Marco de página: 223-11 = 212 = 4 Kb
Página: 212 = 4 Kb
Para calcular la máxima cantidad de memoria, que se puede dimensionar tendremos que:
Si se tiene en cuenta, que la dirección física tiene 24 bits, la máxima cantidad de memoria que
podemos direccionar será 224 = 16 Mb.
c)
Para calcular el tamaño máximo de segmento tendremos que:
Si se tiene en cuenta, que el segmento esta formado por:
0
5
11 12
N.segm.
23
Desplazamiento
23 – 5 = 18 bits.
El tamaño máximo que se podrá direccionar será 218 = 256 Kb.
d)
Para calcular las direcciones físicas, que corresponden a las siguientes direcciones lógicas:
0003A9 y 041F5A en Hexadecimal tendremos:
Teniendo en cuenta que cada número en hexadecimal, son cuatro en binario para la primera
dirección Lógica:
Dirección Lógica
N.Pag. Desplaz.
000
3A9
El desplazamiento va directamente a la dirección física y el número de Página se divide en dos
partes:


Nº de Segmento = 0
Nº de Página = 0
ORGANIZACIÓN Y ADMINISTRACCIÓN DE MEMORIA VIRTUAL
10
Con estos valores entramos en la tabla de segmentos y tomamos los datos que figuran en el
elemento 0, es decir, dirección 5.000 y tamaño 3 y vamos a la tabla de páginas, al elemento 0 y
dirección 046 Hex. Por lo tanto, la dirección física será:
Dirección Física
N.Marco Desplaz.
046
3A9
Para la segunda dirección Lógica:
Dirección Lógica
N.Pag. Desplaz.
041
F5A
El desplazamiento va directamente a la dirección física y el número de página se divide en dos
partes:


Nº de Segmento = 1
Nº de Página = 1
Con estos valores entramos en la tabla de segmentos y tomamos los datos que figuran en el
elemento 1, es decir, dirección 3.000 y tamaño 3 y vamos a la tabla de páginas, al elemento 1 y
dirección 010 Hex. Por lo tanto la dirección física será:
Dirección Física
N.Marco Desplaz.
010
e)
F5A
Para calcular el tiempo de acceso efectivo, sabiendo que:



El tiempo de acceso a la TLB es igual a 50 nseg.
El tiempo de acceso a la memoria es igual a 300 nseg.
El porcentaje de encuentros en la TLB es del 80%.
El tiempo positivo (tp) = 50 + 300 = 350 nseg.
El tiempo negativo (tn) = 50 + 300 + 300 + 300 = 950 nseg.
Por lo tanto, el tiempo de acceso efectivo será igual:
T. acceso efectivo = 350 * 0,8 + 950 * 0,2 = 470 nseg.
ORGANIZACIÓN Y ADMINISTRACCIÓN DE MEMORIA VIRTUAL
11
Descargar