Paginación y Segmentación
Paginación
Definición
Es una técnica de manejo de memoria, en la cual el espacio de memoria se divide en secciones físicas de igual tamaño, denominadas marcos de página. Los programas se dividen en unidades lógicas, denominadas páginas, que tienen el mismo tamaño que los marcos de páginas. De esta forma, se puede cargar una página de información en cualquier marco de página.
Características
-El espacio de direcciones lógico de un proceso puede ser no contiguo.
-Se divide la memoria física en bloques de tamaño fijo llamados marcos (frames).
-Se divide la memoria en bloques de tamaño llamados páginas.
-Se mantiene información en los marcos libres.
-Para correr un programa de en páginas de tamaño, se necesitan encontrar n marcos y cargar el programa.
-Se establece una tabla de páginas para trasladar las direcciones lógicas a físicas.
-Se produce fragmentación interna.
Tabla de páginas
Definición
El número de página virtual se utiliza como índice en la tabla de páginas para buscar la entrada para esa página virtual. En la entrada en la tabla de páginas, se encuentra el número de marco de página (si lo hay). El número del marco de página se adjunta al extremo de mayor orden del desplazamiento, reemplazando el número de página virtual, para formar una dirección física que se pueda enviar a la memoria.
Estructuras de la tabla de páginas
Protección
Expresa los permisos de acceso del proceso. En caso de tener permiso para la operación de lectura/escritura que se va a realizar, se consulta el resto de los campos.
Bit de Presencia
Indica si la página está presente en memoria principal o no. Si se encuentra en RAM, también tienen sentido los siguientes campos.
Marco ocupado
Si la página se encuentra en memoria principal, este campo expresa el marco que la contiene.
Modificada (Bit de ensuciado)
Este campo indica si el contenido de la página ha sido modificado desde que se trajo de la memoria secundaria.
Referenciada
Este campo booleano se pone a cierto cada vez que se hace referencia a cualquier dirección de la página. Lo utiliza el sistema operativo para ayudar a los algoritmos de sustitución de páginas.
Segmentación
Definición
Es una técnica de gestión de memoria que pretende acercarse más al punto de vista del usuario. El programa y sus datos asociados se dividen en un conjunto de segmentos. No es necesario que todos los segmentos de todos los programas tengan la misma longitud, aunque existe una longitud máxima de segmento. Como en la paginación, una dirección lógica segmentada consta de dos partes, en este caso un número de segmento y desplazamiento.
Características
-Memoria principal no particionada
-Los segmentos de memoria son especificados por el programador al compilador
-sin fragmentación interna
-El sistema operativo debe mantener una tabla de segmentos por cada procesos mostrando las direcciones de cargas y la longitud de los segmentos
-El sistema operativo debe mantener una lista huecos en la memoria principal
Segmentos paginadas
Como su propio nombre lo indica, la segmentación paginada intenta aumentar lo mejor de los dos esquemas. La segmentación proporciona soporte directo a las regiones del proceso y la paginación permite un mejor aprovechamiento de la memoria y una base para construir un esquema de memoria virtual.