Fragmentación, segmentación y paginación bajo demanda en sistemas operativos
Resumen
El documento explica cómo se gestiona la memoria en sistemas operativos, desde los tipos de fragmentación y la compactación como solución a la fragmentación externa, hasta la segmentación con tablas de segmentos. También describe la paginación bajo demanda, el manejo de fallos de página y el fenómeno de la sobrepaginación. Al leerlo, el estudiante comprenderá cómo el sistema asigna y reubica la memoria de los procesos.
Puntos clave
- La fragmentación externa aparece cuando hay espacio libre total suficiente pero no contiguo; la interna se produce cuando el bloque asignado es mayor que lo que necesita el proceso.
- La compactación mueve el contenido de la memoria para agrupar el espacio libre, pero solo es posible si la reubicación es dinámica y se realiza en tiempo de ejecución.
- En la segmentación, cada dirección lógica es un par nombre de segmento y desplazamiento, que la tabla de segmentos traduce a una dirección física mediante la base y el límite.
- En la paginación bajo demanda solo se cargan en memoria las páginas necesarias, y el bit de validez indica si una página es legal y está en memoria.
- Ante un fallo de página se verifica la validez de la referencia, se carga la página en un marco libre, se actualizan las tablas y se reinicia la instrucción interrumpida.
- La sobrepaginación es una tasa de fallos de página tan alta que el proceso dedica más tiempo a paginar que a ejecutarse, por falta de marcos suficientes.
Fragmentación de Memoria
A medida que se cargan y eliminan procesos en la memoria, el espacio libre se descompone en fragmentos. Existen dos tipos principales de fragmentación:
- Fragmentación Externa: Aparece cuando hay suficiente espacio total para satisfacer una solicitud, pero los espacios no son contiguos.
- Fragmentación Interna: Ocurre cuando se asigna a un proceso un bloque de memoria mayor al que necesita. La diferencia entre el tamaño del bloque asignado y el tamaño del proceso es la fragmentación interna.
Solución a la Fragmentación Externa: Compactación
La compactación es una técnica que busca solucionar la fragmentación externa. Consiste en mover el contenido de la memoria con el fin de situar toda la memoria libre de manera contigua, formando un único bloque de gran tamaño. Sin embargo, no podemos utilizar esta solución si la reubicación es estática y se lleva a cabo en tiempo de ensamblado o de carga. Sí es posible si la reubicación es dinámica y se realiza en tiempo de ejecución.
Si se tiene un espacio libre con una cantidad determinada de bytes y un proceso solicita una capacidad aproximada a ese tamaño, no igual, se le puede asignar memoria, aunque el proceso sea ligeramente superior a la memoria solicitada. La diferencia entre esos dos valores es la fragmentación interna.
Segmentación de Memoria
La segmentación es un esquema de gestión de memoria en el que un espacio lógico de direcciones se considera una colección de segmentos. Cada segmento tiene un nombre y una longitud. Las direcciones especifican el nombre del segmento y el desplazamiento dentro de él. El usuario especifica cada dirección proporcionando el nombre del segmento y el desplazamiento.
La tabla de segmentos se utiliza para llevar a cabo el mapeo de las direcciones bidimensionales definidas por el usuario sobre las direcciones físicas unidimensionales. Cada entrada en la tabla de segmentos tiene una dirección base del segmento y un límite de segmento. La dirección base contiene la dirección física inicial donde se encuentra el segmento en memoria, y el límite especifica la longitud del segmento.
Paginación bajo Demanda
En la paginación bajo demanda, solo se cargan las páginas que son necesarias cuando se solicitan durante la ejecución del programa. Las páginas que no son accedidas nunca estarán cargadas en la memoria física. Para diferenciar las páginas que son necesarias, se usa el bit de validez. Si el bit es válido, la página es legal y está en memoria; si es inválido, o bien la página no está en el espacio lógico de direcciones o es válida pero está en disco.
Si un proceso no accede a una página inválida, no ocurre nada. Sin embargo, si accede, se produce una interrupción de fallo de página. El procedimiento para manejar el fallo de página es el siguiente:
- Comprobar la tabla interna correspondiente al proceso para determinar si la referencia era un acceso válido o inválido.
- Si es inválida, terminar el proceso. Si es válida pero no fue cargada, se procede a cargarla.
- Localizar un marco libre.
- Leer la página en el marco recién asignado.
- Una vez completada la lectura, se modifica la tabla interna y la tabla de páginas para indicar que la página se encuentra en memoria.
- Reiniciar la instrucción interrumpida.
Sobrepaginación
La sobrepaginación ocurre cuando un proceso invierte más tiempo implementando mecanismos de paginación que en la propia ejecución del proceso. Si un proceso no tiene el número de marcos que necesita para soportar las páginas que se están usando activamente, generará fallos de página. En ese momento, deberá sustituir alguna página y, al estar todas usándose, se ve forzado a sustituir una página que va a volver a necesitar enseguida. Esto genera sucesivamente fallos de página, sustituyendo páginas que necesitará inmediatamente. Esta alta tasa de paginación se denomina sobrepaginación.
Descargar
PDF Word HTMLPreguntas frecuentes
¿Qué es la fragmentación interna?
Es la diferencia entre el tamaño del bloque de memoria asignado a un proceso y el tamaño que el proceso realmente necesita. Se produce cuando se asigna un bloque mayor al requerido.
¿Cuándo se puede aplicar la compactación?
Solo cuando la reubicación es dinámica y se realiza en tiempo de ejecución. No es posible si la reubicación es estática, es decir, en tiempo de ensamblado o de carga.
¿Qué ocurre cuando se produce un fallo de página?
El sistema comprueba si la referencia es válida, carga la página en un marco libre, actualiza las tablas y reinicia la instrucción interrumpida. Si la referencia es inválida, el proceso termina.
Ponte a prueba
Tarjetas de repaso
Pulsa una tarjeta para ver la respuesta.
Test
Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.