Sistemas Operativos [Administración de la memoria]

Anuncio
Sistemas Operativos [Administración de la memoria]
M. en C. Sergio Luis Pérez Pérez
UAM C UAJIMALPA , M ÉXICO, D. F.
Trimestre 13-O
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
1 / 56
La memoria básica
La memoria básica I
La mayorı́a de las computadoras tienen una jerarquı́a de
memoria.
La jerarquı́a de memoria se refiere a la organización piramidal
de la memoria en niveles.
El objetivo es conseguir el rendimiento de una memoria de gran
velocidad al costo de una memoria de baja velocidad.
Lo anterior se logra con base en el principio de cercanı́a de
referencias.
La cercanı́a de referencias es el agrupamiento de las lecturas de
memoria por medio del procesador.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
2 / 56
La memoria básica
La memoria básica II
La cercanı́a de referencias permite que los programas que
cuentan con un cierto número de ciclos y subrutinas iterativas
produzcan referencias repetidas que consideren un pequeño
conjunto de instrucciones.
Las agrupaciones de uso con el tiempo son variables, pero son
fijas dentro de perı́odos cortos de tiempo.
También, permite que un programa en ejecución no necesite
todas sus páginas cargadas en la memoria principal.
Con esto es posible tener más procesos en memoria listos para
correr y no se tienen que cargar y descargar sus páginas en el
momento de un intercambio.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
3 / 56
La memoria básica
La memoria básica III
La localidad de las referencias (principio de localidad),
basándose en el pasado reciente de un programa, permite
predecir qué instrucciones y datos se utilizarán en un futuro.
Se dividen en tres grupos:
Localidad temporal. Cuando una posición de memoria es
referenciada, entonces muy probablemente la misma ubicación
vuelva a ser referenciada en un futuro cercano.
Localidad espacial. Si una localización de memoria es
referenciada en un momento concreto, probablemente las
localizaciones cercanas a ella sean también referenciadas pronto.
Localidad secuencial. Las direcciones de memoria que se están
utilizando suelen ser contiguas.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
4 / 56
La memoria básica
La memoria básica IV
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
5 / 56
La memoria básica
La memoria básica V
La parte del sistema operativo que administra la jerarquı́a de
memoria se llama administrador de memoria.
Las funciones del administrador de memoria son:
Determinar cuáles partes de la memoria están en uso y cuáles no.
Asignar memoria a los procesos cuando la necesitan y liberarla
cuando terminan.
Administrar los intercambios entre la memoria principal y el disco.
A continuación se describen algunos mecanismos para la
administración de la memoria.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
6 / 56
La memoria básica
La memoria básica VI
Mono-programación sin intercambio ni paginación
Consiste en ejecutar un sólo programa a la vez, repartiendo la
memoria entre ese programa y el sistema operativo.
Hay tres enfoques:
1
El SO estaba en la parte más baja de la RAM y en lo demás un
programa de usuario (mainframes y minicomputadoras antiguas).
2
El SO estaba en la ROM y un programa de usuario en RAM
(sistemas integrados).
3
Los controladores en la parte más alta de la ROM y el resto del
sistema en la parte más baja de la RAM (la parte del sistema que
estaba en ROM era el BIOS).
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
7 / 56
La memoria básica
La memoria básica VII
Multiprogramación con particiones fijas
La multiprogramación permite la ejecución de varios procesos a la
vez.
Si un proceso se bloquea en espera de una operación de E/S,
entonces otro puede usar el procesador al mismo tiempo.
Una forma sencilla de multiprogramación consiste en dividir la
memoria en n particiones no necesariamente iguales.
Dicha partición puede realizarse de forma manual al arrancar el
sistema.
Cuando llega un trabajo éste se coloca en la partición más
pequeña que cabe.
Con este método hay parte de la memoria que se desperdicia.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
8 / 56
La memoria básica
La memoria básica VIII
Estrategias para la multiprogramación con particiones fijas
1
Se crea una cola por cada partición de la memoria, donde se
encuentran esperando los procesos que caben en ella
2
Se crea una cola para todos los procesos y cada uno de ellos es
colocado en la partición disponible mas pequeña en la que cabe.
3
Teniendo una sola cola, ésta es analizada y se elige al programa
más grande que cabe en cada partición disponible.
4
Para evitar la discriminación de procesos se establece un lı́mite
en el número de veces que se puede ignorar un proceso.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
9 / 56
La memoria básica
La memoria básica IX
Modelado de la multiprogramación
Una forma de modelar la multiprogramación es de forma
probabilı́stica.
Sea p la fracción de su tiempo que un proceso espera a que
terminen operaciones de E/S.
Si hay n procesos en la memoria la probabilidad de que todos
estén esperando a la vez es pn .
El aprovechamiento del procesador (AP) está dado entonces por
la fórmula:
AP = 1 − pn
El aprovechamiento de un procesador está en función de n que
se conoce como grado de multiprogramación.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
10 / 56
La memoria básica
La memoria básica X
Ejercicio
Suponga que una computadora tiene 64 MB de memoria de los
cuales 32 MB son ocupados por el SO.
Supongamos que cualquier programa de usuario utiliza 8 MB.
Si la espera media de un proceso en operaciones E/S es el 80 %.
¿Cuál es el AP de dicha computadora?
¿Cual serı́a el AP de esta computadora si incrementamos la
memoria en 32 MB?
¿Cuánta memoria debe ser agregada si deseamos obtener un AP
de 90 %?
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
11 / 56
La memoria básica
La memoria básica XI
Con la multiprogramación se deben resolver dos problemas
importantes: la reubicación y la protección.
La reubicación se refiere al problema de reubicar las direcciones
absolutas de un programa (indicadas en el archivo binario) en
direcciones relativas (considerando la partición donde es
colocado el programa).
Una solución es modificar las instrucciones en el momento que el
programa se carga en la memoria.
Por ejemplo si el programa se carga en la partición que inicia en
la posición 100 KB entonces se suman 100 KB a cada una de las
direcciones mencionadas en el.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
12 / 56
La memoria básica
La memoria básica XII
La protección se refiere al problema de evitar que programas mal
intencionados escriban y lean de la memoria perteneciente a
otros usuarios.
Una solución es utilizar dos registros especiales de hardware:
base y lı́mite.
En el registro base se carga la dirección de inicio de la partición
asignada a un proceso calendarizado.
El registro lı́mite se carga con la longitud de la partición.
El registro lı́mite se encarga de verificar que las direcciones
utilizadas por el programa no intenten hacer acceso a memoria
fuera de la partición actual.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
13 / 56
Administración de memoria
Administración de memoria
Cuando no hay suficiente memoria principal para contener a
todos los procesos activos se acostumbra tener a los procesos
excedentes en disco.
Existen dos enfoques generales para realizar esta administración
de memoria: el intercambio (swapping) y la memoria virtual.
El intercambio es un enfoque que consiste en traer a la memoria
un proceso, ejecutarlo un tiempo y devolverlo a disco.
La memoria virtual permite que los programas se ejecuten
aunque sólo una parte de ellos este en memoria la principal.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
14 / 56
Administración de memoria
Intercambio (swapping)
Intercambio (swapping) I
Cuando se realiza intercambio en una máquina con memoria con
particiones fijas el intercambio es sencillo pues las direcciones de
las particiones no cambian.
Si la memoria se administra mediante particiones variables el
problema es que las direcciones de las particiones cambian
constantemente.
La ventaja de las particiones fijas es que la administración es
sencilla pero el desperdicio es grande.
La ventaja de las particiones variables es que el desperdicio es
mı́nimo pero la asignación y liberación de memoria es complicado
y lento.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
15 / 56
Administración de memoria
Intercambio (swapping)
Intercambio (swapping) II
Se puede utilizar la técnica de compactación de memoria para
ayudar a administrar la memoria durante los intercambios.
Dicha técnica se utiliza cuando se crean huecos durante el
intercambio.
La compactación de memoria permite unir tales huecos en uno
sólo más grande, tal que los procesos activos son desplazados
hacia una ubicación.
Por otro lado si se conoce de antemano la cantidad de memoria a
asignar a un proceso el intercambio es sencillo.
Si la cantidad de memoria que puede manejar un proceso es
variable entonces puede ocurrir lo siguiente:
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
16 / 56
Administración de memoria
Intercambio (swapping)
Intercambio (swapping) III
Si existe espacio adyacente libre entonces éste es asociado a el
proceso.
Si no existe espacio adyacente libre pero existe un espacio
disponible que lo soporte entonces se mueve el proceso.
Si ya no hay espacio disponible (ni en la memoria ni en disco) el
proceso tendrá que esperar o terminar.
Cuando los procesos tienen dos segmentos diferentes capaces
de crecer (datos y pila) se puede utilizar una organización tal que
ambos segmentos puedan crecer dentro de un espacio
previamente reservado.
Existen dos formas de administración de memoria basadas en
intercambio: con mapas de bits y con listas ligadas.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
17 / 56
Administración de memoria
Intercambio (swapping)
Intercambio (swapping) IV
Administración de memoria con mapas de bits
Un mapa de bits divide la memoria en unidades de asignación y
asigna un 1 a las unidades ocupadas y 0 a las desocupadas.
Si el número de unidades de asignación es grande entonces se
requiere un mapa de bits costoso.
Si el número de unidades de asignación es pequeño el mapa de
bits es barato.
¿Qué es mejor, tener muchas unidades de asignación o tener
pocas?
El problema de los mapas de bits son las búsquedas de espacio.
Para un proceso que requiere k unidades se requiere un método
de búsqueda de k unidades consecutivas disponibles.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
18 / 56
Administración de memoria
Intercambio (swapping)
Intercambio (swapping) V
Administración de memoria con listas ligadas
Se mantiene una lista ligada con cuatro campos:
Tipo de entrada. H para hueco y P para proceso.
La dirección donde comienza. Que es la suma de las longitudes
de sus predecesores.
La longitud. Longitud de la memoria asignada al proceso o hueco.
Un apuntador a la siguiente entrada.
¿Que ocurre con la estructura cuando un proceso X termina de
ejecutarse?
Pista: Existen 4 casos (A,X,B), (A,X,H), (H,X,B), (H,X,H).
¿Ayudarı́a la organización en forma de lista doblemente ligada?
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
19 / 56
Administración de memoria
Intercambio (swapping)
Intercambio (swapping) VI
Algoritmos de administración de memoria con listas ligadas
Primer ajuste. Se explora la lista hasta encontrar un espacio
donde quepa el proceso.
Siguiente ajuste. Se explora la lista pero continuando donde se
quedó la búsqueda anterior.
Mejor ajuste. Se explora toda la lista y se elige el tamaño más
adecuado.
Peor ajuste. Se elige siempre el tamaño más grande.
Ajuste rápido. Mantiene listas de los tamaños más solicitados en
forma común.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
20 / 56
Administración de memoria
La memoria virtual
La memoria virtual I
Éste método fue ideado por Fotheringham en 1961.
Esta idea surge de considerar que el tamaño combinado de un
programa, sus datos y su pila pueden exceder la memoria fı́sica.
De este modo se mantiene en memoria principal la parte del
programa en ejecución y en disco el resto.
La paginación es la forma más común de administración para la
memoria virtual.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
21 / 56
Administración de memoria
La memoria virtual
La memoria virtual II
Paginación I
Cuando se escribe un programa, éste realiza operaciones de
escritura y lectura a memoria.
Sin embargo en lugar de escribir sobre la memoria fı́sica la
mayorı́a de los sistemas escriben en una memoria virtual.
De modo que las direcciones generadas por un programa se
conocen como direcciones virtuales.
Las direcciones virtuales viven en lo que se conoce como
espacio de direcciones virtual.
Cuando se utiliza memoria virtual las direcciones no se van de
forma directa al bus de memoria.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
22 / 56
Administración de memoria
La memoria virtual
La memoria virtual III
Paginación II
Las direcciones virtuales son administradas por una unidad de
administración de memoria (MMU Memory Management Unit).
El espacio de direcciones se divide en unidades llamadas
páginas.
Las unidades en la memoria fı́sica que les corresponden a las
páginas se denominan marcos de páginas.
Se utiliza una tabla de páginas que mantiene la relación entre
las direcciones virtuales y la memoria fı́sica.
Las unidades de las páginas y de los marcos de páginas son
siempre del mismo tamaño.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
23 / 56
Administración de memoria
La memoria virtual
La memoria virtual IV
Paginación III
La memoria virtual permite que un programa de 128 MB pueda
ser ejecutado en un sistema con 64 MB.
No todas las páginas tienen correspondencia con un marco de
página en todo momento.
Un fallo de página es cuando un programa trata de usar una
página que no tiene correspondencia en memoria fı́sica.
El sistema resuelve los fallos de página de la siguiente manera:
Busca un marco de página poco utilizado y lo reescribe en el disco.
Va por la página que fue referenciada y la pone en el marco recién
desocupado.
Modifica el mapa y reinicia la instrucción interrumpida.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
24 / 56
Administración de memoria
La memoria virtual
La memoria virtual V
¿Cómo funciona la MMU? I
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
25 / 56
Administración de memoria
La memoria virtual
La memoria virtual VI
¿Cómo funciona la MMU? II
Supongamos que se desea procesar la dirección virtual 20818.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
26 / 56
Administración de memoria
La memoria virtual
La memoria virtual VII
Tablas de página
En términos de funciones la tabla de páginas es una función que
toma un una página virtual y devuelve una dirección fı́sica
(aunque quien hace la labor es la MMU).
Los principales problemas de las tablas de páginas son:
La tabla de páginas puede ser muy grande.
La transformación debe ser rápida.
Las computadoras modernas utilizan direcciones virtuales de al
menos 32 bits.
Si se consideran páginas de 4KB entonces un espacio de 32 bits
puede tener como un millón de páginas.
Por tanto la tabla de páginas debe tener un millón de entradas.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
27 / 56
Administración de memoria
La memoria virtual
La memoria virtual VIII
Tablas de página multinivel
Este tipo de tablas elimina el problema de almacenar enormes
tablas de páginas en la memoria.
Una forma de manejar direcciones virtuales de 32 bits es como
sigue:
Se utiliza un dirección virtual de 32 bits, dividida en tres registros
de 10(TN1), 10(TN2) y 12(desplazamiento) bits respectivamente.
Lo anterior significa que hay 220 páginas de 4KB cada una de ellas.
También se utiliza una tabla de Nivel 1 con 210 entradas y 210
tablas de Nivel 2 con 210 entradas cada una.
Suponga que un proceso requiere 12MB de memoria, divididos en
4MB para texto del programa, 4MB para datos y el resto para la
pila.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
28 / 56
Administración de memoria
La memoria virtual
La memoria virtual IX
Cómo opera la MMU las tablas de página multinivel
Del ejemplo anterior, primero la MMU toma primero el campo TP1
de la dirección virtual.
Ese valor sirve como ı́ndice para consultar la tabla de Nivel 1.
Cada entrada de la tabla de Nivel 1 representa 4MB (el espacio
total es de 4GB).
La entrada de la tabla de Nivel 1 proporciona el ı́ndice de la
correspondiente tabla de Nivel 2.
La entrada de Nivel 2 proporciona el número de marco donde se
encuentra la página.
¿Como se procesarı́a la dirección virtual 0x00403004?
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
29 / 56
Administración de memoria
La memoria virtual
La memoria virtual X
Estructura de una entrada de tabla de páginas
El campo más importante es el número de marco de página.
Después se encuentra el bit presente/ausente (A).
Luego siguen los bits de protección (P) que indican los tipos de
acceso que se encuentran permitidos.
Luego viene el bit modificada (M) que se enciende en automático
(vı́a hardware) cuando se escribe en una página.
Luego sigue el bit solicitada (R) que se enciende cuando se hace
referencia a una página.
Finalmente, el bit opcional uso de caché (C), habilita o deshabilita
el uso de caché para páginas que corresponden a registros.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
30 / 56
Algoritmos para el reemplazo de páginas
Algoritmos para el reemplazo de páginas I
Cuando ocurre un fallo de página el SO debe elegir la página a
sacar de la memoria y colocar la que traerá a disco.
Si la página a quitar fue modificada durante su estancia en
memoria esta debe ser reescrita en disco.
Finalmente se sobreescribe la página a reemplazar.
¿Qué página es la que debe ser reemplazada?
El mismo problema se presenta cuando se utiliza caché.
Para resolver esta pregunta a continuación se presentan diversos
algoritmos.
Algoritmo óptimo de reemplazo de páginas.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
31 / 56
Algoritmos para el reemplazo de páginas
Algoritmos para el reemplazo de páginas II
Algoritmo de reemplazo de páginas no utilizadas recientemente.
Algoritmo de reemplazo de páginas de PEPS (FIFO).
Algoritmo de reemplazo de páginas de segunda oportunidad.
Algoritmo de reemplazo de páginas tipo reloj.
Algoritmo de reemplazo de página menos utilizada recientemente.
Simulación de LRU en software.
Algoritmo de reemplazo de páginas de conjunto de trabajo.
Algoritmo de reemplazo de páginas WSClock.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
32 / 56
Algoritmos para el reemplazo de páginas
Algoritmos para el reemplazo de páginas III
Algoritmo óptimo de reemplazo de páginas
Suponga que cada página se rotula con el número de
instrucciones que se ejecutarán antes de que se haga referencia
a esa página.
Cuando ocurre un fallo de página lo ideal entonces es liberar la
página con el número más grande.
¿Por que no liberar la página con el número más pequeño?
¿El sistema operativo tiene forma de saber cuándo se volverá a
hacer referencia a cualquiera de las páginas?
¿Serı́a posible implementar este algoritmo? ¿Cómo?
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
33 / 56
Algoritmos para el reemplazo de páginas
Algoritmos para el reemplazo de páginas IV
Algoritmo de reemplazo de páginas no utilizadas recientemente
Supongamos que a cada página se encuentran asociados los bits
R y M.
Lo anterior da pie a categorizar las páginas como sigue:
Clase 0 0 0 No solicitada, no modificada
Clase 1 0 1 No solicitada, modificada
Clase 2 1 0 Solicitada, no modificada
Clase 3 1 1 Solicitada, Modificada
Cuando se presenta un fallo de página el SO examina todas las
páginas y elegirá al azar una de las páginas con la clase más
baja.
¿Cómo es posible que ocurra la clase 1? ¿Qué tienen que ver las
interrupciones?
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
34 / 56
Algoritmos para el reemplazo de páginas
Algoritmos para el reemplazo de páginas V
Algoritmo de reemplazo de páginas de PEPS (FIFO)
En este caso el SO mantiene una lista de todas las páginas que
están actualmente en memoria.
Además la lista está ordenada colocando la página más antigua
al principio de la lista y las más nueva al final.
Cuando ocurre un fallo de página se libera la página al principio
de la lista.
¿Qué problemas tiene este algoritmo?
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
35 / 56
Algoritmos para el reemplazo de páginas
Algoritmos para el reemplazo de páginas VI
Algoritmo de reemplazo de páginas de segunda oportunidad
Este algoritmo además de llevar la cuenta de la antigüedad de
cada página considera el bit R.
En el momento que ocurre un fallo de página, si la página que se
encuentra al principio de la lista tiene encendido el bit R entonces
se apaga el bit.
Después, dicha página se coloca al final de la lista como si fuera
una nueva página.
¿Qué significa el hecho de que el bit R de una página antigua se
encuentre encendido?
¿Que ocurre con éste algoritmo en el peor de los casos?
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
36 / 56
Algoritmos para el reemplazo de páginas
Algoritmos para el reemplazo de páginas VII
Algoritmo de reemplazo de páginas tipo reloj
Es similar al algoritmo anterior pero con la diferencia de que las
páginas no se cambian de ubicación.
En lugar de ello se mantiene un apuntador a la página más
antigua y éste se mueve en forma de manecillas del reloj.
Este algoritmo también se conoce como de cola circular.
Gráficamente, ¿cómo visualiza este método?
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
37 / 56
Algoritmos para el reemplazo de páginas
Algoritmos para el reemplazo de páginas VIII
Algoritmo de reemplazo de página menos utilizada recientemente I
Si una página se ha utilizado bastante recientemente
probablemente se siga utilizando durante las siguientes
instrucciones.
Un algoritmo factible consistirı́a en liberar la páginas que no se
han utilizado mucho recientemente.
Esta estrategia se conoce como LRU (Least recently used).
Una forma de implementarla serı́a utilizando un contador
hardware C digamos de 64 bits.
Además cada página tiene como entrada un campo de 64 bits
para almacenar el valor de dicho contador.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
38 / 56
Algoritmos para el reemplazo de páginas
Algoritmos para el reemplazo de páginas IX
Algoritmo de reemplazo de página menos utilizada recientemente II
Después de cada referencia a memoria el valor de C se almacena
en la entrada de la página referenciada.
La página con el contador más bajo es la menos utilizada
recientemente.
Otra implementación, también en hardware, serı́a utilizar una
matriz de tamaño nxn considerando que hay n marcos de página.
Cada que se utiliza la página i todas las columnas del renglón i
se activan y todas las filas de la columna i se pagan.
¿Cuáles son las ventajas y desventajas de ambas
implementaciones?
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
39 / 56
Algoritmos para el reemplazo de páginas
Algoritmos para el reemplazo de páginas X
Simulación de LRU en software I
Se pueden realizar dos implementaciones.
La primera implementación consiste en asociar un contador a
cada página e ir sumando el valor del bit R cada interrupción de
reloj.
Cuando ocurre un fallo de página se elige la página con el
contador más bajo.
El problema de este método es que no necesariamente se
consideran las páginas menos utilizadas recientemente para su
liberación.
¿Por qué puede ocurrir esta situación?
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
40 / 56
Algoritmos para el reemplazo de páginas
Algoritmos para el reemplazo de páginas XI
Simulación de LRU en software II
La segunda implementación también consiste en utilizar una
variable de página pero con un comportamiento diferente.
Con la segunda implementación ahora cada interrupción de reloj
se realiza un corrimiento a la derecha de cada variable de cada
marco de página.
El bit R se suma en la parte alta de la variable en lugar de en la
baja.
Cuando ocurre el fallo de página se libera la que tiene el menor
valor en su variable.
Las implementaciones suelen utilizar 8 bits si el tic de reloj ocurre
cada 20 milisegundos.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
41 / 56
Algoritmos para el reemplazo de páginas
Algoritmos para el reemplazo de páginas XII
Algoritmo de reemplazo de páginas de conjunto de trabajo I
Con este método todos los procesos comienzan sin tener páginas
en la memoria.
La primera instrucción ejecutada provoca un fallo de página y
según se requiere el proceso trae sus demás páginas a memoria.
A esta estrategia también se le conoce como paginación por
demanda.
Pocas veces los procesos referencı́an a todas sus páginas
durante su tiempo de ejecución, esto por el principio de localidad.
El conjunto de páginas que un proceso utiliza en un momento
dado se conoce como conjunto de trabajo.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
42 / 56
Algoritmos para el reemplazo de páginas
Algoritmos para el reemplazo de páginas XIII
Algoritmo de reemplazo de páginas de conjunto de trabajo II
Si el proceso no logra tener en memoria a todo su conjunto de
trabajo provocará demasiados fallos de página, lo que se conoce
como hiperpaginación.
Si se logra determinar cuál será el conjunto de trabajo de un
proceso entonces se puede utilizar la técnica de prepaginación.
Para implementar la técnica de prepaginación se suele utilizar un
valor por defecto k y cada vez que se carga un proceso debieron
haberse precargado las k referencias más recientes a la memoria.
Otro criterio es considerar sólo las páginas empleadas durante los
últimos X milisegundos de ejecución.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
43 / 56
Algoritmos para el reemplazo de páginas
Algoritmos para el reemplazo de páginas XIV
Algoritmo de reemplazo de páginas de conjunto de trabajo III
Sin embargo, la idea es desalojar páginas que no pertenecen al
conjunto de trabajo actual.
Para esto es necesario introducir dos conceptos:
Tiempo virtual. Es el tiempo de procesador utilizado por un
proceso desde que inició su ejecución.
Tiempo real. Es el tiempo total que lleva un proceso desde el inicio
de su ejecución.
Se fija un parámetro τ que considerará dentro del conjunto de
trabajo actual a todas aquellas páginas referenciadas en los
últimos τ segundos del tiempo virtual.
La decisión sobre desalojar una página al ocurrir un fallo se
decide en base a τ .
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
44 / 56
Algoritmos para el reemplazo de páginas
Algoritmos para el reemplazo de páginas XV
Algoritmo de reemplazo de páginas WSClock I
Es una combinación del algoritmo de conjunto de trabajo con el
algoritmo de reloj.
Se utiliza una lista en forma de anillo inicialmente vacı́a.
Además se necesitan considerar el bit R y el tiempo virtual de
vida de la página.
Cada que se necesita una página se añade a la lista.
La lista tendrá un lı́mite tan grande como el número de marcos
existentes.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
45 / 56
Algoritmos para el reemplazo de páginas
Algoritmos para el reemplazo de páginas XVI
Algoritmo de reemplazo de páginas WSClock II
Cuando ocurre un fallo primero se recorre la lista buscando los
marcos con el bit R = 0.
Si el bit es cero, entonces se checa su edad τ y si el valor es más
grande que τ entonces la página se calendariza para copiarse a
disco (si es que es requerido) o simplemente se libera.
Para reducir el tráfico a disco sólo se podrı́a considerar
calendarizar hasta n páginas.
¿Que ocurre si la manecilla da toda la vuelta y regresa a su punto
de partida?
1
2
Se pudo haber calendarizado al menos una escritura.
Pudieron no calendarizarse escrituras.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
46 / 56
Algoritmos para el reemplazo de páginas
Algoritmos para el reemplazo de páginas XVII
Algoritmo de reemplazo de páginas WSClock III
En el primer caso la manecilla sigue avanzando hasta que una de
las páginas calendarizadas quede limpia.
La primera página encontrada será reemplazada por la que se
requiere.
En el segundo caso quiere decir que todas las páginas caen en el
conjunto de trabajo.
Lo más sencillo será desalojar cualquier página limpia (con bit
M = 0).
Si ninguna página está limpia, entonces se debe calendarizar una
(cualquiera) para escribirse a disco y luego se desalojará.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
47 / 56
Aspectos de paginación y fallos de página
Aspectos de paginación y fallos de página I
¿Cuando ocurre la paginación?
Cuando se crea un proceso.
Cuando se ejecuta un proceso.
Cuando se presenta un fallo de página.
Cuando termina un proceso.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
48 / 56
Aspectos de paginación y fallos de página
Aspectos de paginación y fallos de página II
Cuando se crea un proceso
El SO operativo debe determinar que tamaño tendrá al principio el
programa y los datos.
Se crea una tabla de páginas para el programa y datos.
La tabla de páginas no debe estar residente mientras el proceso
esta en estado listo pero sı́ cuando se está ejecutando el proceso.
Además se le debe asignar algún espacio en disco para que en
los intercambios de páginas éstas tengan a donde ir.
Por último se registra en la tabla de procesos información acerca
de la tabla de páginas y del área de intercambio en disco.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
49 / 56
Aspectos de paginación y fallos de página
Aspectos de paginación y fallos de página III
Cuando se ejecuta un proceso
Se debe preparar la MMU para el nuevo proceso.
Se debe actualizar la tabla de páginas del nuevo proceso.
Puede que antes de comenzar a ejecutar el proceso sean traı́das
todas sus páginas a memoria.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
50 / 56
Aspectos de paginación y fallos de página
Aspectos de paginación y fallos de página IV
Cuando se presenta un fallo de página
El SO debe de leer los registros a fin de determinar la dirección
que causó el fallo de página.
Con esa información el SO debe determinar cuál es la página que
se requiere traer de disco.
El SO toma una decisión sobre la página a desalojar y trae la
nueva a memoria.
Finalmente el SO retrocede el PC para que apunte a la
instrucción que causó el fallo.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
51 / 56
Aspectos de paginación y fallos de página
Aspectos de paginación y fallos de página V
Cuando termina un proceso
El SO debe liberar la tabla de páginas, las páginas y el espacio en
disco ocupado por el proceso.
Si las mismas páginas son utilizadas por otros procesos, éstas
sólo podrán ser liberadas cuando el último proceso termine de
utilizarlas.
Otro aspecto importante es cómo se lleva a cabo el manejo de
fallos de página.
Independientemente del algoritmo implementado para escoger la
página a liberar de la memoria, el proceso que ocurre durante un
fallo de página es el mismo.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
52 / 56
Aspectos de paginación y fallos de página
Aspectos de paginación y fallos de página VI
1
El hardware salta al kernel y almacena el PC en la pila.
2
Se ejecuta una rutina en lenguaje ensamblador que guarda los
registros importantes y dicha rutina manda llamar al SO.
3
El SO se da cuenta que hay un fallo de página y averigua cuál es
la página que necesita.
Esto puede ser con ayuda de uno de los registros almacenados
en hardware o bien el SO debe recuperar el PC del programa y
trata de deducir cuál es la página necesaria.
4
Si la dirección requerida es válida entonces el SO busca un
marco libre o bien ejecuta el algoritmo de reemplazo de páginas,
de lo contrario el SO mata el proceso.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
53 / 56
Aspectos de paginación y fallos de página
Aspectos de paginación y fallos de página VII
5
Si el marco escogido está modificado el SO calendariza su
escritura a disco además de que cambia de contexto eligiendo
otro proceso a ejecutar (en lo que se mueve el marco a disco).
6
Una vez que el marco de página esta listo el SO calendariza una
operación de disco para traer la página que requiere.
Mientras esto se realiza otro proceso puede ser calendarizado.
7
Cuando la interrupción de disco indica que llego la página
entonces se actualiza la tabla de páginas.
8
La instrucción que causó el fallo se regresa a su estado inicial.
9
El proceso que causó el fallo se calendariza.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
54 / 56
Aspectos de paginación y fallos de página
Aspectos de paginación y fallos de página VIII
10
El SO regresa a la rutina de lenguaje ensamblador que lo invoco.
11
Esta rutina vuelve a cargar los registros y demás información de
estado para continuar con la ejecución del proceso original.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
55 / 56
Aspectos de paginación y fallos de página
Aspectos de paginación y fallos de página IX
¿Cómo funciona el retroceso de instrucciones?
Para reiniciar una instrucción el SO debe determinar dónde
está el primer byte de la instrucción.
Ej. una instrucción que hace 2 referencias a memoria contempla 3
direcciones diferentes donde podrı́a haber ocurrido el fallo.
De éste modo el SO no sabrá si la dirección donde ocurrió el fallo
es un cod. de oper. o una dirección de memoria asociada a éste.
Una solución hardware es un registro interno oculto que ofrecen
algunas máquinas donde copian el valor del PC antes de que se
ejecuta cada instrucción.
Sin dicho dato el SO se las debe arreglar para resolver el
problema.
Sergio Luis Pérez (UAM C UAJIMALPA)
Curso de Sistemas Operativos
56 / 56
Descargar