Vous êtes sur la page 1sur 8

1º SMR Sistemas Operativos Monopuesto

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.

EJERCICIO 1 Tenemos tres procesos cargados en memoria. El primer proceso


ocupa tres páginas, el segundo cuatro y el tercero cinco. Sabiendo
que la memoria RAM tiene 4 MB y que en total hay 8 marcos
a) ¿Cuánta memoria ocupa cada marco? (Tamaño de marco).
b) ¿Cuánta memoria ocupa cada página? (Tamaño de página).
c) ¿Cuánta memoria virtual ocupa cada proceso?
d) ¿Se tendrá que mover alguna página al disco duro? ¿Por qué?

a) y b) 4 MB / 8 = 512 KB ocupa cada marco de página y cada página

c) P1 ocupa 1536 KB (3 páginas)


P2 ocupa 2048 KB (4 páginas)
P3 ocupa 2560 KB (5 páginas)

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.

EJERCICIO 2 Dado un sistema de paginación con memoria virtual (paginación por


petición o bajo demanda). Supongamos que tenemos una memoria
virtual de 128 KB. La memoria virtual tiene el siguiente contenido:

PÁGINA CONTENIDO
0 A0
1 A1
2 A2
3 A3
4 A4
5 A5
6 A6
7 A7

La memoria física tiene el siguiente contenido:

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)

PÁGINA MARCO PRESENTE (VÁLIDO) /


AUSENTE (INVÁLIDO)
0 I
1 0 V

 Explicar paso a paso y en detalle qué sucede si se intenta


acceder al contenido A6. Actualizar el contenido de la
memoria física, la lógica y la tabla de páginas en caso
necesario.

128 KB / 8 páginas = 16 KB ocupa cada página y cada marco de página

La memoria física contiene 4 marcos de página por lo que tiene un tamaño de 4 x 16 KB = 64 KB

3
1º SMR Sistemas Operativos Monopuesto
GESTIÓN DE MEMORIA.
La tabla de páginas de ese proceso:

PÁGINA MARCO PRESENTE (VÁLIDO) /


AUSENTE (INVÁLIDO)
0 I
1 0 V
2 1 V
3 2 V
4 3 V
5 I
6 I
7 I

Al intentar acceder al contenido A6 ocurre lo siguiente:

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.

Las tablas quedarán de la siguiente forma:

Memoria virtual:

PÁGINA CONTENIDO
0 A0
1 A1
2 A2
3 A3
4 A4
5 A5
7 A7

La memoria física tiene el siguiente contenido:

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á:

PÁGINA MARCO PRESENTE (VÁLIDO) /


AUSENTE (INVÁLIDO)
0 I
1 I
2 1 V
3 2 V
4 3 V
5 I
6 0 V
7 I

EJERCICIO 3 Tenemos el siguiente esquema de memoria lógica de dos procesos:


PROCESO P1
PÁGINA CONTENIDO
0 A
1 B
2 C
3 D

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

a) Rellena las tablas de páginas de cada proceso y el contenido


del disco.

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

CONTENIDO MEMORIA VIRTUAL ( DISCO DURO):


PÁGINAS EN EL DISCO
B
D
G
H

b) Supongamos que el proceso P1 quiere acceder a su página 0.


¿Habría fallo de página? NO ¿Qué cambios habría que reali-
zar?

c) Supongamos que el proceso P1 quiere acceder a su página 1.


¿Habría fallo de página? SI ¿Qué cambios habría que reali-
zar? Habrá que seleccionar una “víctima” utilizando alguno
de los algoritmos de reemplazo de páginas. Dicha página se
llevará a la memoria virtual (swap-out) (disco duro) y en su
lugar se cargará (swap-in) la página 1 en el marco de página
que se queda libre.

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.

CONTENIDO MEMORIA RAM

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.

b) ¿Qué información comparten estos procesos?

Comparten el segmento de datos y el extra.

¿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).

Vous aimerez peut-être aussi