Story Transcript
Sistemas Operativos I
Tema 3. Gestión de Memoria
Problemas Resueltos Tema 3. Gestión de Memoria Gestión de memoria: Asignación contigua 1. Se tiene un sistema de particiones múltiples con un soporte hardware basado en la técnica de registros base y límite. Dado un programa P que ocupa T palabras y se encuentra ubicado en memoria a partir de la posición de memoria física C. a) ¿Cuál es el valor de cada registro para el programa P? b) ¿Cuál es el rango de las direcciones que emite P? c) ¿Cuál es el rango de direcciones reales en que se transforman las direcciones queemite P? Solución a) El registro base y límite se usa en esquemas basados en reubicación en tiempo de ejecución. El valor del registro base será C y el valor del registro límite será T. b) El rango de direcciones de P es entre 0 y T-1. c) Las direcciones físicas reales en las que se ha de transformar se encuentran en el rango entre C y C+T-1. 2. Analizar los esquemas de protección de particiones múltiples desde el punto de vista de la reubicación. Solución Con particiones múltiples de memoria, aparecen dos opciones que el tamaño sea fijo, o que el tamaño de la partición sea variable. En las de tamaño fijo aparece el problema de la fragmentación interna y en las de tamaño variable aparece el problema de la fragmentación externa. Los esquemas de protección que se utilizan para particiones variables son: registro cota inferior y registro cota superior o registro base y registro límite. En el primero la traducción de direcciones se realiza en tiempo de compilación resultando direcciones absolutas de memoria y procesos no reubicables. En el esquema de registro base y límite la traducción de direcciones lógicas a físicas se realiza en tiempo de ejecución resultados por tanto procesos reubicables. 3. Sea un sistema gestionado con un mecanismo de particiones variables en el que la memoria física tiene 4200 palabras. En un instante la memoria está ocupada por 3 bloques de código/datos de la forma: Dirección inicial 1000 2900 3400
longitud 1000 500 800
1
Sistemas Operativos I
Tema 3. Gestión de Memoria
La estrategia utilizada cuando se carga un nuevo bloque en memoria es la del mejor ajuste en primer lugar. Si falla, se crea un hueco mayor desplazando los bloques en memoria hacia la dirección 0. Esta acción siempre empieza con el bloque actualmente en la dirección de memoria más baja, y prosigue únicamente hasta encontrar un hueco suficiente para el nuevo bloque. A partir de ese momento, hay que cargar tres bloques de 500, 1200 y 200 (en ese orden). Describir el contenido de la memoria una vez satisfechas las peticiones.
4199
3399
3400
Bloque 3
Bloque 1
Bloque 2
2899 2900
2000
1999
1000
0999
0000
Solución La situación inicial de la memoria seria la siguiente:
Bloque 3
4199
3400
3399
2499
2000
2900
Bloque 2
Bloque 1
Bloque 4
1999
1000
0999
0000
A partir de este momento cargamos los nuevos bloques, comenzando por el bloque 4 de 500 palabras utilizando el mejor ajuste.
4199
Bloque 3
3400
3399
Bloque 2
2899 2900
1500
1499
1000
Bloque 4
0999 Bloque 1
0000
El siguiente bloque que se ha de ubicar en memoria es el bloque 5 con 1200 palabras. Hay espacio suficiente en memoria pero aparece el problema de la fragmentación externa por tanto se hace necesario utilizar un algoritmo de compactación.
2
Sistemas Operativos I
Tema 3. Gestión de Memoria
Bloque 3
4199
3400
3399
Bloque 2
2900 Bloque 6
Bloque 5
2699
1500
1499
1000
Bloque 4
0999 Bloque 1
0000
Después de la compactación han quedado libres 1400 palabras contiguas en un único hueco, la suma de los tamaños de los bloques 5 y 6 son de 1400 por tanto no habra problema para la ubicación.
4. Sea un sistema donde se utiliza un esquema de asignación con múltiples particiones de tamaño fijo. ¿Qué determinaría el límite del grado de multiprogramación de dicho sistema? Solución Es un esquema donde la memoria se encuentra dividida en varias particiones de tamaño fijo, cada partición únicamente puede contener un proceso y el grado de multiprogramación está limitado por el número de particiones. 5. Sea un sistema gestionado por particiones múltiples de tamaño variable con compactación. En un instante dado, se tiene la siguiente ocupación de la memoria: P1 180K
libre 400 K
P2 100K
libre 150 K
Se utiliza la técnica del mejor ajuste. En la cola de trabajos tenemos en este orden: P4(120K), P5(200K) y P6(80K), los cuales deben ser atendidos en orden FIFO. Suponiendo que no finaliza ningún proceso y tras intentar cargar en memoria todos los procesos que están en la cola. a) Indicad cuántas particiones quedan libres y de qué tamaño son. b) Si en esta situación se aplica compactación, indicar qué proceso o procesos deberían moverse para que el número de Kbytes manejados fuese el menor posible y quede un único hueco. c) Si los registros base de cada proceso son, respectivamente, B1, B2, B3, B4, B5 y B6, indicar cómo han cambiado los registros base correspondientes al proceso o procesos que se han movido debido a la compactación. Solución a) Quedan dos particiones de tamaños 120K y 30 K respectivamente.
P1 180K
P5 200K
P6 80K
libre 120K
P2 100K
P4 120 K
libre 30K
3
Sistemas Operativos I
Tema 3. Gestión de Memoria
b) Debería moverse el proceso P4 al hueco de 120K, con lo cual quedaría un único hueco de 150K. c) Todos los registros bases quedan igual que antes de la compactación exceptiuando el del proceso P4 cuyo B4 contendrá 460 K (se ha considerado que P1 se encuentra ubicado en las direcciones más bajas de memoria). 6. Indique si las siguientes afirmaciones son verdaderas (V) o falsas (F) y justifiquelo. a) La gestión de memoria basada en particiones fijas utiliza el método de compactación para resolver el problema de fragmentación externa. b) El método de superposiciones ("overlays") se puede utilizar en un sistema que no gestione memoria virtual. c) El espacio de direcciones físicas depende del bús de direcciones del sistema. d) El espacio de direcciones lógicas está limitado por el tamaño de la memoria física. e) La compactación de un proceso sólo se puede realizar en un método de reubicación dinámica de la memoria. Solución a) FALSA. No es posible, ya que las particiones de tamaño fijo no presentan el problema de la fragmentación externa. b) VERDADERA. Las superposiciones es un método que se emplea cua ndo no existe memoria virtual para poder ejecutar procesos cuyo tamaño es superior al de la memoria física. El programador debía definir donde comenzaban y acababan las superposiciones. c) VERDADERA. No se puede emitir una dirección de mayor número de bits que el permitido por el sistema. d) FALSO. Las direcciones lógicas son emitidas por la CPU y sólo dependen del número de bits que esta sea capaz de emitir. El espacio de direcciones lógicas de un proceso depende del tamaño del proceso. e) VERDADERO. Si los proceso no son reubicables, no se pueden utilizar algoritmos de compactación, ya que la ejecución de los mismos podría ser errónea, por estar accediendo a direcciones de memoria donde no se encuentran ubicadas sus instrucciones. 7. Suponga un sistema en el que no se dispone de MMU. ¿Existe alguna técnica que permita ejecutar en dicho sistema un programa cuyas necesidades de memoria superen la cantidad de memoria física total disponible?. Solución Sí, utilizando superposiciones. Dividiendo el programa en diferentes fragmentos que no deban estar todos ellos simultáneamente en memoria se puede reducir significativamente la cantidad de memoria física que el programa necesitará.
4
Sistemas Operativos I
Tema 3. Gestión de Memoria
8. ¿Qué tipo de algoritmos se utilizan para gestionar sistemas con asignación contigua de memoria? ¿Qué tipo de fragmentación se puede producir en estos sistemas? Solución Los algoritmos que se pueden utilizar para gestionar los sistemas con asignación contigua de memoria son: “el primer ajuste” (first fit), “el mejor ajuste” (best fit), “el peor ajuste (worst fit)”. Sin embargo, en particiones variables de tamaño fijo, no tiene sentido el uso del algoritmo del peor ajuste, ya que la fragmentación interna que se produce no puede ser aprovechada por otro proceso (sólo un proceso por partición). En la asignación contigua con particiones de tamaño variable puede aparecer la fragmentación externa, siendo necesario el uso de algoritmos de compactación. Mientras que en las de tamaño fijo aparece la fragmentación interna. 9. Cite tres ventajas ofrecidas por las bibliotecas de enlace dinámico cuando se las compara con las bibliotecas enlazadas estáticamente para formar un fichero ejecutable. Solución Cuando se emplea enlace dinámico los ficheros ejecutables ocuparán menos espacio, ya que no contienen el código de las bibliotecas. Los procesos pueden compartir memoria. Los programas no tendrán que ser recompilados ni reenlazados para tener acceso a las mejoras de implementación efectuadas en las bibliotecas.
Gestión de memoria: paginación y segmentación 10. Suponga que un proceso emite una dirección lógica igual a 2453 y que se utiliza la técnica de paginación, con páginas de 1024 palabras. a) Indique el par de valores (número de página, desplazamiento) que corresponde a dicha dirección. b) ¿Es posible que dicha dirección lógica se traduzca en la dirección física 9322?. Razónelo. Solución a) página =2 y desplazamiento = 405. b) No porque el desplazamiento de la dirección lógica 9322 es 106 ((9322 mod 1024) = 106 ) y debería ser 405 para que fuese posible. 11. En un sistema de gestión de memoria por paginación, ¿es recomendable que el tamaño de página sea potencia de 2?. Justifíquese la respuesta. Solución Si. Porque facilita la traducción de una dirección lógica a un número de páginas y desplazamiento. Los bits de mayor peso se ded ican al número de página, y los de menor peso al desplazamiento dentro de la página. De esta manera se ahorra una operación aritmética de división, que tiene un coste mayor. Se puede aprovechar totalmente el espacio de direcciones.
5
Sistemas Operativos I
Tema 3. Gestión de Memoria
12. Considere los 4 sistemas con gestión de memoria mediante paginación A, B, C y D siguientes:
Sistema
A
B
C
D
Tamaño de página (en palabras)
512
512
1024
1024
Tamaño de palabra (en bits)
16
32
16
32
Asumiendo que sólo hay una tabla de páginas para todo el sistema y que la dirección lógica ocupa una palabra (de 16 o 32 bits, según el caso), determine para cada sistema: a) El tamaño de la tabla de páginas (número de entradas). b) El tamaño de la memoria lógica (número de páginas). Solución Sistema Tamaño de página (en palabras) Tamaño de palabra (en bits) Tamaño de la tabla de páginas (en descriptores) Tamaño de memoria virtual en páginas del sistema
A 512
B 512
C 1024
D 1024
16
32
16
32
128 descriptores
8M descriptores
64 descriptores
4M descriptores
128 páginas
8M páginas
64 páginas
4M páginas
13. Indique en cuales de los siguientes mecanismos de gestión de memoria puede producirse fragmentación externa: particiones variables, paginación, segmentación paginación por demanda, segmentación por demanda. Solución Los mecanismos que pueden producir fragmentación externa son: particiones variables y segmentación. En ambos casos pueden quedar en memoria huecos no contiguos cuya suma de tamaños sea suficiente para ubicar un nuevo proceso. 14. Sea un sistema de gestión de memoria basado en la técnica de la paginación. Sean tres procedimientos que ocupan 700, 200 y 500 palabras respectivamente. Determine cuánta memoria se pierde por fragmentación interna cuando estos procedimientos se cargan en memoria si el tamaño de la página es de: 1200 palabras, 2500 palabras, 3600 palabras ó 4700 palabras. Solución Tamaño de página (en palabras) Tamaño de procedimiento ( en palabras )
1200
2500
3600
4700
700
700
700
700
6
Sistemas Operativos I
Fragmentación interna (en palabras)
Tema 3. Gestión de Memoria
500
1800
2900
4000
Tamaño de página (en palabras) Tamaño de procedimiento ( en palabras ) Fragmentación interna (en palabras)
1200
2500
3600
4700
200
200
200
200
1000
2300
3400
4500
Tamaño de página (en palabras) Tamaño de procedimiento ( en palabras ) Fragmentación interna (en palabras)
1200
2500
3600
4700
500
500
500
500
700
2000
3100
4200
15. Explique la motivación y las ventajas de la técnica de compartir páginas. Solución Cuando dos o más procesos ejecutan un mismo programa, la técnica de compartición de páginas permite no tener que duplicar el código en memoria con lo que se ahorra espacio en la misma. Piense en un sistema de tiempo compartido donde existen varios usuarios que se encuentran utilizando a la vez un mismo editor o compilador. 16. Los sistemas que usan tabla de páginas invertidas, pueden tener problemas para que los procesos compartan páginas. Indique porqué y como podría solucionarse. Solución En los sistemas de páginas invertidas la tabla de marcos asocia a cada entrada una página de un determinado proceso. Sin embargo para poder compartir páginas, un mismo marco se ha de encontrar asociado al menos a dos páginas de diferentes procesos. Por lo tanto una entrada de la tabla de páginas invertidas debería poder asociarse a más de una dirección lógica de distintos procesos. 17. Sea un sistema de gestión de memoria basado en la técnica segmentación paginada. Las direcciones lógicas tienen en total 28 bits, de los cuales 10 indican el número de página. Las páginas físicas o marcos son de 1024 octetos, mientras que las direcciones físicas son de 24 bits. Suponga que un segmento determinado contiene 4800 octetos. ¿Cuánta memoria se desperdicia en fragmentación interna y externa por causa de dicho segmento?. Justifique la respuesta. NOTA: considere únicamente la memoria asignada al segmento, sin tener en cuenta las tablas de segmentos ni de páginas. Solución Respuesta fragmentación interna 320 octetos.
7
Sistemas Operativos I
Tema 3. Gestión de Memoria
En los sistemas de segmentación paginada no hay fragmentación externa, sólo interna, ya que lo que se ubica en memoria son páginas del proceso que pertenecen a un segmento u otro, del mismo. La dirección lógica 4800 en este sistema pertenece al segmento 0, página 4, desplazamiento 704. 27
20 19 10 9 0 00000000 0000000100 1011000000 Nº de segmento
Nº de página
desplazamiento
Por tanto la fragmentación interna vendrá dada por 1024 – 704 = 320 octetos. 18. Compare la fragmentación interna provocada por un sistema de memoria virtual con segmentación paginada frente a uno que únicamente utiliza paginación. Solución (Consultar el material proporcionado para las clases de teoría y la bibliografía). 19. Enuncie los diferentes esquemas de gestión de memoria vistos en clase detallando, para cada uno, el hardware que requieren y su problemática de fragmentación. Solución (Consultar el material proporcionado para las clases de teoría). 20. Razone las ventajas de utilizar la técnica de compartir segmentos en la llamada al sistema exec() de Unix desde los puntos de vista de gestión de la memoria y de accesos a disco. Solución Gestión de la memoria: Resulta sencillo compartir el “segmento” de código con otros procesos que estén ejecutando el mismo programa que se ha especificado como argumento de “exec()”. Basta para ello, con tener en el PCB de cada proceso un atributo que indique el nombre del programa que está ejecutando. Los segmentos de datos y pila no deben compartirse (no hay que hacer nada especial para ello. El de datos inicializados hay que leerlo del fichero ejecutable). Accesos a disco: Podemos ahorrar algunos accesos si el programa ya está siendo ejecutado por otro proceso y el sistema guarda una copia de la cabecera del fichero ejecutable en memoria (para ese caso). Si el programa no está siendo ejecutado hay que efectuar, como mínimo, la lectura de la cabecera del ejecutable para obtener una descripción de su mapa de memoria. Normalmente no hay que leer nada más, pues en la actualidad se utilizan técnicas de memoria virtual y los “segmentos” de código, datos, pila y bibliotecas dinámicas se van asignando (y leyendo del disco) a medida que se necesitan. 21. Sea un sistema de memoria 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.
8
Sistemas Operativos I
Tema 3. Gestión de Memoria
Solución La solución es 64Kb. Será necesario conocer el número máximo de páginas que puede tener un segmento y multiplicarlo por el tamaño del descriptor de segmento. Para conocer el número máximo de páginas será necesario conocer el número de bits destinado a la página en la dirección lógica. Los espacios de direcciones lógicas son de 8Gb à Dir. lógicas de 33 bits. El número máximo de segmentos de un proceso 256 segmentos à 8 bits de la dirección para el número de segmento. El tamaño de página es de 2Kb à 11 bits de la dirección para el desplazamiento dentro de la página. El número de bits para el nº de página vendrá dado por: 33 – (8 + 11) = 33 – 19 = 14 Con lo que los campos y bits de la dirección lógica quedarían: 32
25 24
←----segmento-----→
11 10
0
←-desplazamiento-→
Se tienen un total de 14 bits para la página y se necesitarán 214 = 16384 descriptores de páginas por segmento. El tamaño de la tabla de páginas = 16384 * 4 bytes = 65536 = 64 KB 22. Suponga que un proceso emite las direcciones lógicas (2,18004) (1, 2735) (5, 12219) utilizando un modelo de gestión de memoria basado en segmentación paginada y que estas tres direcciones lógicas producen respectivamente las tres siguientes direcciones físicas: 1108, 1327 y 1211. a) ¿Cuál es el número máximo de bits que se están utilizando para el desplazamiento dentro de una página? b) ¿ Cuál es el número mínimo de bits que se están utilizando para indicar un número de página? c) ¿ Cuál es el número mínimo de bits que se están utilizando para indicar un número de marco? Solución a) La solución es 7 bits. Necesitamos conocer el tamaño de la página. Para ello el enunciado únicamente nos indica la correspondencia entre direcciones lógicas y físicas. Por lo tanto será necesario ir probando diferentes tamaños de páginas hasta encontrar uno donde los desplazamientos de la dirección física y la dirección lógica coincidan. Los tamaños de página han de ser potencia de dos y además ha de ser igual en todo el sistema. Comenzaremos probando por un tamaño de página de 1024 e iremos calculando el resto de dividir las respectivas direcciones por dicho tamaño. Si coinciden los desplazamientos será necesario probar con un tamaño mayor de página y si no coinciden probaremos con tamaños menores. Tamaño
9
Sistemas Operativos I
Tema 3. Gestión de Memoria
Pág. 1024 512 dirección lógica 18004 596 84 física 1108 84 84 Para esta dirección es válida un tamaño de página de 512 o menor. Ahora será necesario comprobarlo para el resto de direcciones. Tamaño Pág. 512 128 dirección lógica 2735 175 47 física 1327 303 47 Para esta dirección es válida un tamaño de página de 128 o menor. Ahora será necesario comprobarlo para la ultima dirección que nos proporciona el enunciado. Tamaño Pág. 128 dirección lógica 12219 59 física 1211 59 El tamaño máximo de página que puede estar utilizando este sistema es de 128 palabras, por tanto el número máximo de bits que se están utilizando para el desplazamiento es de 7 bits. b) La solución es 8 bits. Teniendo en cuenta el tamaño de página calculado en el apartado anterior se puede calcular el número de páginas que como mínimo contienen los segmentos de las direcciones lógicas referenciadas. Tamaño Pág. 128 dirección lógica (2,18004) 18004 / 128 = 140 nº de página 18004 mod 128 = 84 desplazamiento lógica (1,2735) 2735 / 128 = 21 nº de página 2735 mod 128 = 47 desplazamiento lógica (5,12219) 12219 / 128 = 95 nº de página 12219 mod 128 = 59 desplazamiento Necesitamos un número de bits m para indicar las páginas de manera que 2m ≥ 140, con lo que m=8. c) La solución es 4 bits. El tamaño de página y de marco ha de ser el mismo por tanto dividiendo la dirección física más alta por el tamaño de página calculado en el apartado a) obtendremos el número de marcos que como mínimo hay en el sistema. Tamaño marco 128 dirección Física 1108 1108/ 128 = 8 nº de marco 1108 mod 128 = 84 desplazamiento
10
Sistemas Operativos I
Física
Tema 3. Gestión de Memoria
1327
1327 / 128 = 10 nº de marco 1327 mod 128 = 47 desplazamiento Física 1211 1211 / 128 = 9 nº de marco 1211 mod 128 = 59 desplazamiento Necesitamos un número de bits f para referenciar de manera que 2f ≥ 9, con lo que f=4. 23. A continuación se presentan varias situaciones en las que uno o más procesos generan varias direcciones lógicas. Indique las direcciones físicas correspondientes según cada esquema de gestión de memoria. Si no es posible indique ERROR. a) Considere un esquema de particiones variables. Las direcciones lógicas generadas son: (B,530), (A,0,130), (C,1056). Situación de los procesos: Proceso
Registro base Registro límite
A
0
1360
B
4020
6300
C 1400 2600 b) Considere un esquema de paginación, con un tamaño de página de 256 palabras. Las direcciones lógicas generadas son 530, (0, 130), 1046. El contenido de la tabla de páginas es el siguiente: Tabla de páginas 0 4 1 5 2 3 3 6 c) Considere un esquema de segmentación paginada con un tamaño de página 128. Las direcciones lógicas generadas son 530, (0, 130), 1046. El contenido de la memoria física es el siguiente Nº de Marco (segmento, página) 0 (0, 3) 1 (1, 0) 2 (2, 0) 3 -4 (1, 2) 5 (0, 1) 6 (0, 2) 7 (1,3) Solución a) Direc. lógica Direc. física
(B,530) 4020+530= 4550
(A,0,130) Error no vale este formato
(C, 1046) 1400+1046=2246
11
Sistemas Operativos I
Tema 3. Gestión de Memoria
b) Direc. lógica Direc. física
530 3*256+18= 786
(0,130) 1046 ERROR no vale ERROR (*) este formato (*) Esta dirección corresponde a la página 4 del proceso y según la tabla de páginas del enunciado esa página no existe.
Direc. lógica Direc. física
530 ERROR, no vale este formato
c) (0,130) 5*128+2= 642
1046 ERROR, no vale este formato
24. Suponga que un proceso emite una dirección lógica (5, 18004) utilizando un modelo de gestión de memoria basado en segmentación paginada, con páginas de 4096 bytes. a) Indique qué direcciones físicas de entre las siguientes corresponden a dicha dirección lógica: 1620, 4004, 8004, 9812, 23720. b) Razone si sería mejor o peor utilizar un tamaño de página de 4000 bytes. c) Indique qué direcciones de entre las siguientes: 0, 18004, 5000, 8192, 23000. Podrían ser válidas como direcciones físicas base del segmento 5 referenciado en la dirección lógica (5, 18004). Solución La dirección (5, 18004) corresponde a una dirección lógica del segmento 5, página 4 y desplazamiento 1620. a) Respuesta 1620, 9812. Para que en este sistema una dirección física dada, pueda corresponderse con una lógica los desplazamiento de ambas han de coincidir. Los desplazamientos corresponden al resto obtenido como resultado de dividir la dirección por el tamaño de página (dirección mod 4096 = desplazamiento).
Desplazamiento
1620 1620 Dirección válida
4004 4004 Dirección No válida
Direcciones físicas 8004 9812 3908 1620 Dirección Dirección No válida válida
23720 3240 Dirección No válida
b) Peor, ya que se requeriría hardware adicional en la unidad de gestión de memoria para descomponer la dirección lógica en sus diferentes partes. c) Respuesta las direcciones físicas base de segmento podrían ser 0 y 8192. Nos encontramos en un sistema de segmentación paginada, es decir, siempre se mapean páginas en memoria. Esto implica que los segmentos siempre se comienzan a ubicar en direcciones múltiplo del tamaño de página. De las mencionadas en el enunciado las únicas que son múltiplo de 4096 son la 0 y la 8192.
12
Sistemas Operativos I
Tema 3. Gestión de Memoria
25. En un sistema con una memoria física de 64K bytes, se accede a la dirección física 27214 como respuesta a una dirección lógica emitida por el proceso P1 cuyo tamaño es de 15535 bytes. Deducir la(s) dirección(es) lógica emitida(s) por el proceso en cuestión para que haya ocurrido dicho acceso en los siguientes casos: a) Suponiendo un modelo de gestión de memoria paginada con páginas de 4K bytes. b) Suponiendo un modelo de gestión de memoria segmentado con segmentos de 16K bytes. Asuma que los segmentos comienzan siempre en una dirección múltiplo de 16 K bytes y que P1 está contenido en un único segmento. c) Suponiendo un modelo de gestión de memoria segmentada paginada con páginas de 4K bytes y segmentos de 16K bytes. Asuma que P1 está contenido en un único segmento. Solución a) Respuesta: 2638, 6734, 10830 y 14926. Serían todas aquellas direcciones lógicas que no excedan el tamaño del proceso y cuyo desplazamiento sea el mismo que en el de la dirección física. Dirección física 27214⇒ 27214 mod 4096 = 2638 ⇒ desplazamiento 2638 Direcciones lógicas posibles: Página 0 desplazamiento 2638 Página 1 desplazamiento 2638 Página 2 desplazamiento 2638 Página 3 desplazamiento 2638
0*4096 + 2638 = 2638 1*4096 + 2638 = 6734 2*4096 + 2638 = 10830 3*4096 + 2638 = 14926
b) Respuesta: (0,10830) Como las direcciones base de segmentos tienen que ser múltiplo de 16Kbytes, tendríamos como posibilidades que el segmento se ubique a partir de la dirección 0, 16384 (16K) ó 32768 (32K). Para que se haya accedido a la dirección física 27214 la dirección base del segmento debe ser 16384. Teniendo en cuenta que: base de segmento + desplazamiento = dirección física desplazamiento = dirección física – base de segmento desplazamiento = 27214 – 16384 =10830 La dirección lógica que se ha emito es: (0,10830). c) Respuesta: (0,2638), (0, 6734), (0,10830), (0, 14926). Se trata de un sistema segmentado paginado por tanto lo que se ubica en memoria son páginas, pudiendo haberse emitido una dirección lógica perteneciente a cualquier página del proceso P1 con un desplazamiento igual al de la dirección física que se accede. Los cálculos son los mismos que los presentados en la solución del apartado a) de este problema. Por tanto las posibles direcciones lógicas son: (0,2638), (0, 6734), (0,10830), (0, 14926). 26. Supongamos un sistema de gestión de memoria con segmentación paginada, con páginas de 1Kb. Un proceso emite las siguientes direcciones lógicas: (1, 2487) y (1, 635). A continuación se muestra la tabla de páginas del segmento 1. ¿Cuáles serán las direcciones físicas correspondientes?. Segmento-1: Tabla de páginas 13
Sistemas Operativos I
Tema 3. Gestión de Memoria
0
3
1
7
2
8
Solución Respuesta: dirección lógica (1, 2487) ⇒dirección física 8631, dirección lógica (1,635) ⇒ dirección física 3707. Dirección lógica Campos de la dirección lógica Dirección física (*) Segmento =1 (1, 2487) Página = 2 = 2487 div 1024 8631= 8*1024 + 439 Desplazamiento = 439 = 2487 mod 1024 Segmento =1 (1,635) Página = 0 = 635 div 1024 3707= 3*1024 + 635 Desplazamiento = 635 = 635 mod 1024 (*) Para calcular las direcciones físicas se ha de consultar los descriptores de páginas 2 y 0 de la tabla de páginas, cuyo contenido representa el marco donde se encuentra ubicada, dicha página. 27. En un esquema de segmentación paginada con páginas de 1Kb, ¿Es posible que la dirección lógica (2, 1333) se pudiera traducir a la dirección física 3654?. ¿Y a la dirección física 2357?. Razónelo. Solución Respuesta: No es posible 3654, si es posible 2357. Para que las direcciones físicas 3654 y 2357 sean accedidas como respuesta a la emisión de la dirección lógica (3, 1333) en este sistema, los desplazamiento dentro del marco y de la página han de coincidir. Dirección lógica Campos de la dirección lógica
(2, 1333)
Segmento =2 Página = 1 = 1333 div 1024 desplaz. = 309 = 1333 mod 1024
Dirección física (*) 3654 marco =3 =3654 div 1024 desplaz.= 582= 3654 mod 1024 2357 marco =2=2357 div 1024 desplaz.=309 = 2357 mod 1024
(*) Para que las direcciones físicas sean válidas sus desplazamiento deben ser de 309, es decir exactamente igual al de la lógica.
14
Sistemas Operativos I
Tema 3. Gestión de Memoria
28. Se tiene un sistema de memoria con paginación a dos niveles que permite agrupar las páginas en “directorios de páginas”. Cada directorio de páginas puede contener hasta 256 páginas. Los espacios de direcciones lógicas de este sistema son de 4Gbytes y el tamaño de página es de 4Kbytes. El espacio de direcciones físicas que puede tener hasta 1Gb. Describa la estructura de las direcciones lógicas y de las direcciones físicas de este sistema de memoria virtual. Solución El espacio de direcciones físicas es de 1Gbyte = 2 30 byte Se trata de un sistema con técnica de paginación, cuyo tamaño de página es de 4Kbytes= 212 bytes. Por tanto la dirección física 30 bits vendrá dada por: Dirección física 29 12 11 0 Marco Desplazamiento El espacio de direcciones lógicas es de 4Gbyte = 2 32 byte Se trata de un sistema con técnica de paginación a dos niveles, cuyo tamaño de página es de 4Kbytes= 212 bytes. Las páginas se encuentran agrupadas de 256 en 256 en directorios. Por tanto la dirección lógica de 32 bits vendrá dada por los siguientes campos: Dirección lógica 31 20 19 12 Directorio de página página
11 0 desplazamiento
29. Un proceso genera las siguientes direcciones lógicas: 612, 38 y (3,62). Indica las direcciones físicas correspondientes según cada esquema de gestión de memoria. Si no es posible indicar ERROR. a) Particiones Variables con Registro Base=150 y Registro Límite=220. b) Paginación, con un tamaño de página de 128 palabras. La tabla de páginas del proceso es la siguiente: Tabla de páginas 0 1 1 4 2 2 3 5 c) Segmentación. La tabla de segmentos del proceso es la siguiente: Base Límite 0 200 20 1 50 10 2 105 49 3 320 70 Solución Dirección Lógica 612
Dirección Lógica 38
Dirección Lógica (3, 62)
15
Sistemas Operativos I
a) Dirección física b) Dirección física (paginación) c) Dirección física (segmentación)
Tema 3. Gestión de Memoria
ERROR, excede el límite. ERROR, excede el nº de páginas del proceso. ERROR de formato de dirección
Base + 38 = 188 1*128 +38 =166
ERROR de formato de dirección ERROR de formato de dirección
ERROR de formato 320+62= 382 de dirección
Para el apartado b) es necesario conocer la página y desplazamiento de cada una de las direcciones físicas y en función de la página que obtengamos consultar la tabla de páginas. Dirección 612: Página = 612 div 128 = 4; Desplazamiento = 612 mod 128=102; Dirección 38: Página = 38 div 128 = 0; Desplazamiento = 38 mod 128=38; 30. Suponga que un proceso emite la dirección lógica (2,18004) utilizando un modelo de gestión de memoria basado en segmentación y el espacio de memoria física es de 64K bytes. a) ¿ A qué direcciones físicas de las siguientes (11084, 33270 y 22112) , sería posible traducir dicha dirección lógica ? b) ¿ Cual sería el resultado de traducir la dirección lógica (0,65536) en dicho sistema ? Justificar la respuesta. Solución a) Respuesta 33270 y 22112. Sería con aquellas direcciones físicas superiores a 18004, para que fuese posible un desplazamiento de ese tamaño. Por tanto sería 33270, con un contenido del registro base de segmento de 15266 (registro base segmento = 33270-18004=15266). Y la dirección 22112, con un contenido del registro base de segmento de 4108 (registro base segmento = 22112-18004=4108). b) Respuesta: daría error. La dirección lógica (0, 65536) se debe corresponder con una dirección física que tenga un desplazamiento de 65536. El tamaño de la memoria física es de 64K bytes = 65536 bytes, por tanto la dirección más alta de memoria es la 65535 y no puede haber un desplazamiento superior a ese tamaño. 31. En el caso de utilizar un modelo de memoria basado en particiones fijas (tamaño de las particiones 4K, 12K, 16K, 32K bytes respectivamente y ubicadas en orden de direcciones crecientes) ¿ a qué direcciones físicas de las siguientes (9701, 26085, 32768) se puede corresponder la dirección lógica 9701? Solución Respuesta: la dirección lógica 9701 se puede corresponder con la física 26085. Las particiones fijas se encontrarían ubicadas en memoria de la siguiente manera:
16
Sistemas Operativos I
Tema 3. Gestión de Memoria
Memoria Principal 0 4095
Partición de 4K
4096 16383
Partición de 12K
16384 22527
Partición de 16K
22528 65535
Partición de 32K
Si se ha referenciado la dirección lógica 9701, en un modelo de particiones fijas, esto implica que el proceso sólo ha podido ser ubicado en una partición cuyo tamaño sea superior a 9701 bytes. Las posibilidades serían: 1) Que estuviese ubicado en la partición 2, con lo que la dirección física vendría dada por⇒ 4096+9071= 13167. 2) Que estuviese ubicado en la partición 3, con lo que la dirección física vendría da por⇒ 16384+9071= 26085. Esta coincide con una de las opciones del enuciado. 3) Que estuviese ubicado en la partición 4, con lo que la dirección física vendría da por⇒ 22528+9071= 31599.
32. 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: a) Posibilidad de compartir memoria. b) Presentan fragmentación externa. Solución a) Los esquemas de gestión de memoria que permiten compartir la misma por varios procesos son: segmentación, paginación y segmentación paginada. b) Fragmentación externa presentan los esquemas de particiones de tamaño variable y segmentación.
33. 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). a) Dirección lógica: (0, 5120) 40960 b) Dirección lógica: (0, 17080) 33464
Direcciones físicas: P1: 6000, P2: 18000, P3: Direcciones físicas: P1: 4792, P2: 17080, P3:
Solución Por el formato de la dirección lógica únicamente pueden ser segmentación o segmentación paginada. a) Respuesta: segmentación.
17
Sistemas Operativos I
Tema 3. Gestión de Memoria
Todas las direcciones físicas de los procesos P1, P2 y P3 son superiores a 5120, por tanto se podría estar utilizando la técnica de segmentación, teniendo en cuenta que para cada proceso tiene el segmento ubicado a partir de una dirección física determinada. En el caso de utilizar un modelo de segmentación paginada, los desplazamientos de la página y de los marcos deberían coincidir para que fuese posible la traducción de direcciones. En este caso no coinciden por lo tanto no es posible esta técnica. Dirección lógica (0,5120) Segmentación Segmento=0 Desplaz. 5120 Segmentación Paginada Segmento=0 Página= 5120/4096=1 Desplaz.= 5120mod 4096= 1024
Direc. física P1
Direc. física P2
Direc. física P3
6000
18000
40960
Base segmento= 6000-5120=860 Marco= 6000/4096= 1 Desplaz.= 6000mod 4096= 1904
Base segmento= 1800-5120=12880 Marco= 18000/4096= 4 Desplaz.= 18000mod4096= 1616
Base segmento= 40960-5120= 35840 Marco= 40960/4096= 10 Desplaz.= 40960mod 4096= 0
b ) Respuesta: Se gmentación paginada. No es posible que se haya utilizado un modelos de segmentación, ya que las direcciones físicas de los procesos no son superiores a el desplazamiento de la dirección lógica 17080. En un modelo de segmentación paginada, los desplazamientos de la página y de los marcos deben coincidir como ocurre en este caso. Dirección lógica (0,17080) Segmentación Paginada Segmento=0 Página= 17080/4096=4 Desplaz.= 17080mod 4096= 696
Direc. física P1
Direc. física P2
Direc. física P3
4792 Marco= 4792/4096= 1 Desplaz.= 4792mod 4096= 696
17080 Marco= 17080/4096= 4 Desplaz.= 17080mod4096= 696
33464 Marco= 33464/4096= 8 Desplaz.= 33464mod 4096= 696
34. Se tiene un sistema de memoria con paginación a dos niveles en el que las páginas se agrupan en directorios de páginas, cada uno de los cuales contiene 256 páginas. Los espacios de direcciones lógicas son de 4Gbytes y el tamaño de página es de 4Kbytes. El espacio de direcciones físicas que puede tener hasta 1Gb. Este sistema está soportado por una MMU en el que los descriptores de página contienen un bit de validez, tres bits para protección y dos bits para implementar un algoritmo de aproximación al LRU (además de la información para la traducción de direcciones). Se tiene un determinado proceso con el siguiente espacio de direcciones lógicas disperso con las siguientes regiones (las direcciones son en hexadecimal): 00000000 – 10088000 : Código y datos del programa 40000000 – 52000000 : Biblioteca dinámica
18
Sistemas Operativos I
Tema 3. Gestión de Memoria
BF000000 – C0000000 : Pila ¿Cual será el tamaño de la tabla de páginas de dicho proceso, y cual sería el tamaño máximo que podría llegar a tener?. Solución Respuesta: El tamaño de la tabla de páginas de este proceso será aproximadamente de 420,4 Kbytes, mientras que el tamaño máximo permitido en este sistema es de 3Mbytes. El espacio de direcciones físicas es de 1Gbyte = 2 30 byte. Se trata de un sistema con técnica de paginación, cuyo tamaño de página es de 4Kbytes= 212 bytes. Por tanto la dirección física 30 bits vendrá dada por:
29 Marco
Dirección física 12 11 Desplazamiento
0
El espacio de direcciones lógicas es de 4Gbyte = 2 32 byte. Se trata de un sistema con técnica de paginación a dos niveles, cuyo tamaño de página es de 4Kbytes= 212 bytes. Las páginas se encuentran agrupadas de 256 en 256 en directorios. Por tanto la dirección lógica de 32 bits vendrá dada por los siguientes campos: Dirección lógica 31 20 19 12 Directorio de página página
11 0 desplazamiento
Para calcular el tamaño de la tabla de páginas necesitaremos conocer el número de páginas que ocupa el proceso y el tamaño de sus descriptores de páginas. Descriptor de página = 24 bits = 3 bytes ←-----------18 bits----------→ ←--------------------6 bits-----------------→ Número de Marco 1bit val.+3 bits protección+2 bits LRU Número de páginas que ocupa el proceso: Region código: 0x10088000 / 4Kbytes = 0x10088 páginas = 65672 pags Región biblioteca dinámica: (52000-40000)= 0x12000 pags = 73728 pags Region pila: (C0000–BF000)= 0x1000 pags = 4096 pags Total descriptores = 0x69198 = 65672+73728+4096=143.496 descriptores Tamaño descriptor = 18 + 1 + 3 + 2 = 24 bits = 3 bytes Tamaño tabla de páginas para el proceso =:143.496 x 3 = 430.488 bytes = 420.4 Kb aproximadamente. El tamaño máximo de la tabla de páginas que podrá tener un proceso en este sistema, vendrá delimitado por el espacio máximo de direccionamiento lógico. Por tanto tendremos que : Tamaño máximo del proceso = 4 Gb = 22 230 = 232 / 212 pags = 1 Mpags Tamaño máximo de la tabla de páginas = 1M x 3 bytes = 3 Mb
19
Sistemas Operativos I
Tema 3. Gestión de Memoria
35. Describa cuál es la forma de detectar una dirección no válida en los siguientes métodos de gestión de memoria. a) Paginación. b) Segmentación. c) Segmentación paginada. Solución a) En paginación la forma de detectar una dirección no válida es mediante la comprobación en su tabla de páginas de la no existencia de la página a la que pertenece dicha dirección, para el proceso que la ha emitido. b) En segmentación la forma de detectar una dirección no válida es mediante la comprobación de que el desplazamiento de la dirección lógica emitida ha de ser menor que el tamaño del segmento correspondiente, el cual se encuentra almacenado en su tabla de segmentos. c) En segmentación paginada la forma de detectar una dirección no válida es la misma que se realiza en segmentación (apartado b).
Gestión de memoria: Memoria Virtual. 36. ¿Existe alguna incompatibilidad entre los algoritmos de asignación (reparto) de marcos entre procesos (asiganción equitativa, proporcional, prioritaria) y el ámbito de reemplazo de páginas (local o global)?. Justifíque la respuesta. Solución El algoritmo de asignación de marcos establece la política de reparto de la memoria física a los procesos. Es decir, el número de marcos que debe tener asignado cada proceso. Si el algoritmo de reemplazo utilizado es global, el número de marcos asignado a cada proceso se puede modificar dinámicamente, por lo que el algoritmo de asignación podría no respetarse, o bien sólo tendría sentido inicialmente. Por el contrario, si el ámbito del algoritmo de reemplazo es local (sólo afecta a los marcos asignados al proceso), no hay ninguna incompatibilidad, ya que en todo momento se respeta la asignac ión de memoria. 37. Sea un sistema de gestión de memoria virtual con paginación por demanda, con un tamaño de memoria principal de 5000 palabras y un tamaño de página de 1000 palabras. En un momento determinado se tienen 3 procesos P1, P2 y P3 en el sistema que generan la siguiente secuencia de direcciones lógicas (se han representado pares compuestos por proceso y la dirección lógica): (P1,1023) (P2,0224) (P1,0783) (P3,3848) (P3,1089) (P3,0098) (P2,2345) (P1,0787) (P1,1654) (P3,2899) (P3,3008) (P3,1111). Realice un diagrama de la situación de cada página en memoria física en los siguientes casos: a) Utilizando un algoritmo de reemplazo global según la política óptima. b) Utilizando un algoritmo de reemplazo local según la política óptima. Solución La memoria física estará formada por 5 marcos que inicialmente supondremos vacíos.
20
Sistemas Operativos I
Tema 3. Gestión de Memoria
El algoritmo óptimo elige como página a reemplazar aquella que tardará más tiempo en ser referenciada. Mientras no se encuentren ocupados los marcos de memoria no será necesario reemplazar, por tanto, si indicamos con t el instante de tiempo, tendremos que las 5 primeras a páginas ocuparan los 5 marcos.
Dir. Nº marco 0 1 2 3 4
t=0 (P1,1023) P1, Pág. 1 P1, Pág. 1 -----
t=1 (P2,0224) P2, Pág. 0 P1, Pág. 1 P2, Pág. 0 ----
t=3 (P1,0783) P1, Pág. 0 P1, Pág. 1 P2, Pág. 0 P1, Pág. 0 ---
t=4 (P3,3848) P3, Pág. 3 P1, Pág. 1 P2, Pág. 0 P1, Pág. 0 P3, Pág. 3 --
t=5 (P3,1089) P3, Pág. 1 P1, Pág. 1 P2, Pág. 0 (*a) P1, Pág. 0 P3, Pág. 3 P3, Pág. 1 (*b)
A partir de este instante será necesario hacer reemplazos y seleccionar victima. Los * representan las victimas seleccionadas en el próximo instante de tiempo. Así (*a) es para la solución del apartado a) y (*b) para la solución del apartado b). a) Algoritmo de reemplazo global. t=6 t=7 t=8 t=9 (P3,0098) (P2,2345) (P1,0788) (P1,1654) P3, Pág. 0 P2, Pág. 2 P1, Pág. 0 P1, Pág. 1 P1, Pág. 1 P1, Pág. 1 P1, Pág. 1 P1, Pág. 1* P3, Pág. 0 * P2, Pág. 2 P2, Pág. 2 P2, Pág. 2 P1, Pág. 0 P1, Pág. 0 P1, Pág. 0 P1, Pág. 0 P3, Pág. 3 P3, Pág. 3 P3, Pág. 3 P3, Pág. 3 P3, Pág. 1 P3, Pág. 1 P3, Pág. 1 P3, Pág. 1
t=10 (P3,2899) P3, Pág. 2 P3, Pág. 2 P2, Pág. 2 P1, Pág. 0 P3, Pág. 3 P3, Pág. 1
t=11 (P3,3008) P3, Pág. 3 P3, Pág. 2 P2, Pág. 2 P1, Pág. 0 P3, Pág. 3 P3, Pág. 1
t=12 (P3,1111) P3, Pág. 1 P3, Pág. 2 P2, Pág. 2 P1, Pág. 0 P3, Pág. 3 P3, Pág. 1
Los * representan las victimas seleccionadas en el próximo instante de tiempo. En los instantes t=8, t=9,t=11 y t=12 no es necesario elegir victima ya que la página referenciada se encuentra en memoria. b) Algoritmo de reemplazo local. Se selecciona la victima entre marcos ocupados por el mismo proceso. t=6 t=7 t=8 t=9 t=10 t=11 t=12 (P3,0098) (P2,2345) (P1,0788) (P1,1654) (P3,2899) (P3,3008) (P3,1111) P3, Pág. 0 P2, Pág. 2 P1, Pág. 0 P1, Pág. 1 P3, Pág. 2 P3, Pág. 3 P3, Pág. 1 P1, Pág. 1 P1, Pág. 1 P1, Pág. 1 P1, Pág. 1 P1, Pág. 1 P3, Pág. 2 P3, Pág. 2 P2, Pág. 0 * P2, Pág. 2 P2, Pág. 2 P2, Pág. 2 P2, Pág. 2 P2, Pág. 2 P2, Pág. 2 P1, Pág. 0 P1, Pág. 0 P1, Pág. 0 P1, Pág. 0 P1, Pág. 0 P1, Pág. 0 P1, Pág. 0 P3, Pág. 3 P3, Pág. 3 P3, Pág. 3 P3, Pág. 3 P3, Pág. 3 P3, Pág. 3 P3, Pág. 3 P3, Pág. 0 P3, Pág. 1 P3, Pág. 1 P3, Pág. 1* P3, Pág. 2 P3, Pág. 2* P3, Pág. 1
21
Sistemas Operativos I
Tema 3. Gestión de Memoria
38. Un determinado sistema operativo gestiona la memoria virtual mediante paginación por demanda. La dirección lógica tiene 24 bits, de los cuales 14 indican el número de página. La memoria física tiene 5 marcos. El algoritmo de reemplazo de páginas es el LRU LOCAL, y se ha implementado mediante un contador asociado a cada página que indica el instante de tiempo en que se referenció la página por última vez. Las tablas de páginas en el instante 16 son:
0 1 2 3
Tabla de páginas proceso A Marco Bit de Contador validez 1 v 10 2 v 15 i 6 i 5
0 1 2 3 4
Tabla de páginas proceso B Marco Bit de Contador validez 0 v 7 i 2 i 3 3 v 4 4 v 11
Indique las direcciones físicas generadas para la siguiente secuencia de direcciones lógicas: (A, 2900) (B, 1200) (A, 1850) (A, 3072) (B, 527) (B, 2987) (A, 27) (A, 2000) (B, 4800) (B, 1500). Solución Para poder traducir las direcciones lógicas a físicas hay que conocer el marco donde se ha ubicado la página correspondiente. En este caso el tamaño de página es de 1024 palabras, ya que la dirección lógica es de 24 bits de los cuales 14 son para indicar la página ⇒ quedan 10 bits para el desplazamiento dentro de la página. Consultando la tabla de páginas podemos componer el estado inicial de la memoria. Por comodidad al lado de cada marco se representará el contado LRU. Por lo tanto en la memoria principal tendremos: Nº Inicial Cont. marco t=15 LRU 0 B,0 7 1 A,0 10 2 A,1 15 3 B,3 4 4 B,4 11
0 1 2 3 4
B,0 t=20 B,0 A,3 A,1 B,1 B,4
Cont. B,2 LRU t=21 20 B,0 19 A,3 18 A,1 17 B,1 11 B,2
A,2 t=16 B,0 A,2 A,1 B,3 B,4
Cont. LRU 7 16 15 4 11
B,1 t=17 B,0 A,2 A,1 B,1 B,4
Cont. LRU 7 16 15 17 11
A,1 t=18 B,0 A,2 A,1 B,1 B,4
Cont. LRU 7 16 18 17 11
A,3 t=19 B,0 A,3 A,1 B,1 B,4
Cont. LRU 7 19 18 17 11
Cont. A,0 Cont. A,1 Cont. B,4 Cont. B,1 Cont. LRU t=22 LRU t=23 LRU t=24 LRU t=25 LRU 20 B,0 20 B,0 20 B,0 20 B,1 25 19 A,3 19 A,1 23 A,1 23 A,1 23 18 A,0 22 A,0 22 A,0 22 A,0 22 17 B,1 17 B,1 17 B,4 24 B,4 24 21 B,2 21 B,2 21 B,2 21 B,2 21
22
Sistemas Operativos I
Tema 3. Gestión de Memoria
Dirección Lógica = U (A, 2900) (B,1200) (A,1850) (A, 3072) (B,527) (B,2987) (A,27) (A,2000) (B,4800) (B,1500)
Página = U div 1024
Desplazamiento= U mod 1024
2 1 1 3 0 2 0 1 4 1
852 176 826 0 527 939 27 976 704 476
Dirección física= Marco * 1024 + Desplazamiento 1*1024+852=1876 3*1024+176=3248 2*1024+826=2874 1*1024+0=1024 0*1024+527=527 4*1024+939=5035 2*1024+27=2075 1*1024+976=2000 3*1024+704=3776 0*1024+476=476
39. Un sistema de memoria virtual con paginación por demanda, tiene un tamaño de página de 512 palabras, una memoria virtual de 16 páginas numeradas del 0 al 15 una memoria física de 4 marcos (frames) numerados de 0 a 3. El contenido actual de la memoria es: Nº marco 0 Pág. 4 del proceso P 1 Pág. 9 del proceso P 2 Pág. 5 del proceso P 3 Pág. 1 del proceso P a) Mostrar el contenido de la tabla de páginas . b) Suponiendo un algoritmo de reemplazo de páginas con estrategia óptima, mostrar el contenido de la tabla de páginas, tras generar cada una de las siguientes direcciones lógicas: 1112, 1645, 2049, 622, 2776 . c) Direcciones físicas equivalentes a las lógicas 1628, 851, 2700 y 2432. d) ¿Qué pasa cuando se referencia la dirección lógica 1330?. e) Si la página cargada en el marco 3 es un procedimiento que otro proceso Q quiere compartir, ¿dónde debe aparecer en la tabla de páginas de Q? Solución a) Mirando el contenido de la memoria principal y teniendo en cuenta que la tabla de páginas para el proceso tendrá un descriptor por cada página obtenemos que:
0 1 2 3 4 5 6 7
Tabla de páginas Marco Bit de validez 0 3 1 0 0 0 1 2 1 0 0
8 9 10 11 12 13 14 15
Tabla de páginas Marco Bit de validez 0 1 1 0 0 0 0 0 0
23
Sistemas Operativos I
Tema 3. Gestión de Memoria
b) En primer lugar será necesario conocer a que página pertenece cada una de las direcciones lógicas, para ello realizaremos la operación: Página = dirección_lógica div tamaño_página= dirección_lógica div 512 Desplazamiento = dirección_lógica mod tamaño_página Dirección lógica 1112 1645 2049 622 2776 Página 2 3 4 1 5 desplazamiento 88 109 1 110 216 A continuación representaremos la memoria tras estas referencias, aplicando el algoritmo óptimo para reemplazo de páginas. marco
Referencia Referencia Referencia Referencia Referencia inicial Pág. 2 * Pág. 3 * Pág. 4 Pág. 1 Pág. 5 0 Pág. 4 Pág. 4 Pág. 4 Pág. 4 Pág. 4 Pág. 4 1 Pág. 9 Pág. 2 Pág. 3 Pág. 3 Pág. 3 Pág. 3 2 Pág. 5 Pág. 5 Pág. 5 Pág. 5 Pág. 5 Pág. 5 3 Pág. 1 Pág. 1 Pág. 1 Pág. 1 Pág. 1 Pág. 1 El * indica que hay fallo de página, por lo tanto hay que seleccionar una victima. Se elige como victima aquella que se tarda más tiempo en volver a referenciar o que ya no se vuelve a referenciar. Cuando se hace referencia a la página 2, se elige como victima la página 9, que ya no se va a volver a referenciar. Cuando se referencia a la página 3 se elige como victima a la 2 que ya no se vuelve a referenciar. En este instante el contenido de la tabla de páginas será el siguiente:
0 1 2 3 4 5 6 7
Tabla de páginas Marco Bit de validez 0 3 1 0 1 1 0 1 2 1 0 0
8 9 10 11 12 13 14 15
Tabla de páginas Marco Bit de validez 0 1 0 0 0 0 0 0 0
c) La traducción de direcciones se realiza consultando la tabla de páginas: Dir. lógica
Página Desplazamiento Dir. Física Marco*512 + desplazamiento 1628 3 92 1*512 + 92 = 604 851 1 339 3*512+339= 1875 2700 5 140 2*512+140= 1164 2432 4 384 0*512+384= 384 d) Si a continuación se referencia la dirección lógica 1330 tendremos un fallo de página, ya que esta dirección lógica pertenece a la página 2, cuyo bit de validez en la tabla de páginas está a invalido. 24
Sistemas Operativos I
Tema 3. Gestión de Memoria
e) Depende del tipo de direccionamiento que se este empleando en el código de la página a compartir. Si se trata de direccionamiento relativo, esta procedimiento podría estar ubicado en cualquier página del proceso Q, y por tanto el descriptor correspondiente debería contener el marco 3. Si se trata de de direccionamiento absoluto, debería aparecer en la misma entrada donde aparece para el proceso P, ya que en caso contrario el código presente en ella podría no funcionar bien (Si hay una instrucción de salto que no es relativa al valor del contador de programa, y la posición destino de ese salto se encuentra en la misma página, se está obligando a que ese marco esté asociado siempre a la misma página para todos los procesos que lo utilicen). Por tanto, ha de aparecer asociado a la página 1 del proceso Q. 40. En un determinado sistema con memoria virtual con paginación por demanda, una dirección lógica consta de 16 bits, 10 de offset (desplazamiento) y 6 para el número de página. Se dispone de 4 marcos. Dada la siguiente secuencia de direcciones lógicas: 512
1102 2147
3245 5115 5200
4090
4207 1070 6200
7168 8200 7200 8300 9300 7410 8525 9700 5300 4387 1007 Se pide: a) Dar la secuencia de referencias a páginas. b) Contar el número de fallos de página suponiendo los algoritmos de reemplazo FIFO, LRU y ÓPTIMO. Solución Tamaño de página es de 1024 bytes = 2 10 a) La secuencia de referencia de páginas representa la secuencia de páginas que han sido accedidas durante cierto periodo de tiempo. Página = dirección_lógica div 1024 Secuencia de referencia páginas = 0, 1, 2, 3, 4, 5, 3, 4, 1, 6, 7, 8, 7, 8, 9, 7, 8, 9, 5, 4, 0. b) Se supone inicialmente la memoria vacía, con lo que habrá 4 fallos de página hasta llenarla. Algoritmo de reemplazo FIFO. Se elige como victima la página que mas tiempo lleva en memoria. marco Pág. Pág. Pág. Pág. Pág. Pág. Pág. Pág. Pág. 0,1,2,3 4 5 3 4 1 6 7 8 0 Pág.0 Pág.4 Pág.4 Pág.4 Pág.4 Pág.4 Pág.4 Pág.7 Pág.7 1 Pág.1 Pág.1 Pág.5 Pág.5 Pág.5 Pág.5 Pág.5 Pág.5 Pág.8 2 Pág.2 Pág.2 Pág.2 Pág.2 Pág.2 Pág.1 Pág.1 Pág.1 Pág.1 3 Pág.3 Pág.3 Pág.3 Pág.3 Pág.3 Pág.3 Pág.6 Pág.6 Pág.6 marco 0 1 2 3
Pág. 7 Pág.7 Pág.8 Pág.1 Pág.6
Pág. 8 Pág.7 Pág.8 Pág.1 Pág.6
Pág. 9 Pág.7 Pág.8 Pág.9 Pág.6
Pág. 7 Pág.7 Pág.8 Pág.9 Pág.6
Pág. 8 Pág.7 Pág.8 Pág.9 Pág.6
Pág. 9 Pág.7 Pág.8 Pág.9 Pág.6
Pág. 5 Pág.7 Pág.8 Pág.9 Pág.5
Pág. 4 Pág.4 Pág.8 Pág.9 Pág.5
Pág. 0 Pág.7 Pág.0 Pág.9 Pág.5
25
Sistemas Operativos I
Tema 3. Gestión de Memoria
Los fallos de página se han resaltado en negrita. Total de fallos de página = 14. Algoritmo de reemplazo LRU. Se selecciona como victima la página de memoria que hace más tiempo que no se ha referenciado. marco Pág. Pág. Pág. Pág. Pág. Pág. Pág. Pág. Pág. 0,1,2,3 4 5 3 4 1 6 7 8 0 Pág.0 Pág.4 Pág.4 Pág.4 Pág.4 Pág.4 Pág.4 Pág.4 Pág.8 1 Pág.1 Pág.1 Pág.5 Pág.5 Pág.5 Pág.5 Pág.6 Pág.6 Pág.6 2 Pág.2 Pág.2 Pág.2 Pág.2 Pág.2 Pág.1 Pág.1 Pág.1 Pág.1 3 Pág.3 Pág.3 Pág.3 Pág.3 Pág.3 Pág.3 Pág.3 Pág.7 Pág.7 marco
Pág. Pág. Pág. Pág. Pág. Pág. Pág. Pág. Pág. 7 8 9 7 8 9 5 4 0 0 Pág.8 Pág.8 Pág.8 Pág.8 Pág.8 Pág.8 Pág.8 Pág.8 Pág.0 1 Pág.6 Pág.6 Pág.6 Pág.6 Pág.6 Pág.6 Pág.5 Pág.5 Pág.5 2 Pág.1 Pág.1 Pág.9 Pág.9 Pág.9 Pág.9 Pág.9 Pág.9 Pág.9 3 Pág.7 Pág.7 Pág.7 Pág.7 Pág.7 Pág.7 Pág.7 Pág.4 Pág.4 Los fallos de página se han resaltado en negrita. Total de fallos de página = 14. Algoritmo de reemplazo ÓPTIMO. Se selecciona como victima aquella página de memoria que más tiempo se va a tardar en referenciar o que nunca se va a referenciar. marco Pág. Pág. Pág. Pág. Pág. Pág. Pág. Pág. Pág. 0,1,2,3 4 5 3 4 1 6 7 8 0 Pág.0 Pág.0 Pág.5 Pág.5 Pág.5 Pág.5 Pág.5 Pág.5 Pág.5 1 Pág.1 Pág.1 Pág.1 Pág.1 Pág.1 Pág.1 Pág.6 Pág.6 Pág.8 2 Pág.2 Pág.4 Pág.4 Pág.4 Pág.4 Pág.4 Pág.4 Pág.4 Pág.4 3 Pág.3 Pág.3 Pág.3 Pág.3 Pág.3 Pág.3 Pág.3 Pág.7 Pág.7 marco
Pág. Pág. Pág. Pág. Pág. Pág. Pág. Pág. Pág. 7 8 9 7 8 9 5 4 0 0 Pág.5 Pág.5 Pág.5 Pág.5 Pág.5 Pág.5 Pág.5 Pág.5 Pág.0 1 Pág.8 Pág.8 Pág.8 Pág.8 Pág.8 Pág.8 Pág.8 Pág.8 Pág.8 2 Pág.4 Pág.4 Pág.9 Pág.9 Pág.9 Pág.9 Pág.9 Pág.9 Pág.9 3 Pág.7 Pág.7 Pág.7 Pág.7 Pág.7 Pág.7 Pág.7 Pág.4 Pág.7 Los fallos de página se han resaltado en negrita. Total de fallos de página = 12. 41. Supongamos un sistema de gestión de memoria virtual basado en segmentación paginada, con un tamaño de página de 1000 palabras y una memoria principal de 3000 palabras. Las tablas de segmentos y las de página asociadas a cada segmento están ubicadas en registros (no ocupan espacio en memoria principal). Cada proceso consta de un espacio de direcciones lógicas dividido en 3 segmentos, uno para los datos (seg 0), otro para el código (seg 1) y el último para la pila (seg 2). En el sistema tenemos actualmente un solo proceso de las siguientes dimensiones (en palabras):
26
Sistemas Operativos I
Tema 3. Gestión de Memoria
segmento 0 1 2
longitud 1300 2100 1000
Suponiendo que ha sido generada la siguiente secuencia de direcciones lógicas durante la ejecución del proceso en cuestión: (0, 0300) (0, 1200) (1, 0058) (0, 1112) (1, 1048) (2, 0354) (0, 1035) (0, 0036) (1, 2050) (1, 0128) Calcular la correspondiente secuencia de direcciones físicas que se generará si se utiliza un algoritmo de reemplazo de páginas LRU. Solución Tamaño de página de 1000 palabras (0, 0300) (0, 1200) (1, 0058) (0,1112) (1, 1048) (2, 0354) (0, 1035) Seg. 0 0 1 0 1 2 0 Pag. 0 1 0 1 1 0 1 Desp. 300 200 58 112 48 354 35 (0, 0036) (1, 2050 (1, 0128) Seg. 0 1 1 Pag. 0 2 0 Desp. 36 50 128 Supongamos que la memoria principal se encuentra inicialmente vacía, con lo que insertaremos en ella 3 páginas. Los fallos de página se han resaltado en negrita Seg, pag Seg,pag Seg,pag Seg,pag Seg,pag Seg,pag Seg,pag Seg,pag marco (0,0), 0,1 1,1 2,0 0,1 0,0 1,2 1,0 (0,1) (1,0) 0 (0,0) (0,0) (1,1) (1,1) (1,1) (0,0) (0,0) (0,0) 1 (0,1) (0,1) (0,1) (0,1) (0,1) (0,1) (0,1) (1,0) 2 (1,0) (1,0) (1,0) (2,0) (2,0) (2,0) (1,2) (1,2) 42. En un sistema paginado con 4 marcos en memoria, se hacen las siguientes referencias a páginas: {c, a, d, b, e, b, a, b, c, d}. Suponiendo que tenemos inicialmente en memoria las páginas {a, b, c, d} (en ese orden), analícese el contenido en memoria para cada una de las siguientes políticas de reemplazo: a) ÓPTIMO. b) FIFO. c) LRU. Solución Las referencias a página son: {c, a, d, b, e, b, a, b, c, d}. a) Algoritmo de reemplazo óptimo.
27
Sistemas Operativos I
Tema 3. Gestión de Memoria
marco inicial Ref. c Ref. a Ref. d Ref. b Ref. e Ref. a Ref. b Ref. c Ref. d 0 a a a a a a a a a d 1 b b b b b b b b b b 2 c c c c c c c c c c 3 d d d d d e e e e e Los fallos de página se han resaltado en negrita b) Algoritmo de reemplazo FIFO. marco inicial Ref. c Ref. a Ref. d Ref. b Ref. e Ref. a Ref. b Ref. c Ref. d 0 a a a a a e e e e d 1 b b b b b b a a a a 2 c c c c c c c b b b 3 d d d d d d d d c c Los fallos de página se han resaltado en negrita c) Algoritmo de reemplazo LRU. marco inicial Ref. c Ref. a Ref. d Ref. b Ref. e Ref. a Ref. b Ref. c Ref. d 0 a a a a a a a a a a 1 b b b b b b b b b b 2 c c c c c e e e e d 3 d d d d d d d d c c Los fallos de página se han resaltado en negrita 43. Sea un sistema de memoria virtual por paginación por demanda, en el que: • Una dirección lógica consta de 12 bits, de los cuales 3 son para el número de página. • Una dirección física contiene 11 bits. • Existen dos procesos (A y B), y toda la memoria física se reparte entre estos dos procesos por igual. • Se utiliza un algoritmo de reemplazo local de páginas LRU. Dar, para la siguiente secuencia de direcciones lógicas, el correspondiente mapa de memoria: (A, 1035) (B, 312) (A, 530) (B, 780) (A, 600) (A, 2000) (B, 1400) (B, 927) (A, 1030) (A, 1720) Nota: el par (a,x) indica (proceso, dir. lógica en decimal) Solución Dirección lógica de 12 bits = 3 bits número de pág. + 9 bits de desplazamiento. Tamaño de página de 512 palabras. La dirección física es de 11 bits = 2 bits número de marco + 9 bits de desplazamiento. Los marcos se reparten por igual ⇒ 2 marcos para el proceso A y 2 marcos para el proceso B.
28
Sistemas Operativos I
Tema 3. Gestión de Memoria
A, 1035 B, 312 marco A, pág. 2 B, pág. 0 0 A,2 A,2 1 B,0 2 3
A, 530 A, pág. 1 A,2 B,0 A,1
B, 927 A,1030 B, pág. 1 A, pág. 1 A,3 A,3 B,2 B,2 A,1 A,1 B,1 B,1
A, 1720 A, pág. 3 A,3 B,2 A,1 B,1
marco 0 1 2 3
B,780 B, pág. 1 A,2 B,0 A,1 B,1
A, 600 A, pág. 1 A,2 B,0 A,1 B,1
A, 2000 A, pág. 3 A,3 B,0 A,1 B,1
B, 1400 B, pág.2 A,3 B,2 A,1 B,1
Los fallos de página se han resaltado en negrita 44. Un sistema de gestión de memoria por segmentación paginada posee las siguientes características: • Una dirección lógica se compone de 12 bits. • Una dirección física se compone de 10 bits. • El máximo núnmero de segmentos en un programa es 4 (segmentos 0 a 3). • Hay 4 marcos en memoria. Se pide: a) ¿Cuál es el máximo número posible de páginas en un segmento? b) Rellena las tablas de segmentos para los procesos A y B: PROCESO A PROCESO B TABLA DE SEGMENTOS TABLA DE SEGMENTOS Seg 0 0 tamaño Base tabla páginas Seg 0 0 tamaño Base tabla páginas 419 420
Seg 1
1299
829 Seg 2 1019
Seg 1
300
c) Suponiendo el formato (proceso, segmento, desplazamiento dentro del segmento), se genera la siguiente secuencia de referencias a memoria: (A, 1, 27) (B, 2, 48) (A, 0, 411) (B, 2, 132) (B, 1, 400) (A, 1,428) (B, 0, 25) (B, 2, 177) (A, 1, 186) (B, 1, 280). La memoria está inicialmente vacía, y la política de reemplazo es FIFO con ámbito local. Determine a partir de la situación final cuál es la dirección física correspondiente a cada una de las siguientes direcciones lógicas: (A, 0, 350) (B, 2, 112) (A, 1, 422) (B, 0, 277) (A, 1, 604). NOTAS: • si la dirección es errónea, escriba ERROR. • si está en disco, escriba DISCO. • suponga que la memoria se llena de menor a mayor número de marco.
29
Sistemas Operativos I
Tema 3. Gestión de Memoria
Solución a) La respuesta es 4 páginas. La dirección física está formada por 10 bits = 2 bits número marco + 8 bits desplazamiento. La dirección lógica está formada por 12 bits = 2 para el segmento + 2 bits para el número de página + 8 bits para el desplazamiento de página. Con dos bits para el número de página, el número máximo de páginas de un segmento es 4. b) El tamaño de página es de 256 palabras. Suponiendo una única tabla de páginas para cada proceso, la tabla de segmentos quedará:
Seg 0
0 419 420
TABLA tamaño 420 880
PROCESO A DE SEGMENTOS Base tabla páginas Base + 0 Base + 2
Seg 0
0 300
Seg 1
Seg 1
829 1299
Seg 2
PROCESO B TABLA DE SEGMENTOS tamaño Base tabla páginas 300 Base + 0 530 Base + 2 190 Base + 5
1019
c) El algoritmo de reemplazo es FIFO local. A, 1, 27 B, 2, 48 marco A, 1, pág. 0 B, 2, pág. 0 0 A, 1, pág. 0 A, 1, pág. 0 1 B, 2, pág. 0 2 3
A, 0, 411 A, 0, pág. 1 A, 1, pág. 0 B, 2, pág. 0 A, 0, pág. 1
B, 2, 132 B, 2, pág. 0 A, 1, pág. 0 B, 2, pág. 0 A, 0, pág. 1
B, 1, 400 B, 1, pág. 1 A, 1, pág. 0 B, 2, pág. 0 A, 0, pág. 1 B, 1, pág. 1
B, 0, 25 B, 2, 177 A, 1, 186 B, 1, 280 marco B, 0, pág. 0 B, 2, pág. 0 A, 1, pág. 0 B, 1, pág. 1 0 A, 1, pág. 0 A, 1, pág. 0 A, 1, pág. 0 A, 1, pág. 0 1 B, 0, pág. 0 B, 0, pág. 0 B, 0, pág. 0 B, 1, pág. 1 2 A, 0, pág. 1 A, 0, pág. 1 A, 0, pág. 1 A, 0, pág. 1 3 B, 1, pág. 1 B, 2, pág. 0 B, 2, pág. 0 B, 2, pág. 0 Los fallos de página se han resaltado en negrita La traducción de las direcciones lógicas a físicas será la siguiente: Dirección A, 0, 350 B, 2, 112 A, 1, 422 B, 0, 277 lógica pág.1,des. 94 pág.0,des. 112 pág.1,des. 166 pág.1,des. 21 Dirección 2*256+94= 3*256+112= DISCO DISCO física 606 880
B, 1, 428 B, 1, pág. 1 A, 1, pág. 0 B, 2, pág. 0 A, 0, pág. 1 B, 1, pág. 1
A, 1, 604 pág.2,des. 92 DISCO
45. Sea un sistema con memoria virtual por segmentación paginada, con algoritmo de reemplazo óptimo local. La memoria principal está organizada en 4 marcos de 512 palabras cada uno. En un instante Ti únicamente tenemos a los procesos A y B en el sistema, y el S.O. mantiene la siguiente información:
30
Sistemas Operativos I
Tema 3. Gestión de Memoria
Proceso A Tabla segmentos Tabla de páginas tamaño btp 0 DISCO 710 0 1 DISCO 200 2 2 0 1040 3 3 DISCO 4 3 5 DISCO
Proceso B Tabla segmentos Tabla de páginas tamaño btp 0 1 100 0 1 DISCO 600 1 2 2 250 3 3 DISCO
NOTA.- btp (base de la tabla de páginas) representa el desplazamiento en la tabla de páginas (una tabla de páginas para todos los segmentos) de un mismo proceso. a) Con esta situación, ¿qué porcentaje de memoria se desperdicia debido a la fragmentación externa?; ¿y debido a la interna?. b) A partir de ese instante, continúa la ejecución concurrente de ambos procesos, y se generan las siguientes direcciones lógicas: (A, 0, 100) (A, 1, 25) (B, 2, 200) (A, 2, 1035) (B, 0, 10) (A, 0, 450) (B,1, 580). Considere el instante Tj, que es el que ocurre tras generar las direcciones lógicas anteriores. Calcule, para cada una de las siguientes direcciones lógicas, la dirección física equivalente, considerando la situación del instante Tj: (A, 2, 1030) (B, 0, 400) (A, 0, 700) (B, 2, 100) (A, 0, 300) (B, 0, 92) NOTA.- Si es una dirección errónea, conteste ERROR, y si es correcta pero la dirección equivalente no está en memoria física, escriba DISCO. Solución a) En segmentación paginada sólo hay fragmentación interna. El tamaño de página es de 512 palabras, por tanto la segmentación interna vendrá dada por la diferencia entre el tamaño de página y el número de palabras ocupadas. marco 0 1 2 3
Contenido de memoria Proceso A, seg 1, pág. 0 Proceso B, seg 0, pág. 0 Proceso B, seg 1, pág. 1 Proceso A, seg 2, pág. 0
Fragmentación interna 512-200=312 palabras 412 palabras 1024-600= 424 palabras 0 palabras
El tamaño total de memoria física es de 512 + 4= 2 K palabras. La fragmentación interna que hay en la memoria es de 312+424=736 palabras. El porcentaje de fragmentación interna vendrá dado por 736/2048 *100= 35,93 %. b) El algoritmo de reemplazo es OPTIMO LOCAL.
marco 0 1 2 3
Contenido de memoria A, 1, pág. 0 B, 1, pág. 0 B, 1, pág. 1 A, 2, pág. 0
A, 0, 100 (pág. 0) A, 1, pág. 0 B, 1, pág. 0 B, 1, pág. 1 A, 0, pág. 0
A, 1, 25 (pág. 0) A, 1, pág. 0 B, 1, pág. 0 B, 1, pág. 1 A, 0, pág. 0
B, 2, 200 (pág. 0) A, 1, pág. 0 B, 2, pág. 0 B, 1, pág. 1 A, 0, pág. 0
A, 2, 1035 (pág. 2) A, 2, pág. 2 B, 2, pág. 0 B, 1, pág. 1 A, 0, pág. 0
31
Sistemas Operativos I
Tema 3. Gestión de Memoria
B, 0, 10 A, 0, 450 B, 1, 580 marco (pág. 0) (pág. 0) (pág. 1) 0 A, 2, pág. 2 A, 2, pág. 2 A, 2, pág. 2 1 B, 0, pág. 0 B, 0, pág. 0 B, 0, pág. 0 2 B, 1, pág. 1 B, 1, pág. 1 B, 1, pág. 1 3 A, 0, pág. 0 A, 0, pág. 0 A, 0, pág. 0 Los fallos de página se han resaltado en negrita. En esta situación de la memoria la traducción de direcciones lógicas a físicas quedará: Dirección A, 2, 1030 lógica pág.2,des. 6 Dirección 512*0+6=6 física
B, 0, 400 pág.0,des. 400
A, 0, 700 pág.1,des. 188
B, 2, 100 pág.0,des. 100
512*1+400=912
DISCO
DISCO
Dirección A, 0, 300 lógica pág.0,des. 300 Dirección 512*3+300= física 1836
B, 0, 92 pág.0,des. 92 512*1+92= 604
46. Dado un sistema con memoria virtual con paginación por demanda y el siguiente fragmento de código, con su correspondiente traducción a ensamblador: FOR i := 1TO 10 DO FOR j := 1 TO 10 DO C[i, j] := C[i, j] + A[i, j] + B[i, j];
En ensamblador INICIO: BUCLE_i:
Inicializar R0 a 11 Decrementar R0 una unidad Salto si cero a FIN_BUCLE_i Inicializar R1 a 11 BUCLE_j: Decrementar R1 una unidad Salto si cero a FIN_BUCLE_j Cargar R3 con A[R0, R1] Cargar R4 con C[R0, R1] Cargar R5 con B[R0, R1] R3