Gestión de Memoria en Sistemas Operativos: Conceptos y Algoritmos

Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones

Escrito el en español con un tamaño de 4,8 KB

Concepto de Gestión de Memoria

La memoria principal es un área de almacenamiento dividida en unidades accesibles a través de una dirección de memoria. Es un recurso fundamental: para que un programa se ejecute, debe encontrarse en memoria principal (al menos una parte). Equivale a la memoria RAM del ordenador. En monoprogramación, solo se carga un proceso. En multiprogramación, hay varios procesos, lo que requiere gestionar su uso.

Gestor de Memoria

Componente del Sistema Operativo (S.O.) encargado de administrar la Memoria Principal (M.P.). Sus cometidos son:

  1. Asignación de M.P. a los procesos solicitantes.
  2. Localización de espacios libres y ocupados.
  3. Aprovechamiento máximo de la memoria.
  4. Protección de áreas de memoria de cada proceso (escritura y lectura).
  5. Posibilidad de compartir áreas de memoria entre procesos.

Espacio de Direcciones Lógicas y Físicas

Dirección Física

Designa una posición real de la memoria principal. El conjunto de estas posiciones es el espacio de direcciones físico.

Dirección Lógica (o Relativa)

Dirección dentro del espacio de direcciones lógico de un proceso (generada por la CPU). La primera dirección suele ser cero y la última, el tamaño del proceso menos uno.

Intercambio (Swapping)

Mecanismo para optimizar el uso de la memoria:

  1. Un proceso bloqueado o de baja prioridad puede ser intercambiado (temporalmente expulsado) a un almacenamiento auxiliar (disco).
  2. Posteriormente, puede volver a memoria para continuar su ejecución. Puede que no se cargue en la misma posición original.

El almacenamiento auxiliar ideal es un disco rápido con capacidad para todos los procesos.

Asignación No Contigua de Memoria

La ubicación consecutiva de procesos causa fragmentación (desperdicio de memoria). La solución es "trocear" los procesos. Cada trozo se carga independientemente en diferentes zonas de la RAM, optimizando el espacio. Formalmente: el espacio de direcciones lógico se reparte en diferentes zonas.

Paginación Simple

La memoria se divide en bloques de igual tamaño: marcos de página. El espacio de direcciones lógico de un proceso se divide en páginas (mismo tamaño que los marcos). Se asignan marcos libres a páginas, no necesariamente de forma consecutiva.

Traducción de Direcciones Lógicas a Físicas (Paginación Simple)

  1. Dividir la dirección lógica entre el tamaño de página. Cociente = nº de página, Resto = desplazamiento.
  2. Consultar la tabla de páginas para obtener el marco correspondiente al nº de página.
  3. Multiplicar el tamaño de página por el nº de marco para obtener la dirección base del marco.
  4. Sumar desplazamiento y dirección base para obtener la dirección física.

Memoria Virtual

Soluciona el problema de los S.O. antiguos donde los programas debían cargarse completos en memoria. Permite ejecutar programas mayores que la memoria física disponible.

Ventajas:

  1. El programa puede ser mayor que la memoria física.
  2. Más programas en memoria simultáneamente.
  3. Menor tiempo de E/S en el intercambio de procesos.

Fallo de Página

Ocurre cuando un proceso necesita datos o instrucciones de una página no cargada en memoria.

Funcionamiento de la Memoria Virtual

Se basa en:

  1. Principio de localidad temporal: Instrucciones ejecutadas sucesivamente están en direcciones próximas.
  2. Principio de localidad espacial: Los programas suelen ser lineales (pocos saltos entre posiciones).

Algoritmos de Reemplazo de Páginas en Memoria Virtual

Algoritmo FIFO (First-In, First-Out)

Página víctima: la que lleva más tiempo en memoria.

  • Ventaja: Fácil de implementar.
  • Inconveniente: Rendimiento pobre (no considera la probabilidad de uso futuro).

Algoritmo Óptimo

Página víctima: la que tardará más en utilizarse (requiere conocer el futuro).

  • Ventaja: Mínimo número de fallos de página.
  • Inconveniente: Imposible de implementar en la práctica. Se usa para comparación.

Algoritmo LRU (Least Recently Used)

Página víctima: la que lleva más tiempo sin usarse (aproximación al óptimo).

  • Ventaja: Se aproxima al óptimo (estadísticamente, las páginas menos usadas tienen menor probabilidad de uso futuro).
  • Inconveniente: Requiere tiempo del S.O. para determinar la página víctima.

Entradas relacionadas: