Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cap 04
Cap 04
Gestión de memoria
Fundamentos de Computadores II 1
Sistemas Operativos
Índice
Fundamentos de Computadores II 2
Sistemas Operativos
1. Objetivos del sistema de
gestión de memoria
Fundamentos de Computadores II 3
Sistemas Operativos
1. Objetivos del sistema de gestión de memoria
Fundamentos de Computadores II 4
Sistemas Operativos
1. Objetivos del sistema de gestión de memoria
Fundamentos de Computadores II 5
Sistemas Operativos
1. Objetivos del sistema de gestión de memoria
posición 10000....
• Solución: Reubicación de direcciones S is te m a O p e r a tiv o
lógicas a físicas
Fundamentos de Computadores II 6
Sistemas Operativos
1. Objetivos del sistema de gestión de memoria
• Reubicación: Traducir direcciones lógicas a direcciones físicas
dependientes del hardware mediante una función de traducción. La
reubicación permite crear un espacio lógico independiente para cada
proceso y el S.O. debe poder acceder a los espacios lógicos para realizar
la traducción.
– Direcciones lógicas: direcciones de memoria generadas por el
programa
– Direcciones físicas: direcciones de memoria principal asignadas
• Función de traducción:
Traducción(IdProc, dir_lógica) dir_física
– Ejemplo:
El programa tiene asignada memoria a partir de la dirección 10000
Reubicación: sumar 10000 a direcciones lógicas
– Implementación:
o Hardware
o Software
Fundamentos de Computadores II 7
Sistemas Operativos
1. Objetivos del sistema de gestión de memoria
P ro c e s a d o r 10000 LO AD R 1, #1000
10004 LO AD R 2, #2000
H W tr a d u c c ió n 10008 L O A D R 3 , /1 5 0 0
PC 10012 L O A D R 4 , [R 1 ]
8 10000 10016 S T O R E R 4 , [R 2 ]
11 5 0 0
R . I n s tr u c c ió n 1500 10020 IN C R 1
+ 10024 IN C R 2
L O A D R 3 , /1 5 0 0 10028 D EC R 3
10032 J N Z /1 2
10036 .................
..........
Fundamentos de Computadores II 8
Sistemas Operativos
1. Objetivos del sistema de gestión de memoria
• Reubicación software: traducción de
direcciones durante carga del programa.
Esta solución se usa en sistemas sin el
hardware específico de traducción M e m o r ia
(MMU).
• Proceso:
– El programa se carga con las 10000 L O A D R 1 , # 110 0 0
direcciones ya traducidas 10004 LO AD R 2, #12000
10008 L O A D R 3 , /1 1 5 0 0
– Se genera un código diferente del 10012 L O A D R 4 , [R 1 ]
programa ejecutable 10016 S T O R E R 4 , [R 2 ]
10020 IN C R 1
• Desventajas: 10024 IN C R 2
– No asegura protección (no se 10028 D EC R 3
10032 J N Z /1 0 0 1 2
verifica cada dirección a usar, sino 10036 .................
que se usan las direcciones ..........
generadas tras el proceso de carga)
– No permite mover programa en
tiempo de ejecución (suponer que
es necesaria la reubicación del
espacio asignado al proceso, por
necesitar más espacio.....)
Fundamentos de Computadores II 9
Sistemas Operativos
1. Objetivos del sistema de gestión de memoria
Fundamentos de Computadores II 10
Sistemas Operativos
1. Objetivos del sistema de gestión de memoria
z o n a p r iv . 2 ( P 1 )
z o n a c o m p a r t id a
z o n a p r iv a d a 2
Fundamentos de Computadores II 11
Sistemas Operativos
1. Objetivos del sistema de gestión de memoria
• Problemas:
– Requiere asignación no
contigua M a p a p ro c e s o 1
M e m o r ia
– Si la posición de zona
compartida contiene 2000
referencia a otra posición de z o n a c o m p a r tid a
la zona compartida, no se
z o n a c o m p a r tid a
puede saber a qué dirección 10000 ¿ 110 0 ó 21 0 0 ?
se refiere puesto que cada 10100
proceso ligero verá esa M a p a p ro c e s o 2
dirección de forma diferente
Ejemplo: Si el código, que es común, 1000
contiene una bifurcación, no se z o n a c o m p a r tid a
podrá determinar a qué dirección
se debe saltar, dependiendo del
proceso que esté ejecutando el
código
lógico físico
Fundamentos de Computadores II 12
Sistemas Operativos
1. Objetivos del sistema de gestión de memoria
Fundamentos de Computadores II 13
Sistemas Operativos
1. Objetivos del sistema de gestión de memoria
E. Maximizar el grado de multiprogramación
El reparto de memoria debe ser tal que Aprovechamiento de memoria
maximize el grado de multiprogramación óptimo es irrealizable!!!!
para evitar el desperdicio de memoria Tablas de gestión demasiado
• Memoria desperdiciada grandes
– Restos (huecos) inutilizables
(fragmentación) M e m o r ia
– Tablas requeridas por gestor de 0 D ir e c c ió n 5 0 d e l p r o c e s o 4
memoria 1 D ir e c c ió n 1 0 d e l p r o c e s o 6
• Acciones 2 D ir e c c ió n 9 5 d e l p r o c e s o 7
– Crear bloques de asignación de 3 D ir e c c ió n 5 6 d e l p r o c e s o 8
menor tamaño 4 D ir e c c ió n 0 d e l p r o c e s o 1 2
– Gestionar las tablas de asignación D ir e c c ió n 5 d e l p r o c e s o 2 0
5
más eficientemente
6 D ir e c c ió n 0 d e l p r o c e s o 1
– Se opta por la paginación
.........................................
– Uso de memoria virtual para
.........................................
aumentar grado de
multiprogramación N -1 D ir e c c ió n 8 8 d e l p r o c e s o 9
N D ir e c c ió n 5 1 d e l p r o c e s o 4
Fundamentos de Computadores II 14
Sistemas Operativos
1. Objetivos del sistema de gestión de memoria
Fundamentos de Computadores II 15
Sistemas Operativos
2. Modelo de memoria de un
proceso
2.1. Introducción
2.2. Fases en la generación de un ejecutable
2.3. Mapa de memoria de un proceso
2.4. Operaciones sobre regiones
Fundamentos de Computadores II 16
Sistemas Operativos
Modelo de memoria de un proceso
2.1. Introducción
Fundamentos de Computadores II 17
Sistemas Operativos
Modelo de memoria de un proceso
• Compilación:
– Se asignan direcciones a los
M ó d u lo M ó d u lo
símbolos definidos
fu e n te A fu e n te B
– Resuelve referencias a los
símbolos de cada módulo
– Genera módulo objeto C o m p ila d o r
• Montaje (o enlace): M ó d u lo M ó d u lo
o b je t o A o b je t o B B ib lio te c a s
– Resuelve referencias entre
módulos objeto
– Resuelve referencias a símbolos M o n ta d o r
de bibliotecas
F ic h e r o
– Genera resultado (archivo
e je c u t a b le
ejecutable), que incluye las
bibliotecas usadas
Fundamentos de Computadores II 18
Sistemas Operativos
Modelo de memoria de un proceso
Biblioteca: colección de módulos objeto relacionados. Algunas bibliotecas
son proporcionadas a los usuarios (bibliotecas) del sistema, mientras
que otras habrán sido creadas por los usuarios (propias) (por ejemplo,
bibliotecas de entrada salida, incluyendo las funciones como printf,
getchar, etc, o las llamadas al sistema de POSIX)
• Tipos:
Estáticas: el montaje enlaza los módulos
objeto del programa y de las bibliotecas,
dando como resultado un ejecutable
M a in
autocontenido.
• Desventajas: F u n c ió n A
– Ejecutables grandes F u n c ió n B
C ó d ig o
Fundamentos de Computadores II 19
Sistemas Operativos
Modelo de memoria de un proceso
Fundamentos de Computadores II 20
Sistemas Operativos
Modelo de memoria de un proceso
• Ventajas:
• Desventajas:
Fundamentos de Computadores II 21
Sistemas Operativos
Modelo de memoria de un proceso
• Forma de uso :
1. Enlace dinámico implícito: Se especifica en tiempo de
montaje qué biblioteca usar, pero se pospone su carga y
montaje a tiempo de ejecución.
2. Uso explícito:
» Requerido por aplicaciones que determinan en tiempo
de ejecución qué bibliotecas deben usar
» No se especifica la biblioteca en mandato de montaje
» Es el programa quien solicita la carga de bibliotecas
mediante servicio del sistema (dlopen en UNIX y
LoadLibrary en Win32)
» El acceso a los símbolos de la biblioteca ya no es
transparente, sino que se ha de hacer desde el propio
programa, mediante los servicios apropiados del
sistema (dlsym en UNIX y GetProcAddress en Win32)
Fundamentos de Computadores II 22
Sistemas Operativos
Modelo de memoria de un proceso
Fundamentos de Computadores II 23
Sistemas Operativos
Modelo de memoria de un proceso
Ficheros ejecutables
Fundamentos de Computadores II 24
Sistemas Operativos
Modelo de memoria de un proceso
F ic h e r o E je c u ta b le
0 N ú m e r o m á g ic o D e s p l. Tam .
C o n t a d o r d e p r o g r a m a in ic ia l C ó d ig o 1000 4000
C a b e c e ra
.................... D a t o s c o n v .i. 5 0 0 0 1000
T a b la d e s e c c io n e s D a t o s s in v .i. - - -- -- 500
1000 ..... ... .......... .. .. ........ ........
C ó d ig o T . S ím b o lo s 8000 1000
5000
S e c c io n e s D a to s c o n v a lo r in ic ia l
. . . . . . . . . . . . . . . .
8000
T a b la d e s ím b o lo s
Fundamentos de Computadores II 25
Sistemas Operativos
Modelo de memoria de un proceso
• Las secciones más relevantes se volcarán en el mapa de memoria del
proceso: código, datos con valor inicial y datos sin valor inicial
Fundamentos de Computadores II 26
Sistemas Operativos
Modelo de memoria de un proceso
• Variables globales
– Estáticas
– Se crean al iniciarse programa
– Existen durante toda la ejecución del proceso
– Dirección fija en memoria y en ejecutable
Fundamentos de Computadores II 27
Sistemas Operativos
Modelo de memoria de un proceso
• Ejemplo:
Fundamentos de Computadores II 28
Sistemas Operativos
Modelo de memoria de un proceso
• Cada región:
Fundamentos de Computadores II 29
Sistemas Operativos
Modelo de memoria de un proceso
– Datos sin valor inicial: privada, lectura y escritura, tamaño fijo, sin
soporte (se rellena a ceros en algunos lenguajes)
Fundamentos de Computadores II 30
Sistemas Operativos
Modelo de memoria de un proceso
Fundamentos de Computadores II 31
Sistemas Operativos
Modelo de memoria de un proceso
Fundamentos de Computadores II 32
Sistemas Operativos
Modelo de memoria de un proceso
Fundamentos de Computadores II 33
Sistemas Operativos
Modelo de memoria de un proceso
Fundamentos de Computadores II 34
Sistemas Operativos
Modelo de memoria de un proceso
Fundamentos de Computadores II 35
Sistemas Operativos
3. Esquemas de memoria basados
en asignación contigua
Fundamentos de Computadores II 36
Sistemas Operativos
Esq. de mem. basados en asignación contigua
Hardware requerido:
– Registros valla (registro base y registro límite). Estos dos registros
sólo son accesibles en modo privilegiado.
– Los registros valla están desocupados cuando el S.O. toma el control
para acceder a todo el mapa de memoria.
Fundamentos de Computadores II 37
Sistemas Operativos
Esq. de mem. basados en asignación contigua
Proceso 4
Procesador 10000
PC Hard. traducción (MMU) 10200
Proceso 7
8 R. límite R. base
15036
4000 21000 Proceso 3
Registro instrucción
NO 20500
21000
LOAD R3, /1500 > +
Proceso 2
22500
SI
25000
Excepción
N
Fundamentos de Computadores II 38
Sistemas Operativos
Esq. de mem. basados en asignación contigua
Fundamentos de Computadores II 41
Sistemas Operativos
4. Intercambio
Fundamentos de Computadores II 42
Sistemas Operativos
Intercambio
Fundamentos de Computadores II 43
Sistemas Operativos
5. Memoria virtual
5.1. Introducción
5.2. Paginación
5.3. Segmentación
5.4. Segmentación paginada
5.5. Paginación por demanda
5.6. Políticas de reemplazo
5.7. Política de asignación de marcos de
página
5.8. Hiperpaginación
5.9. Gestión del espacio de swap
5.10. Operaciones sobre las regiones de un
proceso
Fundamentos de Computadores II 44
Sistemas Operativos
Memoria virtual
5.1. Introducción
La técnica de la MV se usa prácticamente en todos los SSOO modernos.
Esta técnica se basa en transferir información entre memoria
principal y memoria secundaria (por lo que involucra varios niveles
de la jerarquía de memoria)
Fundamentos de Computadores II 45
Sistemas Operativos
Memoria virtual
Ventajas:
Fundamentos de Computadores II 46
Sistemas Operativos
Memoria virtual
5.2. Paginación
• Página: Zona contigua de memoria de determinado tamaño.
(Por motivos de eficiencia se suele trabajar siempre con tamaños
potencia de 2. Ej:4 KB.)
• Organización:
— El mapa de memoria del proceso se considera dividido en páginas.
— La memoria principal se considera dividida en marcos de página
(tamaño de marco = tamaño de página).
— Los marcos contendrán páginas de los procesos en ejecución
— La tabla de páginas (TP) relaciona cada página con el marco que
la contiene. El hardware de traducción (MMU) usa la tabla de
páginas para traducir direcciones lógicas a físicas
— Típicamente la MMU usa dos tablas de páginas (TP):
a) TP del usuario: Por ejemplo, direcciones lógicas que empiezan
por 0
b) TP del sistema: Por ejemplo, direcciones lógicas que empiezan
por 1. Estas sólo se podrán usar en modo sistema
Fundamentos de Computadores II 47
Sistemas Operativos
Memoria virtual
– Cada entrada de la tabla de páginas contendrá, además del número
de marco asociado con la página:
a) Información de protección: tipo de acceso permitido RWX
b) Bit de página válida/inválida: para indicar si dicha entrada
contiene una traducción asociada, es decir, si se corresponde
realmente con un marco
c) Bit de página accedida (Ref): activado cuando se accede
d) Bit de página modificada (Mod): activado cuando se escribe
e) Bit de desactivación de caché: se usa cuando la entrada
corresponde con direcciones de E/S
• Tamaño de página: La elección de tamaño de página está
condicionada por diversos factores, entre los que hay que conseguir
equilibrio:
– Potencia de 2 y múltiplo del tamaño del bloque de disco
– mejor pequeño por:
• Menor fragmentación
• Se ajusta mejor al conjunto de trabajo
– mejor grande por:
• Tablas más pequeñas
• Mejor rendimiento de dispositivos de E/S
– Compromiso (entre 2K y 16K)
Fundamentos de Computadores II 48
Sistemas Operativos
Memoria virtual
Fundamentos de Computadores II 49
Sistemas Operativos
Memoria virtual
Dirección lógica
Página Byte
Marcos de página
0
1
2
3
Registro base de la TP
(RIED)
T. Páginas Proceso 1
Página 0 Marco 2
Memoria
Página 1 Marco N
Pág. 1 Pr. 2 Marco 0
..............
Pág. P Pr. 2 Marco 1
Página M Marco 3
Pág. 0 Pr. 1 Marco 2
Pág. M Pr. 1 Marco 3
T. Páginas Proceso 2
Página 0 Pág. 0 Pr. 2 Marco 4
Marco 4
............
Página 1 Marco 0
.............. Pág. 1 Pr. 1 Marco N
Página P Marco 1
Fundamentos de Computadores II 51
Sistemas Operativos
Memoria virtual
• Otras cuestiones:
– En este esquema, el S.O. mantiene una tabla de páginas por
cada proceso. Cuando se produce un cambio de contexto se indica
a la MMU qué tabla de páginas usar
– El S.O. mantiene una única tabla de páginas para sí mismo. Así,
todos los procesos comparten el SO. Cuando un proceso se ejecuta
en modo sistema accede directamente a su mapa y al del SO
– S.O. mantiene tabla de marcos, como forma de mantener
información de estado de la memoria principal. De cada marco se
conoce su estado (libre, ocupado, etc)
– S.O. mantiene tabla de regiones por cada proceso, indicando las
características de cada región y qué rango de páginas pertenecen a
cada región
• Desperdicio de espacio: Mucho mayor gasto en tablas que con
asignación contigua: es el precio de mucha mayor funcionalidad
Fundamentos de Computadores II 52
Sistemas Operativos
Memoria virtual
• Implementación de la tabla de páginas:
– Las tablas de páginas se mantiene normalmente en memoria
principal. Problemas: eficiencia y gasto de almacenamiento
a) Eficiencia: cada acceso lógico requiere dos accesos a memoria
principal, a la tabla de páginas + al propio dato o instrucción.
Solución: caché de traducciones –› TLB
b)Gasto de almacenamiento: tablas muy grandes. Ejemplo:
páginas 4K, dir. lógica 32 bits y 4 bytes por entrada, la tabla de
páginas de cada proceso tendrá 4MB. Solución: tablas
multinivel y tablas invertidas
• Valoración :
– Espacios independientes para procesos: mediante tablas de páginas
– Protección: mediante tablas de páginas
– Compartir memoria: entradas corresponden con mismo marco (bajo
supervisión del SO dos procesos pueden compartir una página
asociada al mismo marco)
– Soporte de regiones: bits de protección, bit de validez: no se
reserva espacio para huecos
– Maximizar rendimiento: Si, al permitir esquemas de memoria más
flexibles
– Mapas de tamaño adecuado: sí, al permitir esquemas de memoria
virtual
Fundamentos de Computadores II 53
Sistemas Operativos
Memoria virtual
TLB (Translation Look-aside Buffer): Consta de una memoria asociativa con
información sobre últimas páginas accedidas.
• Para el multiproceso, existen varias posibilidades:
– La TLB no incluye información del proceso. En este caso, habrá que
invalidar la TLB en los cambios de contexto
– Entradas en TLB incluyen información sobre proceso: en este caso,
debe existir un registro de UCP para mantener la identificación del
proceso actual
• Implementación
– HW: La MMU consulta la TLB y si falla, se usa la TP en memoria.
• Ventajas: Es un proceso muy rápido
• Inconvenientes: Actualizar la TP en cambios de contexto y hay que
invalidar la TLB cuando se produce un cambio de contexto (si no tiene
información del PID)
– SW: La MMU no usa la TP, sino que sólo consulta TLB. En caso de fallo,
se activa el SO, que ha de buscar la entrada en la tabla de páginas
(mediante programa), e insertar en la TLB la traducción hecha, de forma
que se pueda reutilizar.
• Ventajas: flexibilidad, ya que la tabla de páginas puede ser definida a
conveniencia, sin restricciones impuestas por el hardware
• Inconvenientes: Es menos eficiente, ya que parte del proceso de
traducción se realiza mediante programa.
Fundamentos de Computadores II 54
Sistemas Operativos
Memoria virtual
Una de las opciones disponibles para disminuir el tamaño requerido por las
tablas de páginas es la tabla de páginas multinivel
Fundamentos de Computadores II 55
Sistemas Operativos
Memoria virtual
Página Dirección lógica
Registro base de la TP
(RIED) n
0
1
2
3
Fundamentos de Computadores II 56
Sistemas Operativos
Memoria virtual
– 2 niveles, páginas de 4K, dir. lógica 32 bits (10 bits por nivel) y 4
bytes por entrada
– Tamaño: 1 TP N1 + 4 TP N2= 5 * 4KB = 20KB (frente a 4MB)
Fundamentos de Computadores II 57
Sistemas Operativos
Memoria virtual
m e m o r ia
ta b la s d e p á g in a s
s e g u n d o n iv e l P á g in a 2 0 4 8
..
.
P á g in a 1 0 2 3
T a b la d e p á g in a s
p r im e r n iv e l
.. P á g in a 0
V .
V
P á g in a 1 0 2 4
V
I
P á g in a 2 0 4 7
I ..
V .
P á g in a 3 0 7 1
.. P á g in a 1 0 4 8 5 7 5 ( 2 ^ 2 0 - 1 )
.
P á g . 1 0 4 7 5 5 2 (2 ^2 0 -1 0 2 4 )
Fundamentos de Computadores II 58
Sistemas Operativos
Memoria virtual
Fundamentos de Computadores II 59
Sistemas Operativos
Memoria virtual
Dirección lógica
Dirección física
Fundamentos de Computadores II 60
Sistemas Operativos
Memoria virtual
5.3. Segmentación
Con la paginación la MMU no dispone de información sobre las regiones
de los procesos y sólo entiende de páginas. Por esta razón, el SO debe
mantener una lista de las páginas que componen cada región, lo
que supone varias desventajas:
• Al crear una región hay que cuidar que todas las páginas
asociadas tengan la misma información de control
• Para poder compartir una región es preciso que las entradas de
varios procesos apunten a los mismos marcos
Segmentación: es un esquema HW que intenta dar soporte directo a las
regiones. En él se considera el mapa de memoria como compuesto por
varios segmentos.
Se puede considerar que consisten en una generalización de los
registros valla base y límite, pero usando un par de registros por
cada segmento
Fundamentos de Computadores II 61
Sistemas Operativos
Memoria virtual
d ir e c c ió n ló g ic a
s d
t a b la d e s e g m e n t o s
N O m e m o r ia
> +
S I
E x c e p c ió n
Fundamentos de Computadores II 62
Sistemas Operativos
Memoria virtual
Fundamentos de Computadores II 63
Sistemas Operativos
Memoria virtual
• Valoración:
Fundamentos de Computadores II 64
Sistemas Operativos
Memoria virtual
• Organización:
– Entrada en TS apunta a una TP para el segmento.
– El espacio del segmento está compuesto de varias páginas, de
forma que su espacio no tiene que ser contiguo.
Fundamentos de Computadores II 65
Sistemas Operativos
Memoria virtual
d ir e c c ió n ló g ic a
s p d t a b la d e p á g in a s
t a b la d e s e g m e n t o s p a ra s e g m e n to s
NO m e m o r ia
> m d
SI
d ir e c c ió n
E x c e p c ió n f ís ic a
Fundamentos de Computadores II 66
Sistemas Operativos
Memoria virtual
• Valoración:
Fundamentos de Computadores II 67
Sistemas Operativos
Memoria virtual
Fundamentos de Computadores II 68
Sistemas Operativos
Memoria virtual
Fundamentos de Computadores II 69
Sistemas Operativos
Memoria virtual
Fundamentos de Computadores II 70
Sistemas Operativos
Memoria virtual
• Política de reemplazos:
– Reemplazo local: Sólo puede usarse para reemplazo un marco
asignado al proceso que causa fallo
– Reemplazo global: Puede usarse para reemplazo cualquier marco
Fundamentos de Computadores II 71
Sistemas Operativos
Memoria virtual
• Algoritmos a estudiar
A. Óptimo
B. FIFO
C. Reloj (o segunda oportunidad)
D. LRU
E. Buffering de páginas
F. Retención de páginas en memoria
Fundamentos de Computadores II 72
Sistemas Operativos
Memoria virtual
A) Algoritmo óptimo
Fundamentos de Computadores II 73
Sistemas Operativos
Memoria virtual
B) Algoritmo FIFO
• Implementación: Fácil
– Páginas residentes en orden FIFO –› se expulsa la primera
– No requiere hardware especial
– En el caso de estrategia local se mantiene una lista de páginas por
cada proceso. En el caso global, basta con una única lista
• Problema:
– Una página que lleva mucho tiempo residente puede seguir
accediéndose frecuentemente.
– Su criterio no se basa en el uso de la página.
– Anomalía de Belady: Se pueden encontrar ejemplos en que al
aumentar el número de marcos aumenta el número de fallos de
página
Fundamentos de Computadores II 74
Sistemas Operativos
Memoria virtual
Se trata de una modificación del algoritmo FIFO, para evitar que una
página residente desde hace tiempo sea desalojada pese a estar siendo
usada. Para ello se usa el bit de referencia Ref de las páginas, con lo
que se detecta su uso
• Criterio:
– Si la página elegida por FIFO no tiene activo el bit Ref, es la página
expulsada
– Si lo tiene activo se da 2ª oportunidad antes de expulsar: se
desactiva el bit Ref, se pone página al final de FIFO, se aplica
criterio a la siguiente página
Fundamentos de Computadores II 75
Sistemas Operativos
Memoria virtual
Fundamentos de Computadores II 76
Sistemas Operativos
Memoria virtual
E) Buffering de páginas
• Implementación:
– Mantiene una reserva de marcos libres. Cuando se produce un
fallo de página, siempre se usa un marco libre (es decir, en verdad
no hay reemplazo)
– Cuando el número de marcos libres queda por debajo de cierto
umbral se activa un “demonio de paginación”, que aplica
repetidamente el algoritmo de reemplazo:
• Páginas no modificadas pasan a lista de marcos libres
• Páginas modificadas pasan a lista de marcos modificados:
cuando se escriban a disco pasan a lista de libres; suelen
escribirse en tandas (lo que mejora el rendimiento)
– Si se referencia una página mientras está en estas listas: se
recupera directamente de la lista (no hay E/S), lo que puede
mejorar el comportamiento de algoritmos poco eficientes
Fundamentos de Computadores II 77
Sistemas Operativos
Memoria virtual
F) Retención de páginas en memoria
• Aplicación:
– Se aplica a páginas del propio S.O: si sus páginas están fijas en
memoria, su gestión es más sencilla
– También se aplica mientras se hace DMA sobre una página. La
página no será reemplazable hasta que finalice la operación sobre
ella
Fundamentos de Computadores II 78
Sistemas Operativos
Memoria virtual
A) Asignación fija
Fundamentos de Computadores II 79
Sistemas Operativos
Memoria virtual
B) Asignación dinámica
Fundamentos de Computadores II 80
Sistemas Operativos
Memoria virtual
Fundamentos de Computadores II 81
Sistemas Operativos
Memoria virtual
U t iliz a c ió n d e la U C P
g r a d o d e m u lt ip r o g r a m a c ió n
Se verán a continuación algunas estrategias de control de la carga de
trabajo:
A. Estrategia del conjunto de Trabajo
B. Estrategia de administración basada en la frecuencia de fallos
de página
C. Estrategia de control de carga para algoritmos de reemplazo
globales
Fundamentos de Computadores II 82
Sistemas Operativos
Memoria virtual
• Proceso:
– Si el conjunto de trabajo decrece se liberan marcos.
– Si el conjunto de trabajo crece se asignan nuevos marcos.
– Si no hay marcos disponibles se suspenderá algún(os) proceso(s),
que se reactivan cuando haya marcos suficientes
lí m it e s u p e r io r
lí m it e in f e r io r
n ú m e ro d e m a rc o s
Fundamentos de Computadores II 84
Sistemas Operativos
Memoria virtual
Fundamentos de Computadores II 85
Sistemas Operativos
Memoria virtual
Fundamentos de Computadores II 86
Sistemas Operativos
Memoria virtual
Fundamentos de Computadores II 87
Sistemas Operativos
Memoria virtual
Fundamentos de Computadores II 88
Sistemas Operativos
Memoria virtual
• Algoritmo de expulsión:
– Si la región es privada se escribe página en swap. Si no hay
preasignación de espacio swap, en la primera expulsión se reserva
espacio. Posteriores fallos se sirven de ese bloque de swap
– Si la región es compartida se escribe página en soporte, para que
todos los procesos puedan ver las modificaciones. Todos los fallos se
sirven del soporte
Fundamentos de Computadores II 89
Sistemas Operativos
Memoria virtual
Sw ap
T a b la d e p á g in a s A r c h iv o E je c u ta b le
1 ªp á g . C a b e c e ra
C ó d ig o RX A B lo q u e T ( a r c h .) B lo q u e T
........................... C ó d ig o
1 ªp á g .
D a t .v . i. R W A B lo q u e U ( a r c h .) B lo q u e U
D a t o s c o n v a lo r in ic ia l
...........................
1 ªp á g . . . . . . . . . . . . . . . . .
D a t .n o .v . i.
R W A R e lle n a r c o n 0
...........................
1 ªp á g . B lo q u e S ( s w a p ) B lo q u e S
P ila
RW A P ila
Fundamentos de Computadores II 90
Sistemas Operativos
Memoria virtual
b) Liberación de región
• Acciones:
– Actualizar tabla de regiones para eliminar región
– Marcar como inválidas páginas asociadas
– Si la región es privada, se libera el espacio de swap asociado
• Cuando:
– Solicitud explícita (p.ej. desproyección de región).
– Finalización del proceso (exit en POSIX).
– El servicio exec de POSIX libera el mapa actual del proceso antes de
construir un nuevo mapa vinculado al ejecutable a “usar”
Fundamentos de Computadores II 91
Sistemas Operativos
Memoria virtual
c) Cambio de tamaño
• Acciones:
– Si disminuye:
• Se ajusta la tabla de regiones.
• Se marcan páginas como inválidas.
• Se libera espacio de swap
– Si aumenta:
• Se comprueba que no haya solapamiento.
• Se fijan nuevas páginas como no residentes y con las mismas
características que otras páginas de la región.
• Si hay preasignación se reserva espacio en swap para las nuevas
páginas.
• Casos especiales:
– Expansión del heap: Solicitada por programa mediante servicios
del S.O. Se marcan las páginas correspondientes como RC,
privadas, RW
Fundamentos de Computadores II 92
Sistemas Operativos
Memoria virtual
Fundamentos de Computadores II 93
Sistemas Operativos
Memoria virtual
• Implementación de COW
– Se comparten las páginas de regiones duplicadas
– Se marcan de sólo lectura y con bit de COW.
– Al realizar la primera escritura se produce un fallo de proteccción y
se genera una copia privada para el proceso que escribe.
– Lo normal es que haya varios procesos con misma región duplicada,
por lo que existe un contador de uso por página.
– Cada vez que se crea copia privada se decrementa contador, ya que
hay un proceso menos trabajando sobre la copia compartida.
– Si llega a 1, se desactiva el bit COW, al no haber duplicados
• FORK con COW. Se comparten todas las regiones. Las regiones privadas
se marcan como COW en padre e hijo, el resultado de la optimización es
que en vez de duplicar todo el espacio de memoria sólo se duplica la TP.
Fundamentos de Computadores II 94
Sistemas Operativos
5. Archivos proyectados en
memoria
Fundamentos de Computadores II 95
Sistemas Operativos
Archivos proyectados en memoria
Fundamentos de Computadores II 96
Sistemas Operativos
Archivos proyectados en memoria
De esta forma, C ó d ig o
cuando el
programa accede T a b la d e p á g in a s D a t o s c o n v a l o r in ic i a l
a una posición ........................... A r c h iv o
de memoria 1 ªp á g .
D a t o s s i n v a l o r i n i c ia l
R W A B lo q u e 0 ( a r c h .) B lo q u e 0
asociada al A r c h iv o
...........................
archivo proyectado,Ú lt i m a p á g . R W A B lo q u e N ( a r c h .) 10240
B lo q u e 1
A r c h iv o
está accediendo ........................... B lo q u e 2
A r c h iv o P r o y e c t a d o
realmente
al archivo .............
B lo q u e N
P il a
Fundamentos de Computadores II 97
Sistemas Operativos
Archivos proyectados en memoria
Fundamentos de Computadores II 98
Sistemas Operativos
6. Servicios de gestión de
memoria
Fundamentos de Computadores II 99
Sistemas Operativos
Servicios de gestión de memoria
– POSIX
• Proyectar un archivo: mmap
• Desproyectar un archivo: munmap
– Win32
• Proyectar un archivo: 2 pasos:
– Crear proyección: CreateFileMapping
– Realizar proyección: MapViewOfFile
• Desproyectar un archivo: UnmapViewOfFile
void *mmap(void *direc, size_t lon, int prot, int indic, int desc, off_t desp);