Cuestiones y Problemas de Gestión de Memoria Primera Parte Cuestiones y Problemas de Gestión de Memoria Cuestiones Cuestiones.Introducción a la gestión de memoria 1. 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 2. • Los ficheros ejecutables ocuparán menos espacio. • Los procesos compartirán memoria. • Los programas no tendrán que ser recompilados ni reenlazados para tener acceso a las mejoras de implementación efectuadas en las bibliotecas. 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) Segmentación, paginación, segmentación paginada b) segmentación, particiones variables 3. Definir la fragmentación externa y citar que esquemas de gestión de memoria padecen de ella. SOLUCIÓN a) Estado de la memoria que se caracteriza por la existencia de abundantes particiones libres de tamaño demasiado pequeño como para poder ser asignadas a un proceso. Se produce este estado tras múltiples operaciones de asignación y liberación de particiones / segmentos de memoria de tamaño variables b) Segmentación y Particiones Variables 4. 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) Direcciones físicas: P1: 6000, P2: 18000, P3: 40960 1 Cuestiones y Problemas de Gestión de Memoria Cuestiones b) Dirección lógica: (0, 17080) Direcciones físicas: P1: 4792, P2: 17080, P3: 33464 SOLUCIÓN: a)Segmentación b)Segmentación Paginada. 5. Diga si es posible que, utilizando alguna técnica de gestión de memoria virtual aparezca tanto fragmentación interna como externa. En caso de responder afirmativamente, indique en qué método de asignación aparecen ambos problemas. En caso de responder negativamente, explique por qué no pueden aparecer ambos problemas simultáneamente: SOLUCIÓN: Se admiten las dos respuestas siempre y cuando estén bien justificadas. No es posible: Ya que cada una de las técnicas de gestión de memoria soluciona un tipo de fragmentación. Si es posible: Tanto en segmentación como en particiones variables puede producirse fragmentación interna y externa. La fragmentación interna se produce por el grado de granularidad con que se intenta ajustar los segmentos o particiones variables. Si se ajusta por palabras de 16 bits podemos tener una fragmentación interna de 1 Byte. 6. ¿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: a) Algoritmos: “el primer ajuste” (first fit), “el mejor ajuste” (best fit), “el peor ajuste (worst fit)” b) Fragmentación externa 7. Enumere y clasifique las técnicas de gestión contigua y las técnicas de gestión dispersa de la memoria. SOLUCIÓN: a) Gestión Contigua: Particiones múltiples fijas, particiones múltiples variables. b) Gestión Dispersa: Paginación, segmentación, segmentación paginada. 8. ¿Qué problema intenta resolver el algoritmo de “peor ajuste”? ¿cómo funciona? 2 Cuestiones y Problemas de Gestión de Memoria Cuestiones SOLUCIÓN: a) Asignación dinámica de memoria b) Se escoge el hueco más grande de entre todos los existentes para ubicar al segmento o proceso que se necesitaba cargar. Asignación contigua 9. Un proceso genera las siguientes direcciones lógicas. Indica las direcciones físicas correspondientes según cada esquema de gestión de memoria. Si no es posible indicar ERROR. Particiones Variables. Registro Base: 150 a) 612 b) 38 c) (3, 62) Registro Límite: 220 SOLUCIÓN: a) ERROR b) 188 c) ERROR 10. 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 si el esquema de gestión de memoria es el de Particiones Variables. Si no es posible indicar ERROR. Situación de los procesos: Proceso Registro base Registro límite A B C 0 4020 1400 1360 6300 2600 a) (B, 530) b) (A,0, 130) c) (C, 1046) SOLUCIÓN a) 4550 b) ERROR c) 2246 3 Cuestiones y Problemas de Gestión de Memoria Cuestiones Paginación 11. 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) (2,405) b) No, porqué el desplazamiento de la dirección 9322 es 106, que no se puede corresponder con un desplazamiento de 405 aunque la página cambie de marco. 12. Un proceso genera las siguientes direcciones lógicas. Indica las direcciones físicas correspondientes según cada esquema de gestión de memoria. Si no es posible indicar ERROR. Paginación. Tamaño Página: 128 Tabla de Páginas: 0 1 1 4 2 2 3 5 a) 612 b) 38 c) (3, 62) SOLUCIÓN: a)ERROR b)166 c)ERROR 13. 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 si el esquema de gestión de memoria es el de Paginación. Si no es posible indicar ERROR. Tamaño Página: 256. Tabla de Páginas: 0 1 2 3 a) 530 b) (0, 130) c) 1046 4 4 5 3 6 Cuestiones y Problemas de Gestión de Memoria Cuestiones SOLUCIÓN: a) 786 b) ERROR c) ERROR 14. Dado un sistema basado en un modelo de memoria basado en paginación y con los siguientes parámetros:. − p: probabilidad de fallo de página. − TAM: tiempo de acceso a memoria. − TP: tiempo de servicio de fallo de página. − TAE: el tiempo de acceso efectivo a memoria cuando la tabla de páginas está cargada en registros. Se asume que el tiempo de acceso a los registros es despreciable. ¿ Cuál es el valor del incremento en el TAE si la tabla de páginas (un solo nivel) se encontrara en memoria ? SOLUCIÓN: p’ * TAM + (1 - p’)* TP 15. 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) suponiendo un modelo de gestión de memoria paginada con páginas de 4K bytes SOLUCIÓN: 2638, 6734, 10830, 14926 16. En un sistema de gestión de memoria paginado, se han incluido unos registros asociativos (TLB) para mejorar el rendimiento del sistema. La búsqueda en estos registros cuesta 20 ns, mientras que su búsqueda y actualización cuesta 40 ns. El tiempo de acceso a memoria (TAM) es igual a 100 ns. Suponiendo que la tasa de acierto en el TLB es de un 80%, calcular el tiempo de acceso efectivo a memoria en este sistema. SOLUCIÓN Taef=(Tam+Ttlbusq.)x 0.8 + (2 Tam + Ttlbusq_act)x 0.2= 144ns 17. Diga cuáles de los siguientes problemas permite resolver un sistema de memoria virtual que utiliza la técnica de paginación sin intercambios (sin swapping) (conteste SI o NO): a) Reubicación en tiempo de ejecución b) Fragmentación interna c) Ejecución de programas de tamaño mayor que la memoria física d) Asignación dispersa de memoria e) Espacios de direccionamiento independientes para cada proceso SOLUCIÓN: 5 Cuestiones y Problemas de Gestión de Memoria a) b) c) d) e) Cuestiones SI NO NO SI SI 18. 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, desplazamiento 405 b) NO. (9322 mod 1024) = 106 y debería ser 405 para que fuese posible 19. Se tiene un sistema de memoria virtual con paginación a un nivel que no utiliza intercambios y cuya tabla de páginas se encuentra en memoria principal. Este sistema utiliza una TLB (Translation Look-aside Buffers) cuyo porcentaje de aciertos es del 85%. ¿Cuánto empeora el TAE respecto a un sistema que tuviese la tabla de páginas íntegramente en registros del procesador?. Considere que el tiempo de acceso a los registros internos del procesador y a la TLB es despreciable frente al TAM (Tiempo de Acceso a Memoria). SOLUCIÓN TAE = 0.85*TAM + 0.15*2*TAM = 1.15*TAM ΛTAE = 1.15*TAM – TAM = 0.15*TAM Segmentación 20. Sea un sistema que utiliza segmentación (no paginada) y un proceso con tres segmentos de tamaños respectivos 2142, 1023 y 5422 palabras. Si los tres segmentos se ubican de forma consecutiva y contigua en memoria central a partir de la dirección 9212, indique la dirección física que corresponde a la dirección lógica (1, 312) SOLUCIÓN: 9212+2142+312 = 11666 21. 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. 6 Cuestiones y Problemas de Gestión de Memoria Cuestiones 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). 22. Un proceso genera las siguientes direcciones lógicas. Indica las direcciones físicas correspondientes según cada esquema de gestión de memoria. Si no es posible indicar ERROR Segmentación (no paginada). Tabla de Segmentos: Seg. 0 1 2 3 Base 200 50 105 320 Limite 20 10 49 70 a) 612 b) 38 c) (3, 62) SOLUCIÓN: a)ERROR b)ERROR c)382 23. 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) 33270 (el segmento empieza en la dir. 15266) , 22112 (si empieza en la dir. 4108) b) Error por exceso en el tamaño máximo del segmento (64k). 24. 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), 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 7 Cuestiones y Problemas de Gestión de Memoria Cuestiones SOLUCIÓN: (ns, 27214-16384) (ns, 10830) 25. Enumere las llamadas al sistema en Unix cuya eficiencia podría verse aumentada por el hecho de compartir segmentos con un proceso que ya se está ejecutando en memoria. Diga para cada una de ellas qué segmentos podrían compartirse SOLUCIÓN: a)fork(): crear un nuevo proceso, clonando el proceso que la invoca. Puede compartirse el segmento T. El compartirse en modo “copy on write”.) segmento D solo puede b)exec() : cambiar la imagen de memoria Solo puede compartirse el segmento T. Segmentación Paginada 26. Sea un sistema de memoria virtual 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. SOLUCIÓN: 8GB Dir. lógicas de 33 bits. 256 segmentos 8 bits para el número de segmento. Páginas de 2 KB 11 bits para el desplazamiento. Nº bits para nº de página 33 – (8 + 11) = 33 – 19 = 14 214 = 16384 descriptores Tamaño tabla = 16384 * 4 = 65536 = 64 KB 27. 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) Indicar qué direcciones 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) Indicar qué direcciones de entre las siguientes cuales podrían ser direcciones físicas base del segmento 5 referenciado en la dirección (5, 18004): 0, 18004, 5000, 8192, 23000 8 Cuestiones y Problemas de Gestión de Memoria Cuestiones SOLUCIÓN: a) 1620, 9812 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) 0, 8192 28. 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) 7 b) 8 c) 4 29. 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 si el esquema de gestión de memoria es el de Segmentación Paginada. Si no es posible indicar ERROR. Segmentación paginada por demanda. Tamaño de página 128. Situación de la memoria física Marco (segmento, página) 0 (0,3) 1 (1,0) 2 (2,0) 3 -4 (1,2) 5 (0,0) 6 (0,2) 7 (1,3) a) 530 b) (0, 130) c) 1046 SOLUCIÓN: 9 Cuestiones y Problemas de Gestión de Memoria Cuestiones a) ERROR b) 386 c) ERROR 30. Suponga que un proceso emite la dirección lógica(0,9701) utilizando un modelo de memoria basado en segmentación paginada (tamaño de página=512 palabras), la memoria se encuentra vacía, el espacio de memoria física es de 64K bytes y el criterio de asignación de memoria es por direcciones crecientes. ¿ Cuál sería la dirección física correspondiente a la dirección lógica?. SOLUCIÓN: 9701 MOD 512 = 485 31. En un sistema de gestión de memoria segmentado-paginado se tiene una MMU donde únicamente se permiten 8 segmentos por proceso y se emplean dos niveles de paginación, implementando ambos en memoria principal. La tabla de segmentos se ha implementado en registros, con un tiempo de acceso igual a 2 ns. El tiempo de acceso a memoria (TAM) es igual a 20 ns. Para mejorar el rendimiento, se tiene un conjunto de registros asociativos (TLB), donde se guarda como clave tanto el número de segmento como los dos números de página. El tiempo de acceso para estos registros asociativos es igual a 10 ns. Indique cuál será el tiempo de acceso efectivo (TAE) de este sistema, si las direcciones lógicas a traducir se encuentran en el TLB en el 90% de los accesos. SOLUCIÓN: Taef=(Tam+Ttlb)tasa_acier+(1-tasa_acier)(3Tam+Ttlb+Treg) Taef= (20+10) 0.9 +(0.1)(60+10+2)= 27+7.2=34.2 32. 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), 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: (ns, 2638), (ns, 6734), (ns, 10830), (ns, 14926) 33. 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?. nº página 0 1 2 marco 3 7 8 a) (1, 2487 ) b) ( 1 , 635 ) SOLUCIÓN: a) 8631 10 Cuestiones y Problemas de Gestión de Memoria Cuestiones b) 3707 34. 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: No es posible a 3654: (1333-1024)=309; (1024x3)+309≠3654 Si es posible a 2357: (1333-1024)=309; (1024x2)+309= 2357 35. Sea un sistema de memoria virtual 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. SOLUCIÓN: 8GB Dir. lógicas de 33 bits. 256 segmentos 8 bits para el número de segmento. Páginas de 2 KB 11 bits para el desplazamiento. Nº bits para nº de página 33 – (8 + 11) = 33 – 19 = 14 214 = 16384 descriptores Tamaño tabla = 16384 * 4 = 65536 = 64 KB 36. Sea un esquema de segmentación paginada con un máximo de S segmentos por proceso y P páginas por segmento. El tamaño de página en dicho sistema es de 2kbytes. Indique a que dirección o direcciones lógicas se pueden corresponder las direcciones físicas 3654 y 2357. SOLUCIÓN: a) 3654 (s,p*2048+1606), donde s<=S y p<=P. Donde 1606 es el módulo de la división cuyo dividendo es la dirección física (3654) y cuyo divisor es el tamaño de marco (2048). b) 2357 (s,p*2048+309), donde s<=S y p<=P. Donde 309 es el módulo de la división cuyo dividendo es la dirección física (2357) y cuyo divisor es el tamaño de marco (2048). 37. Sea un sistema de memoria virtual segmentado-paginado. Los espacios de direcciones lógicas son de 8Gbytes y el tamaño de página es de 16 Kbytes. Un espacio de direcciones puede tener hasta 256 segmentos y un descriptor de página ocupa 8 bytes. Indique, de manera justificada, cual será el tamaño de la tabla de páginas de un segmento. 11 Cuestiones y Problemas de Gestión de Memoria Cuestiones SOLUCIÓN Tamaño tabla de páginas de un segmento La dirección lógica estará formada por 33 bits: SEG 8 bits Número de pág 11 bits Desplazamiento dentro de la página 14 bits El tamaño de la tabla de páginas de un segmento = 211 * 8 bytes =16 Kbytes Paginación Multinivel 38. Se tiene un sistema de memoria virtual 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: 12 dir-pag Dirección lógica: Dirección física: 8 12 pagina offset 18 12 marco offset 39. Se tiene un sistema de memoria virtual 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 • 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: Dirección lógica: 12 8 dir-pag pagina offset 18 12 marco 12 12 offset Cuestiones y Problemas de Gestión de Memoria Cuestiones Dirección física: Region código: 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 = 143.496 descriptores Tamaño descriptor = 18 + 1 + 3 + 2 = 24 bits = 3 bytes Tamaño tabla de páginas: 143.496 x 3 = 430.488 bytes = 420.4 Kb aprox Tamaño max del proceso = 4 Gb = 1020 pags = 1 Mpags Tamaño max de la tabla de páginas = 3 Mb 40. Suponga que la tabla de directorios se encuentra en los registros de la MMU y que la tabla de páginas se encuentra en memoria principal, reservándose N marcos para la misma y recurriendo a la paginación por demanda cuando el descriptor solicitado no se encuentra en estos N marcos. Se pide calcular el incremento en el TAE (Tiempo de Acceso Efectivo a Memoria) por el efecto de paginar la tabla de páginas, suponiendo que: • La probabilidad de que un determinado descriptor de página se encuentre en memoria es (1-pd). • La probabilidad de encontrar un marco libre en los N marcos es cero. • La probabilidad de que una página que se encuentra en uno de los N marcos haya sido modificado es pm. • El tiempo de acceso a memoria es TAM. • El tiempo de acceso a disco es TAD (tanto para lectura como para escritura). SOLUCIÓN: 1-pd descr. en mem pd descr. en disco TAE = X 1-pm pm descr. modif. descr. NO modif. TAE = X + 2*TAD TAE = X + TAD TAE = (1-pd)*X + pd*(1-pm)*(TAD+X) + pd*pm (2*TAD+X)= X + pd*TAD + pd*pm*TAD ΛTAE = pd*TAD + pd*pm*TAD = pd*TAD (1+pm) 41. Sea un sistema de memoria virtual con paginación a dos niveles. El primer nivel de paginación se utiliza para dividir un espacio de direcciones lógico en regiones mientras que el segundo nivel se utiliza para dividir una región en páginas. Los espacios de direcciones lógicas son de 4Gbytes y el tamaño de página es de 4Kbytes. Suponiendo que un descriptor de página ocupa 8 bytes. ¿Cual será la estructura de una dirección lógica si se desea que la tabla con los descriptores de página de una región (una tabla de segundo nivel) quepa en una página? SOLUCIÓN: En una tabla de segundo nivel cabrán 4096/8 entradas (512). Por tanto, hay: 11 bits para el número de página de 1er nivel. 9 bits para el número de página de 2º nivel. 13 Cuestiones y Problemas de Gestión de Memoria Cuestiones 12 bits para el desplazamiento 42. Se tiene un sistema de memoria segmentado paginado con paginación a dos niveles. Cada proceso puede tener un espacio lógico de 4 segmentos como máximo y 512 páginas de primer nivel. Los espacios de direcciones lógicas de este sistema son de 32Gbytes y el tamaño de página es de 4Kbytes. El espacio de direcciones físicas que puede tener hasta 4Gb. Describa la estructura de las direcciones lógicas y de las direcciones físicas de este sistema de memoria virtual, indicando el número de bits de cada uno de los campos que en ellas aparecen. SOLUCIÓN: Dirección lógica (seg=2 bits, p1=9 bits, p2=12 bits, des=12 bits) Dirección física (mar=20 bits, des=12 bits) 14 Cuestiones y Problemas de Gestión de Memoria Cuestiones Problemas: Asignación contigua 1. Sea un sistema de memoria con particiones múltiples de tamaño variable con compactación. El algoritmo de compactación siempre ubica el hueco de memoria en las direcciones más altas, finalizando la compactación cuando obtiene un hueco lo suficientemente grande para ubicar el proceso. En un instante dado, se tiene la siguiente ocupación de memoria: S.O. (128K) P1 (256K) libre (512K) P2 (16K) libre (96K) P3 (32K) Se utiliza la técnica del mejor ajuste. En la cola de trabajos pendientes tenemos dos proceso P4 (416K) y P5(128K), si nada más cargarse en memoria dichos procesos hay una solicitud para acceder a las direcciones (P4, 1500) y (P5, 300) respectivamente ¿Indique cuales serían las direcciones físicas generadas por la MMU SOLUCIÓN: a) (P4, 1500) 128K + 256K + 1500=128*1024+256*1024+1500= 394716 b) (P5, 300) 128K + 256K + 416K +16K +300 = 816 K + 300= 816*1024+300= 836700 2. Sea un sistema gestionado por particiones múltiples de tamaño variable sin compactación. En un instante dado, se tiene la siguiente ocupación de la memoria: S.O. P1 (80K) (150K) libre (400K) P2 (300K) libre (300K) P3 libre (180K) (200K) Se utiliza la técnica del peor ajuste. En la cola de trabajos tenemos en este orden: P4(200K), P5(200K) i P6(300K), 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) Indicar si queda algún proceso en la cola de trabajos que no haya podido ser cargado en memoria. En caso afirmativo indicar cual es. b) Indicar cuantas particiones libres quedan en memoria y de que tamaño son. 15 Cuestiones y Problemas de Gestión de Memoria Problemas SOLUCIÓN: a) Sí, queda uno; el proceso P6 b) Quedan tres particiones de tamaño 200K, 100K y 200K 3. 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: 0 S.O. (80K) P1 (180K) libre (400K) P2 (100K) libre (150K) 984K P3 (75K) 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) Indicar 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 30K respectivamente b) Debería moverse el proceso P4 al hueco de 120K c) Todos quedan igual, salvo B4 que queda (B4-220K) 4. Sea un sistema gestionado por particiones múltiples de tamaño variable sin compactación. En un instante dado, se tiene la siguiente ocupación de la memoria: 0 S.O. (80K) P1 (180K) libre (400K) P2 (100K) libre (150K) P3 (90K) 1200K Libre (200K) En la cola de trabajos tenemos en este orden: P4(120K), P5(200K) y P6(300K), 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, evaluar cual de las técnicas entre las de mejor ajuste y peor ajuste es conveniente utilizar y porque. SOLUCIÓN: Mejor ajuste. En el caso del peor ajuste el proceso P6 no puede entrar 16