Está en la página 1de 12

SEGMENTACIÓN,

SEGMENTACIÓN
PAGINADA Y
REEMPLAZO DE
PÁGINAS

Pedro Rojas
INDICE
Segmentación
Segmentación paginada
Reemplazo de páginas
Referencias
SEGMENTACIÓN
Conceptualmente, el usuario ve su programa como un conjunto de segmentos
(módulos) de diferente tamaño, sin un orden estricto.
código (texto)
variables globales
pila de llamadas
variables locales y memoria dinámica (arena)
La Segmentación soporta la gestión de memoria en esos términos:
Los fragmentos del programa coinciden con las partes en que se separan
en memoria
Las direcciones del programa son tuplas:

Tabla de Segmentos

Cada entrada de la tabla consta de:


base : comienzo del segmento
límite: longitud del segmento

Características
Recolocación dinámica mediante la Tabla de Segmentos.
Compartición de segmentos
usando el mismo número
se mantiene una tabla de segmentos virtuales para
simplificar la compartición
Gestión a largo plazo
¿Dónde colocar los segmentos?
•First fit / best fit
¿Cómo evitar la fragmentación externa?
•Compactación

Fragmentación
No hay fragmentación interna
En este método hay que buscar huecos de tamaño variable.Hay que aplicar
algún algoritmo de selección (first-fit, best-fit)
La segmentación produce fragmentación externa.
1. Para reducirla se puede aplicar compactación.
2. Otra forma de reducirla es definir segmentos del tamaño ideal:
un segmento por programa (> fragmentación)
un segmento por instrucción (> tiempo de acceso)

Ejemplo:

Se tienen 3 segmentos (procedimientos, funciones, declaración de variables,)


numerados del 0 al 2. La tabla de segmentos tiene un componente por cada
segmento. La longitud del segmento 1 es 100 bytes y comienza en la
dirección 1000. Obtenga la dirección física de la referencia 20 en ese
segmento.
SEGMENTACIÓN PAGINADA
Aprovechar lo mejor de ambos métodos:
1. Segmentación para protección y compartición
2. Paginación para evitar fragmentación
Los segmentos se dividen en páginas.
1. Aparece la fragmentación interna de nuevo
Hacen falta dos pasos de traducción de direcciones
Cada segmento tiene su propia Tabla de Páginas.

Ejemplo:
Se tiene un sistema que usa segmentos de 100 Bytes y Páginas de 10 Bytes. Se
tiene una dirección referenciada de 223.
Solución:

Para ejercicios, invente direcciones lógicas y repita el proceso


REEMPLAZO DE PÁGINAS
Con el uso del método de paginación se puede llegar a saturar la memoria si se
incrementa demasiado el nivel de multiprogramación. Por ejemplo, si se corren
seis procesos, cada uno con un tamaño de diez páginas de las cuales en
realidad sólo utiliza cinco, se tiene un mayor uso del CPU y con marcos de sobra.
Pero pudiera suceder que cada uno de esos procesos quiera usar las diez
páginas resultando en una necesidad de 60 marcos, cuando solo hay 40
disponibles, por ejemplo.
Esto provoca sobre-asignación y mientras un proceso de usuario se está
ejecutando, ocurre un fallo de página. El hardware se bloquea con el sistema
operativo, el cual verifica en sus tablas internas y detecta que es un fallo de
página y no un acceso ilegal de memoria. El sistema operativo determina si la
página está residiendo en disco, pero también determina que no hay marcos de
memoria disponibles en la lista de marcos libres.
Al ocurrir el fallo de página, el sistema operativo debe elegir una página para
retirarla de la memoria y usar el espacio para la página que se necesita para
desbloquear el sistema y que el hardware pueda seguir trabajando. Si la página
por eliminar de la memoria fue modificada, se debe volver a escribir al disco para
mantener la información actualizada; de lo contrario, si la página no fue
modificada no es necesario rescribir la información a disco y la página que se
carga simplemente se escribe sobre la página a borrar en memoria.
Se elimina de la memoria principal una página que no esté en uso y se
reemplaza por una página de la cual el sistema operativo tiene necesidad de uso.

Algoritmos de Reemplazo

Algoritmo aleatorio

Obvio

Algoritmo de reemplazo de páginas óptimo

