Académique Documents
Professionnel Documents
Culture Documents
GESTIÓN DE MEMORIA.
OBJETIVOS
Conocer la jerarquía de memoria.
Entender en qué consiste la gestión de memoria paginada
Entender en qué consiste la gestión de memoria seccionada
Entender los conceptos principales de la memoria virtual:
o En que consiste
o Disociación de direcciones: virtuales y reales.
o Proceso de traducción.
o Memoria virtual paginada
o Tabla de Páginas
o En la memoria física hay marcos –En la memoria virtual hay páginas
o Tamaño de páginas y de marcos es el mismo.
o Algoritmo de fallo de página.
o Memoria virtual segmentada
o Algoritmo de acceso a una dirección de memoria:
1. Se comprueba en la tabla de página que la página está cargada en
la memoria. Si esta se accede a la dirección
2. Si no está cargada en memoria se produce un fallo de página. El
proceso que solicito esa página se bloquea.
3. Se localiza la página demandada en el disco.
4. Se busca un marco libre en la lista de marcos libres.
5. Si hay marco libre se guarda en el la página. Se actualiza la tabla
de páginas indicando que dicha página está en el marco libre. Saltar al
paso 10
6. Si no existen marcos libres se ejecutará un algoritmo de reemplazo
para seleccionar una víctima.
7 Si la víctima elegida tiene su bit de modificación a uno (necesita ser
actualizada), se transfiere al disco y se produce un cambio de
contexto para pasar a ejecutar otro proceso mientras termina la
transferencia, pero marcando el marco de página para que no pueda
ser actualizado.
8. Una vez actualizada la memoria virtual en caso necesario, se
actualiza la tabla de páginas indicando que la página 1 ya no está en
memoria.
9. Se carga la página en el marco libre, actualizando la tabla de
páginas y la tabla de marcos.
10. Se restauran los valores del proceso que quedó interrumpido por
el fallo de página y se reanuda a su ejecución.
1
1º SMR Sistemas Operativos Monopuesto
GESTIÓN DE MEMORIA.
d) La memoria tiene 8 marcos de página y para cargar en memoria los tres procesos
necesitaríamos 12 marcos de páginas por lo que en un momento determinado tendrá que haber
4 páginas en la memoria virtual (disco duro).
2
1º SMR Sistemas Operativos Monopuesto
GESTIÓN DE MEMORIA.
PÁGINA CONTENIDO
0 A0
1 A1
2 A2
3 A3
4 A4
5 A5
6 A6
7 A7
MARCOS CONTENIDO
0 A1
1 A2
2 A3
3 A4
Determinar:
Tamaño de la memoria física.
Tabla de páginas del proceso (supón que sólo hay uno)
3
1º SMR Sistemas Operativos Monopuesto
GESTIÓN DE MEMORIA.
La tabla de páginas de ese proceso:
El contenido A6 está dentro de la página 6 del proceso. Dicha página no está cargada en memoria RAM,
por lo que ocurriría un fallo de página y habría que seleccionar una “víctima” entre todas las páginas
cargadas en memoria RAM en sus respectivos marcos de página.
Tanto si utilizamos el algoritmo de reemplazo de páginas FIFO o LRU la “víctima” será la página 1 con
contenido A1 que está alojada en el marco de página 0. Dicha página se llevará a la memoria virtual
(swap-out) (disco duro) y en su lugar se cargará (swap-in) la página 6 en el marco de página 0.
Memoria virtual:
PÁGINA CONTENIDO
0 A0
1 A1
2 A2
3 A3
4 A4
5 A5
7 A7
MARCOS CONTENIDO
0 A6
1 A2
2 A3
3 A4
4
1º SMR Sistemas Operativos Monopuesto
GESTIÓN DE MEMORIA.
La tabla de páginas de ese proceso quedará:
PROCESO P2
PÁGINA CONTENIDO
0 E
1 F
2 G
3 H
MEMORIA FÍSICA
MARCO CONTENIDO
0 F
1 C
2 A
3 E
5
1º SMR Sistemas Operativos Monopuesto
GESTIÓN DE MEMORIA.
PROCESO P1:
PÁGINA MARCO VÁLIDO
(SÍ/NO)
0 2 SI
1 NO
2 1 SI
3 NO
PROCESO P2:
PÁGINA MARCO VÁLIDO
(SÍ/NO)
0 3 SI
1 0 SI
2 NO
3 NO
6
1º SMR Sistemas Operativos Monopuesto
GESTIÓN DE MEMORIA.
EJERCICIO 4
Tenemos un sistema con memoria virtual segmentada. En dicho sistema se ejecutan dos procesos.
Se muestra la tabla de segmentos y el contenido de cada segmento de cada proceso. Todos los
números se especifican en decimal. Suponemos que los procesos tienen todos sus segmentos en la
memoria RAM.
PROCESO 1
SEGMENTO DIRECCIÓN LONGITUD CONTENIDO
DE
COMIENZO
0 (CÓDIGO) 800 90 A
1 (DATOS) 900 100 B
2 (PILA) 300 80 C
3 (EXTRA) 400 120 D
PROCESO 2
SEGMENTO DIRECCIÓN LONGITUD CONTENIDO
DE (límite)
COMIENZO
(base)
0 (CÓDIGO) 600 140 E
1 (DATOS) 900 100 B
2 (PILA) 000 75 G
3 (EXTRA) 400 120 D
a) Dibujar la memoria física, indicando para cada segmento su dirección inicial y su dirección fi-
nal.
0900 - 1000 B
0800 - 0890 A
0600 - 0740 E
0400 - 0520 D
0300 - 0380 C
0000 - 0075 G
7
1º SMR Sistemas Operativos Monopuesto
GESTIÓN DE MEMORIA.
¿Qué pasaría en el proceso 1 si por mediación de una instrucción de salto se intentara acce-
der a la dirección 103 del segmento de código?
Si el proceso 1 si por mediación de una instrucción de salto intentara acceder a la dirección 103 del
segmento de código intentaría acceder a la dirección 0903 que pertenece al segmento de datos y
provocaría un error de violación de memoria (Segmentation Fault).