Title: Presentaci
1S.O Administración de Memoria IV
2Adm. Memoria IV
- Memoria Virtual
- Introducción
- Paginación por demanda
- Análisis de desempeño
- Reemplazo de páginas
- Algoritmos de Reemplazo de páginas
- Asignación de Frames
- Trashing
3Adm. Memoria IV
- Memoria Virtual Introducción
- Def MV. Es una técnica que habilita a procesos,
que, por tener un tamaño mayor al de - la memoria física disponible no pueden
instalarse completamente en la misma. - Ventaja principal Libera a los programadores de
manejar restricciones, en cuanto a almacenamiento
de sus programas en memoria principal. - Justificación de la técnica en los programas
reales grandes, se ha estudiado que, pueden - ejecutarce en forma adecuada (Bien
modularizados, o construidos con un enfoque OO), - sin nececidad de que todos los datos, módulos,
etc. Estén en memoria física.Ejemplo - - rutinas de manejo de errores y mensajes
- - Estructuras de
datos para obtener estadísticas periódicas, más
grandes que - lo que
realmente se ocupa. - Incluso, muchas veces, por errores de diseño,
quedan estructuras de datos que no se usan, o - Aún cuando se ocupe el programa completo, no se
necesita tener todo al mismo tiempo. - Mensajes obsoletos.
- Otras ventajas
- Disminuye el swapping
- Aumenta el grado de multiprogramación
- Independiza al programador de restricciones
físicas
4Adm. Memoria IV
Memoria Virtual Introducción
Mem. secundaria
Mapa de memoria
Página 0
Memoria Física
Página 1
Página 2
. . . .
Página n
Mem. Virtual
5Adm. Memoria IV
Memoria Virtual Paginación por demanda
- Def MV-Paginacion por demanda. Es una técnica
similar a la paginación con swapping del cap.
III. - Los procesos residen en DISCO
- Cuando se ejecuta un Pi, se carga en memoria.
- En vez de cargar todo el Pi , se cargan sólo las
páginas que se necesitan. - Ventajas se ahorra memoria y se disminuye el
tiempo de swapping - Requ. De HW Se requiere de alguna estructura
física que indique, cuáles páginas están en
memoria y cuales en disco - Implementación Usar TP, bit válido/ inválido
- Funcionamiento
- Cuando se marca una página como inválida, no
tiene efecto alguno, si el Pi nunca hace
referencia a esa página. - Cuando el Pi referencia a esa página, que no está
en memoria, se produce la interrupciónFALLO DE
PÁGINA. - QUÉ PASA EN ESTE CASO?
6Adm. Memoria IV
Memoria Virtual Diagrama swapping
Mem. secundaria
Memoria Principal
Pag x sale
Pag y sale
Pag z sale
Swap out
Swap in
Pag j entra
7Adm. Memoria IV
Memoria Virtual Diagrama TP
Visión lógica
TP
Mem. secundaria
4
V
A
0
0
B
1
C
I
1
2
D
3
6
V
2
E
4
F
5
I
3
G
6
A
H
7
I
4
B
D
9
V
5
E
F
C
I
6
I
7
Memoria Principal
8Adm. Memoria IV
Memoria Virtual Diagrama acciones falla página
s.o
2
TP
Mem. secundaria
3
I
1
5
Ld R
6
4
R
Memoria Principal
9Adm. Memoria III
Memoria Virtual Paginación por demanda
- Dada la figura anteriór, se explicarán los
eventos - Referencia se busca en una tabla interna para
determinar si es una referencia válida. Si es
invalida, el proceso es TERMINADO. - Trap
- La página esta en backing store. Se busca en este
almacenamiento secundario un frame libre en una
Estructura de datos de Frames libres. - Comienza a leerse el disco, instalando la nueva
página (de memoria secundaria) en el frame
asignado. - Cuando la lectura esta lista, se modifica la TP,
indicando que ahora este trozo o página esta
realmente en memoria principal. - Se ejecuta nuevamente la instrucción que fue
interrumpida. - El Pi accesa a la página (dir lógica) que está en
memoria física.
10Adm. Memoria IV
Memoria Virtual Paginación por demanda version 2
- Memoria virtual parte sin páginas y entra el P0
- Ocurre inmediatamente un FALLO DE PAGINA, esto no
causa una falla del programa, sino que, esta
primera página, se cargará en memoria. - Cada fallo, producirá la carga de una nueva
página - Si un programa produce fallas por instrucciones
equivocadas (NO FALLAS DE PAGINAS), produce una
baja en el desempeño del sistema. - def localidad de referencias, es una
característica de la mayoría de los programas,
que hace que no se produzca la anomalía anterior.
- Soporte de HW
- Idéntico al esquema de paginación con
particiones variables - TP
- Area de swapping o Backing store
- Soporte de SW
- Se requieren algoritmos complejos y rápidos.
- Intercambio cada vez que ocurre un FALLO DE
PAGINA, el algoritmo debe deshacer la instrucción
/intercambio/ volver a ejecutarla.
11Adm. Memoria IV
Memoria Virtual Paginación por demanda análisis
- TAM tiempo de acceso a la memoria 10..200nseg.
- P probabilidad de la ocurrencia de un FALLO DE
PAGINA 0..1. - Fórmulapara el cálculo de tiempo efectivo Te
- Te (1-p)TAM pTFP
- TFP (tiempo de fallo de página) acciones que
involucra - Trap al S.O.
- Almacenar, status del Pi en la estructura PCB,
más contenido de los registros. - Determinar el tipo de interrupción
- Verificación de correctitud en cuanto a
referencia de página y búsqueda de la misma en
disco. - Iniciar lectura del disco, traspasando el
contenido de la página al frame libre de la
memoria principal. - El itinerador debe aprovechar este tiempo
utilizado en I/o para ejecutar otro proceso
(context switch) - Para retomar el proceso que ha paginado, el disco
envia el interrupción de fin de lectura i/o - Almacenar el Pj que estaba en estado running y
validar la interrupción 7. - Corregir todas las estructuras de soporte
(ejTP), el itinerador debe retomar Pi - Restaurar PCB completa de Pi, retomando la
instrucción donde se produjo el FP.
12Adm. Memoria IV
Memoria Virtual Paginación por demanda análisis
- Caso práctico, se usan tres variables principales
para determinar el TFP - SI tiempo servicio de la interrupción
- Lpag tiempo lectura de la página de disco a
memoria - Reinstal restauración del proceso
- Ejemplo SI Reinstal 1..100x10-6segLpag
(latencia de HD 16 mseg seek 30 mseg
transferencia 2) - TFP (16302)10-3seg
20010-6seg48.000.000 ns 200.000ns48.200.000
ns - TAM200nseg
- Te (1-p)TAM pTFP
- TAM (TFP-TAM)p 200 48.199.800p
- Te es altamente dependiente de los dispositivos
de I/O y de p. Mientras p sea más pequeño,
endonces la performance será mejor. - Es razonable un plt aprox 4x10-6
13Adm. Memoria IV
Memoria Virtual Reemplazo de páginas
Espacio lógico usuario1
3
V
H
0
4
V
1
PC
ld M
5
V
J
2
I
0
S.O.
M
3
S.O.
1
2
D
Espacio lógico usuario2
B
3
H
6
V
0
A
4
ld M
I
1
B
5
J
2
V
2
D
M
6
A
V
7
E
7
E
3
14Adm. Memoria IV
Memoria Virtual Reemplazo de páginas
- En el esquema de Paginacion por demanda, cada
página generará al menos un FP, la primera vez
que se utiliza. - Ej
- Pi, 10 páginas, pero ocupa 5, ahorra tiempo en
transferencia y permite aumentar el grado de
multiprogramación. Si se dispusiera (mem.
Física) de 40 frames, se podrían correr 8
procesos. (manteniendo todos un 50 de necesidad
de páginas V) - Si un Pi repentinamente requiere de todas o casi
todas sus páginas en frames, entonces se requiere
un nuevo algoritmo de reemplazo de páginas - Buscar la localización de la página en el disco
- Encontrar un frame libre
- Si hay entonces se debe usar
- SINO
- Mediante un ALGORITMO DE REEMPLAZO, encontrar un
frame de otro proceso a ser removido (frame
víctima) - Escribir Frame Víctima en disco
- Leer de disco la página requerida y traspasar
data al frame libre - Actualizar tablasTP y Frames
- Retomar el proceso desde el punto de vista del
programador
15Adm. Memoria IV
Memoria Virtual Reemplazo de páginas
Memoria Principal
TP
Cambo a invalido
Swap out victima
victima
f
2
O
I
vic
1
V
F
Swap in pagina
Cambo a valido
3
4
Px
Cambo a valido
16Adm. Memoria IV
Memoria Virtual Reemplazo de páginas, análisis
- En el caso en que no exista ningun frame libre
esto implica, dos transferencias de páginas - Sacar de la memoria hacia el disco
- Cargar a la memoria desde el disco
- El problema anterior disminuye la performance,
una mejora, consiste en agregar un bit. - Bit de modificación 1 si la página se ha escrito
en disco, 0 en caso contrario - Cuando se selecciona una PV, el sistema verifica
el bit de modificación - Si está en 0 se escribe sobre el frame sin cargar
la PV en el disco. - Este esquema se puede aplicar a páginas read ONLY
17 Adm. Memoria IV
- Algoritmos de Reemplazo de páginas
- Se revisarán algunos algoritmos
- Criterios de selección, ejemplo, el que presente
menor probabilidad de falla de página - Para poder simular el comportamiento de un
algoritmo, y posteriormente evaluar su desempeño,
éste se ejecuta con un string de referencias a
páginas. - Ej. Dada la siguiente secuencia de direcciones
- 0100, 0412,0103,0632, 0102, 0104,
0101,0612, - 0102,0103,0104,0101,0610,0104,0101,0610,01
02,0105 - Si el tamaño de la página es de 100Bytes, el
string de referencia es - 1,4,1,6,1,6,1,6,1,6,1
- Mientras más grande es la memoria, existirá una
mayor cantidad de frames libres y se reducirá el
número de fallos de página.
Nº fallos página
Nº frames
18Adm. Memoria IV
- Algoritmos de Reemplazo de páginas
- Lista
- FIFO
- Optimo
- LRU
- LRU con aproximación
- FIFO
- Es el algoritmo más simple
- Cada página es asociada con el tiempo en que
ingresó a memoria - Cuando ocurre un fallo de página, la víctima es
la mas antigua, en otras palabras, la primera en
entrar. - Este algoritmo se puede optimizar, pues no es
necesario almacenar el tiempo, basta - Reemplazar esto por una estructura de datos de
cola FIFO, para registrar las páginas en memoria - Se reemplaza la página que está en la cabeza de
la cola - Ingresa la página en el final de la cola.
19Adm. Memoria IV
- Algoritmos de Reemplazo de páginasFIFO,ejemplo
Memoria esta particionada en 3 frames
String de referencia 7 0 1 2 0 3 0 4 2 3 0 3 2 1
2 0 1 7 0 1
7
7
7
2
2
2
4
4
4
0
0
0
7
7
7
0
0
3
3
2
2
2
1
1
1
0
0
0
3
1
0
3
3
3
2
2
2
1
1
1
0
0
t
20Adm. Memoria IV
- Algoritmos de Reemplazo de páginasObservaciones
- Es el algoritmo mas simple, tiene las siguientes
ventajas - Sencillo de entender
- Sencillo de programar
- Sin embargo, puede presentar algunos problemas
como - Un módulo instalado al comienzo del programa
puede ser muy utilizado, - sin embargo, se saca, pues el algoritmo no
considera este factor. - Se puede llevar un módulo del programa que se
usará muy poco en un momento - Inadecuado del tiempo.
- La principal anomalía es la llamada de Belady,
que ocurre, cuando el Nro de fallos - de página puede aumentar, si se aumenta el Nº de
marcos de la memoria. - Probar SR 1,2,3,4,1,2,5,1,2,3,4,5 con 3 frames
se comporta mejor que con 4 y - se mantiene estable (Nº fallos) aunque se
aumenten los frames.
21Adm. Memoria IV
- Debido al fenómeno de Belady, se hace necesario
desarrollar algoritmo que minimice - El nº de fallos de páginas y que no presente esta
anomalía. - Def ALG. Optimo
- Reemplazar la página que no será usada por el
mayor período de tiempo. - Si se lograra este algoritmo, se produciría un
mínimo de fallos de página - Sin embargo, el óptimo absoluto es una utopía,
pues se requiere saber de - ANTEMANO, el string de referencia. oráculo?
- Por otro lado es ótil para comparar el desempeño
de los demás algoritmos frente al - óptimo.
- Ej 3 frames, SR
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
7
7
7
2
2
2
2
2
7
0
0
0
0
0
4
0
0
1
3
1
3
3
1
1
22Adm. Memoria IV
- El algoritmo óptimo no es realizable.
- Es posible implementar una aproximacón del
algoritmo al óptimo. - La idea es usar el pasado reciente como una
aproximación del futuro cercano - Comportamiento futuro del proceso en cuanto a su
uso de memoria. (fururo próximo) - Def ALG. LRU
- Reemplazar la página que no haya sido usada
por el mayor período - de tiempo.
- Least Recently Used Aproximation Algorithm.
- Ideaasociar a cada página el tiempo que fue
usada por última vez. La página - víctima se obtiene de las páginas que tienen un
mayor tiempo SIN USO. - Ej 3 frames, SR
7 0 1 2 0 3 0 4 2 3 0 3 2 1 2 0 1 7 0 1
7
7
7
2
2
4
4
0
4
1
1
1
0
0
3
3
0
0
0
0
0
3
0
1
3
1
3
2
2
2
2
2
7
23Adm. Memoria IV
- Algoritmos LRU,implementación
- Es un algoritmo razonable, pero requiere apoyo
de HW el problema más relevante - es encontrar un orden para los frames basados en
el tiempo de último uso. - Se han desarrollado dos formas básicas
- Contadores
- Stack
- CONTADORES
- Se asocia a cada entrada de la tabla un dato que
debe registrar el tiempo de uso, - además se agrega a la CPU un contador. Este
contador se incrementa en cada - Referencia a memoria.
- Cuando se requiere una página, este contador se
copia en el campo tiempo de uso - de la tabla TP.
- Se requiere desarrollar un proceso de búsqueda
sobre la tabla TP. - (Revisar los tiempos).
- - Se debe considerar el manejo de un posible
overflow del contador.
24Adm. Memoria IV
- Algoritmos LRU,implementación
- STACK
- Se mantiene una estructura de datos de tipo stack
con los números de página. - Cada vez que una página es requerida o
referenciada, se mueve del stack y se - Pasa al tope.
- Con estemecanismo, se mantiene en el tope del
stack, la página más recientemente - usada y en la cola del stack indica la página
LRU. - Ej SR 5 8 1 8 2 1 2 3 2 3 8 2 3 1 2
b
3
a
8
2
3
1
2
8
1
5
5
STACK, antes de a
STACK, después de b
25Adm. Memoria IV
- Algoritmos LRU,implementación aproximada
- Pocos sistemas computacionales implementan, LRU
con el HW suficiente - Muchos no tienen simplemente soporte de HW
- La implementación por software es costosa en
tiempo, overhead. - Objetivo de los algoritmos de aproximación es
- Usar estrategias de reemplazo que hagan
decisiones razonables , y que - Tengan un bajo overhead en su realización.
- Algoritmos de aproximación
- NUR (Not used recently)
- LFU (Least frecuently used)
- Segunda oportunidad (Second Chance)
26Adm. Memoria IV
- Principio
- Las paginas que no se han usado recientemente, es
poco probable que se usen - proximamente
- Implementación
- Una alternativa , poco costosa es agregar a la TP
un bit de referencia y un bit de - modificación.
- Se inicializan ambos bits en 0
- El bit de referencia es puesto en 1 cada vez que
la página es referenciada el - de modificación , cáda vez que es
modificada. - Los bits se refrescan periódicamente
- El criterio para elegir la página víctima se basa
en un esquema de prioridad - Prioridad referencia modificación
observación - 1 0
0 no referenciado
recientemente ni modificado - 2 0
1 - 3 1
0 referenciado
recientemente pero no modificado - 4 1
1 -
27Adm. Memoria IV
- Principio
- Las paginas que se referencian menos, tienen
menos probabilidad que se - referencien en un futuro cercano.
- Implementación
- Una alternativa , es usar un contador de
referencias para cada página - Se reemplaza página con menor número de
referencias - En caso de existir empate, se elige cualquiera de
ellas (orden parcial). - Problema
- Se puede reemplazar página recién traída a
memoria -
28Adm. Memoria IV
- Algoritmo Segunda Oportunidad,
- Usar un bit de referencia para cada marco de
página - El conjunto de marcos o frames debe considerarce
como una lista circular - Ante un fallo de página se recorre la lista en el
sentido del reloj, buscando la primera - página que no ha sido referenciada, tiene
su bit 0 y la reemplaza. - Si al verificar un bit de referencia , éste está
en 1, entonces, dar una segunda - oportunidad, seteando el bit en 0,
continuando la búsqueda en sentido de reloj - Si la página no vuelve a ser referenciada en una
vuelta, será reemplazada. -
29Adm. Memoria IV
Asignación de frames
- Criterios de asignación
- Distribución equitativa de frames libres a cada
proceso - Reconocer que los procesos requieren diferentes
cantidades, lo que deriva en - Procesos má grandes reciben más o
- Procesos más prioritarios reciben más
- Un factor importante es cómo hacer el reemplazo
- Sobre los marcos asignados al procesolocal
- Sobre cualquier marcoglobal
- El reemplazo global puede adueñarse de marcos de
otros procesos(útil en el esquema de prioridad),
perjudicando el desempeño de otros. - El reemplazo local mantiene constante el número
de frames del proceso, pero limita a otros
procesos, de usar frames con páginas poco usadas. - En general, se prefiere el reemplazo global, es
más fácil de implementar. -
30Adm. Memoria IV
Trashing
- Si el número de frames asignados a un proceso es
menor que un mínimo, se debe suspender la
ejecución del proceso y hacer un swap out. - Cuando un proceso no tiene en memoria las páginas
suficientes , genera fallas de página en forma
muy frecuente. El sacar una página en uso
significa generar nuevas fallas de página. - Escenario del trashing
- El S.O. Monitorea la utilización de la CPU.
- Si la utilización es baja, aumenta el grado de
multiprogramación, introduciendo un nuevo proceso
a memoria. - Al entrar un nuevo proceso, comienza generando
fallas de página. El servicio de fallas de página
usa swapping - Al esperar los procesos el servicio de
paginació, la utilización de la CPU disminuye. - El itinerador, al ver una disminución de
actividad de la CPU, aumenta el grado de
multiprogramación. Provocando un efecto de bola
de nieve. -
31Adm. Memoria IV
Trashing
- Gráfica del efecto del trashing
32Adm. Memoria IV
Trashing
- Prevención del trashing
- Se debe proporcionar a cada proceso tantos frames
como sea necesario. - Determinación de cuantos frames son necesarios
- Una técnica es la llamada working set (conjunto
de trabajo) - No habrá trashing si hay suficientes marcos para
acomodar un working set. - Se comienza observando cuantos frames esta usando
el proceso. - Con esto se define el modelo de localidad del
proceso en ejecución - Concepto de localidad, se refiere a que los
procesos tienden a referenciar la memoria en
patrones no uniformes y altamente localizados - Localidad temporal si se refeencia una
localización de memoria, es probable que esta
última se referencie próximamente de
nuevo.(ciclos repetitivos, uso frecuente de una
misma subrutina,variables globales) - Localidad espacial si se refeencia una
localización de memoria, es probable que a
continuación se referencie una localización
contigua o vecina.(Ejecución sentencias
secuenciales,recorrido de arreglos) -
33Adm. Memoria IV
Trashing
- Prevención del trashing
- En la medida que el proceso se ejecuta va
cambiando de localidad en localidad. - Por ejemplo, cuando se llama a una subrutina
grande, se define una nueva localidad - La estrategia es asignar tantos frames como
requiera la nueva localidad - Otro método de prevención es el medir la
fecuencia de fallas de página de un proceso - Asignar más marcos si la frecuencia supera un
límite fh - Quitar marcos si la frecuencia de fallas es
inferior a una cota fi - Si la frecuencia aumenta y no hay marcos libres,
suspender algún proceso - Los frames libres se pueden distribuir entre los
procesos con frecuencias más altas -