Paginación y Segmentación: Fundamentos de Gestión de Memoria en Sistemas Operativos
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 4,83 KB
Paginación: Gestión de Memoria por Páginas
La paginación es una técnica de gestión de memoria en la que la memoria física se divide en porciones de tamaño fijo, llamadas marcos de página, cuyo tamaño suele expresarse en potencias de 2. Cada proceso, a su vez, se divide en páginas del mismo tamaño que los marcos de página. Cada página comienza en la dirección virtual 0. Un proceso se carga situando todas sus páginas en marcos libres, los cuales no necesariamente tienen que ser contiguos.
Componentes Clave en Paginación
- Tabla de Páginas (TP): Contiene el marco de página en el que se ubica una página específica en memoria principal. Su función principal es traducir las direcciones virtuales a direcciones reales o físicas. Existe una tabla de páginas por cada proceso.
- Tabla de Marcos de Memoria (TMM): Indica qué marcos de página están ocupados y cuáles están libres. Es una tabla única para todo el sistema.
Tipos de Direcciones en Paginación
- Dirección Virtual: Se compone de un número de página y un desplazamiento dentro de la página.
- Dirección Física: Se compone del número de marco y un desplazamiento, el cual debe ser menor al tamaño de la página.
- Dirección Lógica: Es un número que, considerando toda la memoria del proceso como una unidad contigua, indicaría la posición de la dirección buscada.
Protección de Memoria en Paginación
La protección de memoria en sistemas paginados puede implementarse mediante registros límite (aunque más comunes en esquemas contiguos, pueden tener un rol complementario). Un aspecto importante es la compartición de código común entre varios procesos, lograda al apuntar al mismo marco de página. Esta compartición es totalmente transparente para el programador.
Desventaja Principal de la Paginación
- Fragmentación Interna: Se produce cuando el último marco de página asignado a un proceso no se llena completamente, dejando espacio desaprovechado dentro del marco.
Segmentación: Gestión de Memoria por Segmentos
La segmentación es una técnica donde cada proceso se divide en segmentos. Estos segmentos no tienen que ser del mismo tamaño ni contiguos en memoria física, pero la información lógica que contienen sí está agrupada. Existe una longitud máxima para cada segmento.
Características de los Segmentos
- Cada segmento comienza en la dirección virtual 0.
- Todo segmento tiene una dirección base y una longitud.
- Las direcciones virtuales o lógicas especifican tanto el identificador del segmento como el desplazamiento dentro de este.
- La dirección física indica la ubicación de la información en memoria principal.
Componentes Clave en Segmentación
- Tabla de Descripción de Segmentos (TDS): Contiene el identificador del segmento, la dirección base que ocupa en memoria principal y el tamaño del segmento. Existe una tabla por cada proceso.
- Bloque de Control del Proceso (PCB): Es donde se guardan las TDS de cada uno de los procesos.
Organización y Optimización
Los segmentos se organizan comúnmente para contener elementos como la pila, los datos y el código del programa. La CPU construye automáticamente los segmentos de acuerdo con la estructura del programa, lo que contribuye a aumentar la velocidad de ejecución.
Protección de Memoria y Compartición en Segmentación
La protección de memoria se implementa mediante bits de protección asociados a cada entrada de la TDS, que pueden indicar permisos de lectura, escritura o ejecución. La compartición de segmentos es posible cuando entradas de la tabla de segmentos de dos procesos apuntan a las mismas posiciones físicas en memoria.
Manejo de Swap en Segmentación
Es posible llevar segmentos completos del proceso al área de intercambio (swap) cuando no son necesarios en memoria principal. Sin embargo, el segmento que contiene la TDS del proceso generalmente no se lleva a memoria de intercambio, ya que al recargarse el proceso, se crearía una nueva partición y una nueva TDS.
Desventajas Principales de la Segmentación
- No es transparente para el programador: El programador debe ser consciente de la división en segmentos y gestionarlos.
- Fragmentación Externa: Se produce cuando hay suficiente espacio total en memoria para un segmento, pero este espacio no está contiguo, lo que impide su asignación.