Gestión de Memoria en Sistemas Operativos: Conceptos Clave y Estrategias de Asignación
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 3,33 KB
Objetivos del Sistema de Gestión de Memoria
Para un sistema de gestión de memoria, los objetivos deseables son:
- Ofrecer a cada proceso un espacio lógico propio.
- Proporcionar protección entre los procesos.
- Permitir que los procesos compartan memoria.
- Dar soporte a las distintas regiones del proceso.
- Maximizar el rendimiento del sistema.
- Proporcionar a los procesos mapas de memoria muy grandes.
La Unidad de Gestión de Memoria (MMU)
La función de traducción de direcciones la lleva a cabo concretamente un módulo específico del procesador denominado Unidad de Gestión de Memoria (MMU, Memory Management Unit). El sistema operativo deberá poder especificar a la MMU del procesador qué función de traducción debe aplicar al proceso que está ejecutando en ese momento.
Asignación Contigua de Memoria
Cada vez que se crea un proceso, el sistema operativo busca un hueco en memoria de tamaño suficiente para alojar el mapa de memoria del mismo. El sistema operativo reservará la parte del hueco necesaria, creará en ella el mapa inicial del proceso y establecerá una función de traducción tal que las direcciones que genera el programa se correspondan con la zona asignada.
Mecanismos de Control en Asignación Contigua
- Registro Límite: El procesador comprueba que cada dirección que genera el proceso no es mayor que el valor almacenado en este registro. En caso de que lo sea, se generará una excepción.
- Registro Base: Una vez comprobado que la dirección no rebasa el límite permitido, el procesador le sumará el valor de este registro, obteniéndose con ello la dirección de memoria física resultante.
Sistemas operativos. Una visión aplicada
Fragmentación Externa y Políticas de Asignación
Con esta estrategia, como muestra la figura anterior, según se van ejecutando distintos procesos, van quedando «fragmentos» en la memoria que, dado su pequeño tamaño, no podrían ser asignados a ningún proceso. A este problema se le denomina fragmentación externa.
Políticas de Asignación de Espacio:
El Mejor Ajuste (Best-Fit)
Se elige la zona libre más pequeña donde quepa el mapa del proceso. A priori, puede parecer la mejor solución. Sin embargo, esto no es así. Por un lado, se generan nuevos espacios libres muy pequeños. Por otro lado, la selección del mejor hueco exige comprobar cada uno de ellos o mantenerlos ordenados por tamaño. Ambas soluciones conducen a un algoritmo ineficiente.
El Peor Ajuste (Worst-Fit)
Se elige el hueco más grande. Con ello se pretende que no se generen nuevos huecos pequeños. Sin embargo, sigue siendo necesario recorrer toda la lista de huecos o mantenerla ordenada por tamaño.
El Primero que Ajusta (First-Fit)
Aunque pueda parecer sorprendente a priori, esta suele ser la mejor política. Es muy eficiente, ya que basta con encontrar una zona libre de tamaño suficiente y proporciona un aprovechamiento de la memoria aceptable.
Intercambio (Swapping)
Este es un concepto relacionado con la gestión de memoria que permite mover procesos entre la memoria principal y el almacenamiento secundario para optimizar el uso de recursos.