Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Administración de Memoria
2da parte
1 de 25
Sistemas Operativos I
Fallos de página
2 de 25
Sistemas Operativos I
Algoritmos de Reemplazo de Páginas
3 de 25
Sistemas Operativos I
Algoritmo de reemplazo de páginas óptimo
4 de 25
Sistemas Operativos I
Algoritmo de reemplazo de páginas:
No usadas recientemente NRU (Not Recently Used)
El SO debe recolectar estadísticas sobre el uso de páginas. Se
establecen dos bits de estado asociados a cada página:
◦ R = 1 cada vez que se hace referencia
a la página (lectura o escritura)
◦ M =1 se establece cuando se escribe
en la página (es decir, se modifica).
Estos bits se deben actualizar en cada referencia a la memoria
Cuando ocurre un fallo de página, el SO inspecciona todas las páginas
y las divide en 4 categorías con base en los valores actuales de sus
bits R y M
◦ Clase 0: no ha sido referenciada, no ha sido modificada.
◦ Clase 1: no ha sido referenciada, ha sido modificada.
◦ Clase 2: ha sido referenciada, no ha sido modificada.
◦ Clase 3: ha sido referenciada, ha sido modificada.
El algoritmo NRU elimina una página al azar de la clase de menor
numeración que no esté vacía
Es fácil de comprender, moderadamente eficiente de implementar y
proporciona un rendimiento que, aunque no es óptimo, puede ser
5 de 25
adecuado Sistemas Operativos I
Algoritmo de reemplazo de páginas:
Primera en entrar, primera en salir (FIFO)
6 de 25
Sistemas Operativos I
Algoritmo de reemplazo de páginas:
Segunda oportunidad
Es una modificación simple al algoritmo FIFO
Evita el problema de descartar una página de uso frecuente
inspeccionando el bit R de la página más antigua. Si es 0, la
página es antigua y no se ha utilizado, por lo que se sustituye de
inmediato. Si el bit R es 1, el bit se borra, la página se pone al final
de la lista de páginas y su tiempo de carga se actualiza, como si
acabara de llegar a la memoria.
Después la búsqueda continúa.
Páginas ordenadas
con base a FIFO
(b) Lista de páginas si
ocurre un fallo de
página en el tiempo 20
y A tiene su bit R
activado. Los números
encima de las páginas
son sus tiempos de
carga
7 de 25
Sistemas Operativos I
Algoritmo de reemplazo de páginas: Clock (Reloj)
8 de 25
Sistemas Operativos I
Algoritmo de reemplazo de páginas:
Menos usadas recientemente (LRU Least Recently Used)
Aproximación al algoritmo óptimo: descartar la página que no se haya utilizado
durante la mayor longitud de tiempo.
Es necesario mantener una lista enlazada de todas las páginas en memoria, con
la página de uso más reciente en la parte frontal y la de uso menos reciente en la
parte final. La lista debe actualizarse en cada referencia a memoria.
¨Puede implementarse por hardware y por software:
n marcos
matrices de n x n
Si se referencia la
página k:
Fila k “1”
Luego
Columna k “0”
Elimina la fila de
menor valor
LRU usando una matriz cuando se hace referencia a las páginas 9 de 25
en el orden 0, 1, 2, 3, 2, 1, 0, 3, 2, 3. Sistemas Operativos I
Algoritmo de reemplazo de páginas:
No Utilizadas frecuentemente (NFU)
LRU por software. Este algoritmo requiere un contador de software asociado con cada página, que al
principio es cero.
En cada interrupción de reloj, el sistema operativo explora todas las páginas en memoria. Para cada
página se agrega el bit R, que es 0 o 1, al contador. Los contadores llevan la cuenta aproximada de la
frecuencia con que se hace referencia a cada página.
Cuando ocurre un fallo de página, se selecciona la página con el contador que sea menor para sustituirla.
En el algoritmo de envejecimiento los contadores tienen un número finito de bits (8 en este ejemplo), lo
cual limita su horizonte pasado.
10 de 25
Algoritmo de envejecimiento - Se muestran seis páginas para cinco pulsos de reloj Sistemas Operativos I
Algoritmo de reemplazo de páginas:
Conjunto de trabajo
Los procesos inician sin ninguna de sus páginas en la memoria – forma pura de paginación.
Cuando la CPU trata de obtener la primera instrucción, recibe un fallo de página. El SO tiene que
traer la página que contiene la primera instrucción. A este fallo le siguen otros fallos de página por
las variables globales y la pila.
Después de cierto tiempo, el proceso tiene la mayoría de las páginas que necesita y se establece
para ejecutarse con relativamente pocos fallos de página
Es decir que las páginas se cargan sólo según la demanda, no por adelantado.
El conjunto de páginas que utiliza un proceso en un momento dado se conoce como su conjunto de
trabajo
Si todo el conjunto de trabajo está en memoria, el proceso se ejecutará sin producir muchos fallos
hasta que avance a otra fase de ejecución.
Si la memoria disponible es demasiado pequeña como para contener todo el conjunto de trabajo
completo, el proceso producirá muchos fallos de página y se ejecutará lentamente, ya que para
ejecutar una instrucción se requieren varios neg y para leer una página del disco se requieren
algunos mseg
El conjunto de trabajo varía lentamente con el tiempo, es posible realizar una predicción razonable y
cargar páginas antes de reanudar el proceso, esto se llama prepaginación.
El SO debe llevar la cuenta de cuáles páginas están en el conjunto de trabajo. Esto nos conduce a
un posible algoritmo de reemplazo de páginas: cuando ocurra un fallo de página, hay que buscar11 de 25
una página que no se encuentre en el conjunto de trabajo y desalojarla. Sistemas Operativos I
Algoritmo de reemplazo de páginas:
Conjunto de trabajo
Tiempo virtual actual: es la cantidad de tiempo de la CPU que ha utilizado un proceso desde
que empezó. El conjunto de trabajo de un proceso es el conjunto de páginas a las que se ha 12 de 25
hecho referencia durante los últimos τ segundos de tiempo virtual. Sistemas Operativos I
Algoritmo de reemplazo de páginas: WSClock
Sumario
16 de 25
Sistemas Operativos I
Segmentación
programa principal,
procedimiento,
función,
método,
objeto,
variables locales, variables globales,
bloque común,
pila,
tabla de símbolos,
arrays
19 de 25
Sistemas Operativos I
Segmentación
Ejemplo 20 de 25
Sistemas Operativos I
Segmentación
Implementación 21 de 25
Sistemas Operativos I
Segmentación paginada
25 de 25
Sistemas Operativos I