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