Gestión de Memoria y Archivos: Paginación, Segmentación y Memoria Virtual
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 4,5 KB
Opciones de Implementación de la Tabla de Páginas (Paginación)
La tabla de páginas se implementa completamente en hardware. La ventaja es que se obtiene una alta velocidad de acceso a memoria, y su desventaja es que resulta problemática cuando la tabla de páginas debe ser grande.
Segmentación/Paginación
Tanto la segmentación como la paginación ofrecen ventajas significativas. Algunos sistemas (como Multics y la serie 370 de IBM) combinan ambas técnicas, donde los segmentos tienen un tamaño múltiplo de página. Este método utiliza la segmentación y paginación en un proceso que funciona de la siguiente forma:
Se hace la solicitud de acceso por medio de una dirección, la cual contiene los campos: segmento, página y desplazamiento. Con el campo segmento, se accede a una tabla de segmentos. Cada entrada de dicha tabla apunta directamente a la tabla de páginas asignadas para ese segmento, conteniendo una dirección que será sumada a una dirección en la tabla asociativa para formar una dirección real con el desplazamiento de los campos.
Segmentos en MS-DOS
Si un programa trata de asignar un bloque de memoria de cierto tamaño, MS-DOS busca un bloque apropiado. Si lo encuentra, lo modifica para que pertenezca al proceso solicitado.
Si el bloque es demasiado grande, MS-DOS lo divide en un bloque asignado y un nuevo bloque libre. Cuando un programa libera un bloque de memoria, MS-DOS lo modifica para indicar que está disponible. Cuando un programa reduce la cantidad de memoria que necesita, MS-DOS crea un nuevo bloque de control de memoria para la memoria liberada.
Tipos de Segmentos
- Segmento de Datos: En él solo se puede leer y escribir datos, pero no se pueden ejecutar códigos de programa.
- Segmento de Código: A diferencia del segmento de datos, en este sí se puede ejecutar código, pero no se puede leer ni escribir.
- Segmento del Sistema: Describe diferentes tipos de segmentos y todos ellos sirven para la gestión en modo protegido.
Memoria Virtual
Es un método mediante el cual un sistema operativo simula tener más memoria principal que la que existe físicamente. Para implementar la memoria virtual, se utiliza un medio de almacenamiento secundario de alta velocidad de acceso, generalmente el disco duro de la máquina.
Esquema Básico de Memoria Virtual
Un sistema de memoria virtual se implementa utilizando paginación como método de administración de memoria básica, junto con algún mecanismo de intercambio para descargar páginas de la memoria principal hacia el disco duro y para cargar estas páginas de nuevo en la memoria.
Métodos para Cargar Programas en Memoria
Existen dos métodos para cargar programas en memoria:
- Paginación por Demanda: Consiste en iniciar la ejecución de los procesos sin páginas cargadas. Estas se irán cargando conforme el proceso las demande.
- Prepaginación: Consiste en que el sistema operativo predice cuáles páginas se ocuparán durante la ejecución del proceso y las carga anticipadamente.
Algoritmos de Reemplazo de Páginas
Se utilizan para determinar cuáles páginas serán descargadas hacia el disco duro cuando se quieran cargar páginas nuevas y no haya memoria libre. Existen tres algoritmos básicos:
- Algoritmo MIN: Consiste en descargar la o las páginas que no se necesitarán en el periodo de tiempo más largo en el futuro. Esta implementación no aplica en sistemas reales ya que requiere conocimiento futuro.
- Algoritmo FIFO (First-In, First-Out): Consiste en tener un contador de tiempo en cada página para descargar las más antiguas o las que llevan más tiempo en memoria.
- Algoritmo LRU (Least Recently Used): Consiste en descargar las páginas menos usadas recientemente. Traduciéndose, usa el pasado para predecir el futuro. Este algoritmo lo utiliza Windows, entre otros sistemas.
Sistema de Gestión de Archivos (File Management Systems)
Un sistema de gestión de archivos es aquel software que provee servicios a los usuarios y aplicaciones en el uso de archivos, siendo el último camino del usuario para acceder a los archivos. Esto implica para el usuario o programador la necesidad de desarrollar software de propósito especial para cada aplicación y proveer al sistema un medio de controlar su función.