Gestión Eficiente de Memoria: Conceptos y Estrategias en Sistemas Operativos
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 6,12 KB
Conceptos Fundamentales de Almacenamiento
RAM y ROM: Almacenamiento Primario
La RAM (Memoria de Acceso Aleatorio) y la ROM (Memoria de Solo Lectura) constituyen el almacenamiento primario de un sistema. El almacenamiento secundario, por otro lado, se soporta en dispositivos como discos.
Importancia del Almacenamiento Principal
Los programas y datos deben residir en el almacenamiento principal por dos razones fundamentales:
- Poder ejecutarlos directamente.
- Referenciarlos de forma inmediata.
El Administrador de Memoria en el Sistema Operativo
El Administrador de Memoria (o Gestor de Memoria) es un componente crucial del sistema operativo. Su función principal es la administración y gestión de la memoria, decidiendo qué tareas deben ejecutarse primero y cómo se gestiona la jerarquía de almacenamiento.
Jerarquías de Almacenamiento y sus Características
La jerarquía de almacenamiento se refiere a la estructuración de los diferentes niveles de memoria en un sistema. El almacenamiento principal es generalmente más costoso y de menor capacidad que el almacenamiento secundario, pero ofrece un acceso significativamente más rápido.
En esta jerarquía, a medida que se asciende de niveles (hacia la CPU, es decir, de secundario a primario):
- El tiempo de acceso y la capacidad de almacenamiento disminuyen.
- La velocidad de acceso y el costo por bit aumentan.
Estrategias Clave de Gestión de Memoria
Las principales estrategias de administración de memoria se basan en tres pilares:
- Búsqueda (Fetch)
- Colocación (Placement)
- Reposición (Replacement)
Estrategias de Búsqueda (Fetch)
Las estrategias de búsqueda determinan el momento óptimo para obtener el siguiente fragmento de programa o datos y cargarlo en la memoria principal. Se distinguen principalmente dos tipos:
- Búsqueda por Demanda: Los datos o programas se cargan solo cuando son estrictamente necesarios. Este método puede implicar mayores tiempos de espera iniciales.
- Búsqueda Anticipada (Prefetching): El sistema intenta predecir qué datos o programas serán necesarios en el futuro cercano y los carga proactivamente. Esto permite administrar más programas simultáneamente y, en general, resulta en un acceso más rápido.
Estrategias de Colocación (Placement)
Las estrategias de colocación definen el lugar específico dentro de la memoria donde se cargará un nuevo programa o segmento de datos.
Estrategias de Reposición (Replacement)
Las estrategias de reposición deciden qué programas o segmentos de datos deben permanecer en memoria y cuáles deben ser desalojados (enviados a almacenamiento secundario) para hacer espacio a nuevos programas.
Asignación Contigua de Memoria
La asignación contigua es un método en el que cada programa ocupa un único bloque contiguo y sencillo de localizaciones de almacenamiento en la memoria principal.
Bloques o Segmentos
Los bloques o segmentos son las partes en las que se divide un programa para su gestión en memoria.
Protección de Memoria y Registros de Límites
Es fundamental implementar mecanismos de protección sobre el almacenamiento para evitar que los programas de usuario sobrescriban o interfieran con el sistema operativo. Para ello, se utiliza el recurso del Registro de Límites.
Función del Registro de Límites
El Registro de Límites contiene la dirección de memoria más alta utilizada por el sistema operativo. Su uso es crucial para:
- Direccionar la instrucción más alta utilizada por el sistema operativo.
- Finalizar el proceso de un programa de usuario en caso de que intente acceder a áreas de memoria protegidas del sistema operativo.
Multiprogramación y Particionamiento de Memoria
La forma más sencilla de lograr la multiprogramación (ejecución concurrente de múltiples programas) es mediante el particionamiento de la memoria.
Fragmentación y Optimización de Memoria
Dispersión de Datos y Fragmentación
Cuando ocurre una dispersión de datos en la memoria, se produce una fragmentación del almacenamiento, lo que reduce la eficiencia del uso de la memoria.
Técnicas de Optimización
Combinación de Agujeros
Consiste en fusionar agujeros adyacentes (espacios de memoria libre) para crear bloques más grandes y reutilizables.
Desfragmentación
La desfragmentación implica reorganizar las áreas de memoria ocupadas, moviéndolas hacia un extremo de la memoria y consolidando todos los espacios vacíos al final, creando así un gran bloque de memoria libre contigua.
En algunos sistemas, no existen límites fijos de memoria para las particiones; el tamaño de la partición de un trabajo se adapta a su propio tamaño.
Compactación de Memoria
La compactación del almacenamiento principal es una técnica crucial para recuperar una cantidad significativa de memoria. Consiste en mover todas las áreas ocupadas del almacenamiento hacia uno de los extremos de la memoria principal. Esto tiene como resultado:
- Dejar un único y gran agujero de memoria libre contigua.
Esta técnica también es conocida como "recogida de residuos" (en el contexto de la gestión de memoria, se refiere a la compactación de espacios libres).