Este algoritmo debe de tener el menor índice de fallos de página de todos los
algoritmos. En teoría, este algoritmo debe reemplazar la página que no va a ser
usada por el periodo más largo de tiempo.
Desafortunadamente, el algoritmo de reemplazo óptimo es fácil en teoría, pero
prácticamente imposible de implementar, dado que requiere conocer a futuro las
necesidades del sistema. Tal algoritmo existe y ha sido llamado OPT o MIN, pero
se usa únicamente para estudios de comparaciones.

Ejemplo:

Dada la tira de referencia 11134531722357, aplique Óptimo para reemplazar


páginas. Se tienen 3 bloques de memoria disponible

Primero: se elimina las secuencias de una misma página.

La X significa: fallo o falta de página. Ocurre cuando una página solicita


servicio y debe ubicarse la página en memoria. Entonces el número de faltas
para el ejemplo fue igual a 7.
Explicación:
Ubico las páginas 1, 3 y 4 porque hay bloques (Marcos disponibles)
La página 5 entra al final de la cola, saco a 4 porque en un futuro no la voy
a usar.
Las páginas 3 y 1 ya están en memoria.
Ubico la página 7 sacando a 1 porque no la necesito en un futuro. Saco
ahora a 7 y coloco a 2.
Las páginas 3 y 5 ya están en memoria.
Ubico a la página 7, saco a 3. Aplico FIFO.

Algoritmo de reemplazo de páginas según el uso no tan reciente


(LRU)
A pesar de que este algoritmo no es el óptimo, es fácil de implementar y de
comprender y con mucha frecuencia es el más adecuado. Trabaja sobre el
pasado reciente. Saca a la página que menos usada recientemente.

Ejemplo:
Dada la tira de referencia 11134531722357, aplique LRU para
reemplazar páginas. Se tienen 3 bloques de memoria disponibles.

Elimine las referencias repetidas en forma consecutiva, pero deje una.

Aplique la explicación siguiente a la solución del problema, ¿estará


bien?

El número de faltas para el ejemplo debe ser igual a 10.

Explicación:
 1, 3 y 4 pasan, hay bloques disponibles.
 Ubicamos a 5 al final, sacamos a 1, es la menos recientemente
usada.
 No hay necesidad de ubicar, ya está.
 Ubicamos 1 al final, sacamos a 4 porque entre 3, 4 y 5, 4 es el menos
recientemente usado.
 Ubicamos a 7 al final, sacamos a 5.
 Ubicamos a 2 al final, sacamos a 3.
 Ubicamos a 3 al final, sacamos a 1.
 Ubicamos a 5 al final, sacamos a 2.
 Ubicamos a 7 al final, sacamos a 2.

Algoritmo de reemplazo "Primero en entrar, primero en salir" (FIFO)

El algoritmo más sencillo para reemplazo de páginas es el FIFO. Este algoritmo


asocia a cada página el momento en que ésta fue traída a memoria. Cuando una
página debe ser reemplazada se selecciona a la más antigua.
No es estrictamente necesario registrar el momento de entrada de la página a
memoria, sino que se puede crear una cola en la que se van agregando las
páginas conforme van llegando a la memoria. Cuando se debe eliminar una
página, se selecciona la que está al frente de la lista (o sea, la más antigua de la
lista). Cuando llega una página nueva, se inserta en la parte trasera de la cola.
Ejemplo:

Dada la tira de referencia 11134531722357, aplique Óptimo para reemplazar


páginas. Se tienen 3 bloques de memoria disponible

Primero: se elimina las secuencias de una misma página.

Entonces el número de faltas para el ejemplo fue igual a 7.


REFERENCIAS
Boscán Nestor. 1990. Notas de Sistemas Operativos. UNISYS
Tenenbaum, Andrew. 2003. Sistemas Operativos Modernos. Prentice Hall
Carretero, Jesús. García, Félix. Anasagasti, Pedro. Pérez, Fernando. 2007.
Sistemas Operativos, una visión aplicada.McGraw-Hill
Casillas, Arantza. Iglesias, Luis. 2007. Sistemas Operativos, ejercicios resueltos.
Prentice Hall
Stallings, William. 2007. Sistemas Operativos, aspectos internos y principios de
diseño. Prentice Hall
Dhamdhere, D. 2008. Sistemas Operativos, un enfoque basado en conceptos.
McGraw-Hill
Silberschatz. Galvin. Gagne. 2006. Fundamentos de Sistemas Operativos.
McGraw-Hill

También podría gustarte