Optimización de Memoria en Sistemas Operativos: Fundamentos y Técnicas

Clasificado en Informática

Escrito el en español con un tamaño de 6,08 KB

Gestión de Memoria en Sistemas Operativos

Conceptos Fundamentales de Memoria

Conjunto Residente

Se denomina conjunto residente a las páginas que un proceso tiene en memoria principal.

Hiperpaginación (Thrashing)

La hiperpaginación se produce cuando hay una elevada tasa de fallos de página. En sistemas operativos, se denomina hiperpaginación a la situación en la que se utilizan una creciente cantidad de recursos para realizar una cantidad de trabajo cada vez menor, lo que resulta en un rendimiento del sistema drásticamente reducido.

Fragmentación Externa

Al crear y destruir procesos, se van formando huecos en la memoria que, en ocasiones, son demasiado pequeños para albergar nuevos procesos, lo que lleva a un desperdicio de espacio.

Objetivos y Mecanismos de Almacenamiento de Memoria

Objetivos del Almacenamiento de Memoria

Los principales objetivos de la gestión de memoria en un sistema operativo son:

  • Ofrecer a cada proceso un espacio de memoria lógico propio.
  • Proporcionar protección entre los procesos.
  • Permitir que los procesos compartan memoria.
  • Dar soporte a las regiones de procesos.
  • Maximizar el rendimiento del sistema.

Mecanismo de Archivos Mapeados en Memoria

El mecanismo de archivos mapeados en memoria proporciona una manera alternativa de acceder a los archivos con numerosas ventajas sobre la forma tradicional de E/S.

Soporte de Regiones de Memoria

Las regiones de memoria pueden tener diferentes tipos de soporte:

  • Soporte de archivo: El contenido inicial de la región está almacenado en un archivo.
  • Sin soporte: Las regiones no tienen un contenido inicial predefinido.

Operaciones sobre Regiones de Memoria

Las operaciones comunes que se pueden realizar sobre las regiones de memoria incluyen:

  • Crear una región.
  • Eliminar una región del mapa de proceso.
  • Duplicar una región.

Protección y Traducción de Direcciones

Registro de Límite

El procesador comprueba que cada dirección que genera un proceso no es mayor que el valor almacenado en este registro. En caso de que lo sea, genera una excepción para proteger la integridad de la memoria.

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.

Memoria Virtual y Paginación

Memoria Virtual

La memoria virtual consiste en aprovechar parte del espacio en disco duro como si fuera memoria RAM, permitiendo a los procesos acceder a un espacio de direcciones lógicas mayor que la memoria física disponible.

La memoria virtual se construye sobre esquemas basados en paginación por demanda.

Paginación

La paginación requiere tanto del software (sistema operativo) como del hardware (unidad de gestión de memoria - MMU y disco duro).

Procesos y Paginación

Los procesos tienen un espacio de direcciones lógicas. La MMU (Unidad de Gestión de Memoria) debe realizar las traducciones a direcciones físicas. Las páginas tienen un tamaño que es potencia de 2 (típicamente 4096 bytes).

Tratamiento de un Fallo de Página

Cuando se produce un fallo de página, el sistema operativo sigue estos pasos:

  • La MMU genera la excepción de fallo de página.
  • Se activa el sistema operativo.
  • El sistema operativo necesita validar o invalidar la página.
  • Se consulta la tabla de marcos de página para buscar uno libre donde cargar la página requerida.

Algoritmos de Reemplazo de Páginas

Algoritmo FIFO (First-In, First-Out)

El algoritmo FIFO es una política de reemplazo de páginas que expulsa la página que lleva más tiempo en memoria, siguiendo el principio de "primero en entrar, primero en salir".

Algoritmo de Segunda Oportunidad

Este algoritmo es una modificación del algoritmo FIFO que intenta mejorar su rendimiento, dando una "segunda oportunidad" a las páginas antes de ser reemplazadas.

Políticas de Reemplazo de Páginas

Las políticas de reemplazo de páginas determinan qué página debe ser eliminada de la memoria principal cuando se necesita espacio para una nueva página. Estas políticas pueden ser globales o locales. Algunos algoritmos comunes incluyen:

  • Algoritmo LRU (Least Recently Used): Reemplaza la página menos usada recientemente.
  • Algoritmo de Buffering de Páginas: Utiliza un búfer para almacenar páginas reemplazadas, permitiendo una recuperación rápida si se vuelven a necesitar.

Es crucial que estas políticas eviten la hiperpaginación, una situación de bajo rendimiento donde el sistema dedica la mayor parte del tiempo a intercambiar páginas.

Tipos de Procesos y Señales

Servidores y Demonios

Los servidores y demonios son dos tipos de procesos muy frecuentes en sistemas operativos, cada uno con características propias que se detallan a continuación.

Tipos de Señales

Las señales son mecanismos de comunicación entre procesos o entre el kernel y un proceso. Los tipos comunes de señales incluyen:

  • Excepciones de hardware.
  • Señales de comunicación (inter-proceso).
  • Señales asíncronas (por ejemplo, de E/S).

Principios Fundamentales de un Sistema de Memoria Eficiente

Un sistema de memoria eficiente debe cumplir con los siguientes principios para garantizar un funcionamiento óptimo del sistema operativo:

  • Debe ofrecer a cada proceso un espacio lógico de direcciones.
  • Debe proporcionar protección entre procesos para evitar interferencias.
  • Debe permitir que los procesos compartan memoria de forma controlada.
  • Debe dar soporte a las regiones de proceso para una gestión flexible.

Entradas relacionadas: