You are on page 1of 10

Unidad VI.

- Administración de Memoria Principal

1.- Definición de Memoria:


Recurso limitado caracterizado por almacenar información de manera temporal.

2.- Funciones del Administrador de Memoria


● Objetivos de la Administración de Memoria
● Ofrecer a cada proceso un espacio lógico propio.
● Proporcionar protección entre los procesos.
● Permitir que los procesos compartan memoria.
● Dar soporte a las distintas regiones del proceso.
● Maximizar el rendimiento del sistema.

3.- Organización de la Administración de Memoria


3.1 Administración de Memoria Contigua.
3.1.1 Partición Fija
Esquema de Administración de Memoria contigua el cual consiste en decidir
desde el comienzo (En la instalación del SO), sobre el número de particiones en
que la memoria principal será dividida así como el tamaño de cada partición.
La correspondencia de cada bloque de memoria es a uno y sólo un proceso.

Política de asignación de espacio


○ El primer ajuste (first-fit). Asigna el primer espacio disponible donde un proceso
pueda ser cargado

○ El mejor ajuste (best-fit). Se elige la zona libre más pequeña donde se ajuste el
proceso. También se puede definir como el primer espacio disponible donde se
genere menor fragmentación interna.
Ejemplo P1, P2, P3 con tamaños (2K,5K,2K)

Primer Ajuste
2 SO
P1
5K
3k
P3
3K
1k
P2
7K
2k

Se genera Fragmentación Interna, se define como el espacio de memoria no utilizable,


generado dentro de una partición cuando un proceso es cargado.

Mejor Ajuste

2 SO
5K P2
P1
3K
1k
P3
7K
5k

3.1.2 Partición Variable


El número de Particiones, así como el tamaño de cada una de las particiones, es
variable.
Al igual que la partición fija, la correspondencia de procesos a bloques es uno a uno.
Al principio solamente están definidas 2 particiones. La correspondiente al SO y la
partición donde se empezaran a cargar los procesos.

Ejemplo P1, P2, P3, P4, P5, P6 con tamaños (2K, 5K, 2K, 5K, 4K, 2k)
1AB 2AB 3AB
2 SO SO SO

2k P1 2k P1
15k
13k 5k P2
8k

4AB 5AB 6A
SO SO SO

2k P1 2k P1 2k P1

5k P2 5k P2 5k
2k P3 2k P3 2k P3
6k 5k P4 5k P4
1k 1k
Sale el proceso P2
quedando espacio
disponible

7A 8A
SO SO

2k P1 2k P1

4k P5 4k P5
1k 2k P3 Otro Escenario, en vez
2k P3 5k P4 de Salir P2 hubiese
5k P4 2k P6 salido P4
1k
Se deben compactar las
particiones 3 y 6 para
formar una partición de
2k
6B 7B 8B
SO SO SO

2k P1 2k P1 2k P1

5k P2 5k P2 5k P2
2k P3 2k P3 2k P3
5k 4k P5 4k P5
1k 1k 2k P6
1k
Se deben unificar
(Condensación) los espacios
disponibles contiguos o
adyacentes

Fragmentación Externa: Espacio de memoria generado cuando un proceso es


cargado, fuera de la partición que se define, a diferencia de la fragmentación interna,
este espacio, si es utilizable.

Política de asignación de espacio


○ Primer Ajuste: Definidas en Partición Fija
○ Mejor Ajuste: Definidas en Partición Fija (para fragmentación externa)
○ El peor ajuste: (worst-fit). Se elige el bloque disponible más grande. Con ello se
pretende que no se generen nuevos bloques disponibles pequeños. Sin embargo,
sigue siendo necesario recorrer toda la lista de particiones disponibles o
mantenerla ordenada por tamaño.
3.1.3.- Cálculo de Direcciones Físicas
Dirección Lógica:
Dirección manejada por un proceso. Generada por la CPU

Espacio de Direcciones Lógicas


Conjunto de direcciones generadas por un programa.

Dirección Física:
Dirección manejada por el Administrador de Memoria. Designa posición real en la
memoria principal.

Espacio de Direcciones Físicas


Conjunto de posiciones de memoria correspondientes a las direcciones lógicas

Cálculo de Direcciones Físicas (Administración Contigua)


Registro límite. Se comprueba que cada dirección que genera el proceso no es mayor que
el valor almacenado en este registro. En caso de que lo sea, se generará una excepción.

Registro base. Una vez comprobado que la dirección no rebasa el límite permitido, el
procesador le sumará el valor de este registro, obteniéndose con ello la dirección de memoria
física resultante.

Proceso A Proceso B Memoria Física


0 _______ 0 _______ 0
SO 2k
1 ____ 1 ____ 1
2 ______ 2 _______ PB 7k 2
3 _______ 3 _______ 3
4 ______ 4 ______ 4
5k 5 _______ 5
6 ________ 6
7K 7
8
9
3k 10
11
12
13
PA 5k 14
15
16

Registro Base (Bandera) Para el Proceso A es 12 y Para B es 2. Por ende a cada una de las
direcciones del espacio lógico de A y de B se le suma la base correspondiente.
DirFa(3) = Base + 3 = 12 + 3 = 15.
DirFb(3) = Base + 3 = 2 + 3 = 5.
3.2.- Administración de Memoria No Contigua
3.2.1 Paginación
● Consiste en dividir a la memoria principal en bloques de igual tamaño denominados
marcos de paginas, y a cada proceso en bloques del mismo tamaño de los marcos
denominados Páginas.
● Tamaño de las Páginas: Múltiplo de 2
● Tamaño del Marco de Páginas = Tamaño de la Página.

● Se clasifica en
○ Paginación Simple
Para que un proceso pueda ejecutarse, cada una de sus páginas deben estar
cargadas en algún marco de página.

○ Paginación según demanda.


Un proceso podrá ejecutarse, sin tener todas sus páginas cargadas en algún
marco de página. Estas se irán cargando a medida que se requieran.

● Fallo de Página: Cuando se hace referencia a una página y ésta no está cargada en
algún marco de página se produce lo que se llama Fallo de Página.

Tabla de Páginas
Estructura que contiene información de las páginas de un proceso, tal como, número
de página y número del marco de página.

Nº de Marco de
Página Página
0
1
2
3
Tabla de Páginas con espacio de direcciones

Tabla de Páginas de un Proceso A Tabla de Páginas de un Proceso B


Nº de Marco de Nº de Marco de
Página Página Página Página
0 5 0 13
1 1
2 2 7
3 15 3 11
4 4
5 5 0
6 2
7
8

Cantidad de Páginas: Proceso A tiene 6 Págs, Proceso B tiene 9 Páginas

Cantidad y rango de direcciones:


Suponiendo un tamaño de 4Kb el tamaño de la Página y por cada 1K una dirección.
● Proceso A:
El proceso A es de tamaño 23kb por ende tiene 23 direcciones y su espacio de
direcciones va desde 0 a 22
¿Cuántas páginas tiene el proceso A y de que rango son sus direcciones lógicas?

● Proceso B
El proceso B es de tamaño 36Kb por ende tiene 36 direcciones y su espacio de
direcciones va desde 0 a 36
¿Cuántas páginas tiene el proceso B y de que rango son sus direcciones lógicas?

Tabla de Páginas de un Proceso A Tabla de Páginas de un Proceso


B
Nº de Marco de Nº de Marco de
Págin Página Página Página
a
0 5 0-3 0 13 0-3
1 4-7 1 4-7
2 8-11 2 7 8-11
3 15 12-15 3 11 12-1
5
4 16-19 4 16-1
9
5 20-22 5 0 20-2
3
6 2 24-2
7
7 28-3
1
8 32-3
5

Cálculo de Direcciones Físicas (Administración No Contigua) Ejemplo


Se tiene una memoria principal de 20Kb, dividida en 5 Marcos de Páginas . La
memoria presenta el siguiente escenario:
si el tamaño de la memoria es de 20Kb y hay 5 Marcos de Páginas, se tiene que:
Tamaño del Marco = Tamaño de Página = 20 kb / 5 = 4 kb.

0 P1A 0-3
1 P3B 4-7
2 P3C 8-13
3 P0B 12-15
4 P2A 16-19
Se tienen Tres Procesos A,B y C de tamaños 30Kb, 19Kb, 12Kb

Construya las tablas de páginas para los procesos A, B y C

Cálculo de una Dirección Física (Real) para una Dirección Lógica (Relativa) “X”. F(p,d)
1. Hallar la Página y el Desplazamiento que contiene la dirección X.
X div (Tamaño de Página) = #Página
X mod (Tamaño de Página) = Desplazamiento
2. Ubicar en la Tabla de Página, el marco de página donde está cargada la página obtenida
en 1.
3. Aplicar la Siguiente Fórmula:
(#Marco de Página * Tamaño de Marco de Página) + Desplazamiento

Ejercicios
Hallar la Dirección Física de las siguientes direcciones lógicas (relativas). A13, A51, B5, C41
A13 – Hallamos la página y el desplazamiento
Página: 13 div 8 = 1, Desplazamiento 13 mod 8 = 5.
Ubicamos el Marco de Página: Marco de Página (1) = 0

Aplicando la fórmula nos queda lo siguiente:


DirF(A13) = 0 * 8 + 5 = 5
A51
Página: 51 div 8 = 6
Desplazamiento 51 mod 8 = 3
Marco de Página: Página no cargada en memoria principal
Ocurre Fallo de Página
C41
Página: 41 div 8 = 5
Desplazamiento 41 mod 8 = 1
Marco de Página 2
Aplicando la fórmula nos queda lo siguiente:
DirF(C41) = 2 * 8 + 1 = 17

You might also like