Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Sistemas Operativos (6004) Práctica #5 Gestión de Memoria Simple Objetivos de la práctica: • Estudiar los requisitos indispensables para la gestión de memoria: reubicación, protección, compartimiento, organización lógica y física. • Analizar los diferentes algoritmos empleados para la asignación de memoria. • Conocer las técnicas empleadas para la partición de la memoria: partición estática y dinámica. • Estudiar las estructuras de hardware y de control en la gestión de memoria. Desarrollo de la práctica: 1. Explicar las técnicas empleadas para establecer la correspondencia entre las direcciones lógicas y físicas en la paginación. 2. Explicar la correspondencia de entre las direcciones lógicas y físicas en un sistema con segmentación. 3. Los programas binarios están normalmente estructurados en muchos sistemas de la forma siguiente: el código se almacena a partir de una dirección virtual fija de valor pequeño, como por ejemplo 0; el segmento de código está seguido por el segmento de datos que se utiliza para almacenar las variables del programa. Cuando el programa comienza a ejecutarse, la pila se asigna en el otro extremo del espacio virtual de direcciones y se le permite crecer hacia abajo, hacia las direcciones virtuales más pequeñas. ¿Qué implicaciones tiene la implementación de esta estructura en los siguientes esquemas? a) Asignación contigua de memoria. b) Segmentación pura. c) Paginación pura. 4. Considere un espacio de direcciones lógicas de ocho páginas de 1.024 palabras cada uno, asignado a una memoria física de 32 marcos. a) ¿Cuántos bits hay en la dirección lógica? b) ¿Cuántos bits hay en la dirección física? 5. Considere la siguiente tabla de segmentos: Segmento 0 1 2 3 4 Base Longitud 219 600 2300 14 90 100 1327 580 1952 96 6. ¿Cuáles son las direcciones físicas correspondientes a las siguientes direcciones lógicas? a) 0,430 b) 1,10 Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Sistemas Operativos (6004) Práctica #5 c) 2,500 d) 3,400 e) 4,112 7. Un computador tiene un espacio de direcciones de 32 bits y páginas de 8 KB. Cada entrada en la tabla de páginas ocupará una palabra de 32 bits. Al iniciar un proceso, la tabla de páginas se copia al hardware desde la memoria (Afirmación hipotética para el ejercicio), con una palabra cada 100 ns. Si cada proceso se ejecuta durante 100 ms (incluyendo el tiempo de carga de la tabla de páginas). ¿Cuál es la fracción de tiempo del procesador que se dedica a la carga de la tabla de páginas? 8. Suponga un Sistema Operativo que emplea un sistema de gestión de memoria paginada en donde las páginas tienen un tamaño de 8KB. Adicionalmente se conoce que el tamaño de cada entrada en la tabla de páginas es igual a 32 bits. Se desea que calcule el espacio ocupado por la tabla de páginas para un proceso con un espacio de direccionamiento igual a 232 Bytes. 9. Una máquina utiliza un sistema de gestión de memoria basado en segmentación pura. Las direcciones lógicas se dividen en campo segmento (6 bits) y campo desplazamiento (26 bits). La memoria física direccionable en esta máquina es de 16 GB (234 bytes). Responda justificadamente las siguientes preguntas: a) Indique las dimensiones (número de entradas y tamaño en bytes de cada entrada) de las tablas de segmentos necesarias para este sistema de gestión de memoria. b) ¿Cuál es el número máximo de segmentos que puede tener un proceso? c) Queremos cargar un archivo ejecutable con tres segmentos: un segmento de código de 100 MB, un segmento de datos de 40 MB y un segmento de pila de 30 MB. Indique cuál será el contenido de la tabla de segmentos del proceso correspondiente. d) Indique dos ventajas y dos inconvenientes de la segmentación pura respecto la paginación pura. 10. Un Sistema Operativo emplea un sistema de gestión de memoria con paginación simple, con un tamaño de página de 4KB y una memoria principal de 2 GB. Suponga que llegan 4 procesos y que éstos tienen los siguientes requerimientos: P1 4 MB, P2 8MB, P3 44.560 Bytes y P4 33.566 Bytes. Se desea que indique: a) La cantidad de memoria principal asignable. b) El nivel de fragmentación interna y externa. 11. Calcular el porcentaje de tiempo de CPU utilizado para la compactación de la memoria en una máquina de 1 Mb de memoria. La compactación se hace cada 0,5 s y se tarda 300 ns en copiar un byte. Los espacios desaprovechados en promedio son del 50% del tamaño de los bloques. 12. Un sistema de intercambio elimina la fragmentación mediante la compactación. Suponiendo que la memoria está repartida de tal forma que tanto los bloques libres como los bloques asignados ocupan 4096 bytes; que la memoria consiste en una secuencia alternante de bloques asignados y bloques libres; que el primer bloque de la memoria está asignado; y que el tiempo de lectura o escritura en una palabra de Universidad Central de Venezuela Facultad de Ciencias Escuela de Computación Sistemas Operativos (6004) Práctica #5 memoria de 32 bits de 10 nanosegundos (1 nanosegundo = 1x10-9 segundos), ¿aproximadamente cuánto tiempo se requiere para compactar 2 GB? 13. En este problema tiene que comparar el almacenamiento necesario para llevar la cuenta de la memoria libre, utilizando un mapa de bits contra el uso de una lista enlazada. La memoria de 128 MB se asigna en unidades de n bytes. Para la lista enlazada, suponga que la memoria consiste en una secuencia alternante de segmentos de datos y fragmentos libres de 64 KB cada uno (un segmento de datos, un segmento libre, un segmento de datos, un segmento libre,…). Suponga también que cada nodo de la lista enlazada necesita una dirección de memoria de 32 bits, una longitud de 16 bits y un campo para el siguiente nodo de 16 bits. ¿Cuántos bytes de almacenamiento se requieren para cada método? ¿Cuál es mejor en este caso? 14. Considerar un sistema en el que la memoria posee huecos libres de tamaño: 1000 KB, 400 KB, 1800 KB, 700 KB, 900 KB, 1200 KB y 1500 KB. Estos huecos están disponibles en el orden dado. Se requieren tres segmentos de tamaños 1200 KB, 1000 KB y 900 KB. Para los algoritmos primer ajuste, peor ajuste, siguiente ajuste con apuntador al bloque 1800: a) ¿Qué huecos serán asignados? b) ¿Qué algoritmo aprovecha mejor la memoria? 15. Dadas las siguientes particiones de memoria: 100K, 500K, 200K, 300K, 600K (en orden), ¿Cómo sería la asignación de las particiones utilizando los algoritmos de primer ajuste, peor ajuste y mejor ajuste a los siguientes procesos: 212K, 417K, 112K, 426K? ¿Qué algoritmo hace el uso más eficiente de la memoria? GDSO