Fundamentos de la Gestión de Memoria en Sistemas Operativos: Paginación, Segmentación y MMU

Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones

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

Gestión de Memoria en Sistemas Operativos

Objetivos del Sistema de Gestión de Memoria

  • Ofrecer a cada proceso un espacio lógico propio.
  • Proporcionar protección entre 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.

Espacio de Direcciones de un Proceso

Conjunto de direcciones a las que hace referencia un proceso.

Tipos de Espacios de Direcciones

  • Físicas: Referencian alguna posición de la memoria física.
  • Lógicas o Virtuales: Son las que utilizan los procesos y sufren una serie de transformaciones, realizadas por el procesador (la MMU), antes de convertirse en direcciones físicas.
  • Lineales: Se obtienen a partir de las direcciones lógicas tras haber aplicado una transformación dependiente de la arquitectura.

Funciones de la Unidad de Manejo de Memoria (MMU)

  • Convertir las direcciones lógicas emitidas por los procesos en direcciones físicas.
  • Comprobar que la conversión se puede realizar.
  • Comprobar que el proceso que intenta acceder a una cierta dirección de memoria tiene permisos para ello.
  • En caso de fallos, se lanzará una excepción que deberá ser resuelta por el kernel del SO.
  • La MMU se inicializa por cada proceso del sistema.
  • En todos los procesos se configura la MMU para que la zona del kernel solo se pueda acceder en modo kernel (modo privilegiado).
  • La configuración correspondiente al espacio de memoria del kernel es idéntica en todos los procesos.

Subsistema de Gestión de Memoria (Parte del Kernel del SO)

  • Decide qué procesos residen en memoria principal (al menos una parte).
  • Maneja parte del espacio de direcciones virtuales que ha quedado fuera.
  • Controla la cantidad de memoria principal.
  • Gestiona el intercambio de procesos entre memoria principal y memoria secundaria o dispositivo de swap.

Ventajas de la Paginación por Demanda

  • Flexibilidad al mapear el espacio de direcciones virtuales de un proceso con la memoria física de la máquina.
  • Permite que el tamaño de un proceso sea mayor que la cantidad de memoria física disponible.
  • Más procesos residiendo en memoria simultáneamente.

Memoria Virtual

La memoria virtual es un mecanismo que permite al sistema gestionar niveles de memoria principal y memoria secundaria.

  • Transferencia de bloques entre ambos niveles (normalmente basado en paginación).
  • De memoria secundaria a principal: por demanda.
  • De memoria principal a secundaria: por expulsión.

Paginación

La paginación es una técnica de gestión de memoria donde:

  • El espacio virtual de direcciones se divide en unidades llamadas páginas, todas del mismo tamaño.
  • La memoria principal se divide en marcos de páginas del mismo tamaño que las páginas virtuales (en cada marco de página se carga una página de un proceso).
  • No todo el espacio virtual de direcciones está cargado en memoria principal. Una copia completa se encuentra en disco y las páginas se traen a memoria principal cuando se necesitan.

Tabla de Páginas (TP)

La Tabla de Páginas (TP) relaciona cada página con el marco que la contiene.

  • La MMU usa la TP para traducir direcciones lógicas a físicas.
  • Típicamente usa dos tablas de páginas (TPs): TP de usuario y TP de sistema (solo se permite usar estas direcciones en modo sistema).

Transformación de Dirección Virtual a Física

Los bits de mayor peso de la dirección virtual se interpretan como el número de la página en la TP y los de menor peso como el número de palabra dentro de la página (desplazamiento).

Segmentación

La segmentación es otra técnica de gestión de memoria donde:

  • El espacio de direcciones se divide en segmentos, cada uno de los cuales corresponde a una rutina (procedimiento o función). Cada programa contiene una cierta cantidad de segmentos.
  • Los primeros segmentos se reservan para procedimientos, datos y pila pertenecientes al programa en ejecución.
  • Los segmentos restantes contienen un archivo por segmento.

Entradas relacionadas: