Está en la página 1de 26

UNIDAD 7:

ADMINISTRACIÓN
DE MEMORIA
PROGRAMACION III
Contenido

Introducción
Modelo
Mono-programación
Multiprogramación

2
Introducción
La organización y la administración de la memoria
principal (primaria o real) es uno de los factores mas
importantes que influyen en el diseño de los Sistemas
Operativos.

Históricamente la memoria ha sido un recurso caro, por


lo que se desea optimizar su uso, aunque en la
actualidad ha bajado de precio, los programas han
aumentado su tamaño.

3
Modelo de memoria

4
Técnicas de administración de
memoria

5
Mono-programación
La forma más simple de
administrar memoria es
ejecutando sólo un programa a la
vez.

Cuando usuario digita un


comando, el sistema operativo
carga el programa
correspondiente en la memoria, y
lo ejecuta. Cuando el programa
termina, el sistema operativo
solicita un nuevo comando y carga
el nuevo programa en la memoria,
sobre escribiendo el anterior.

6
Mono-programación
Ventajas:
– Simple de implementar
Desventajas:
– No permite dividir un programa de usuario en varios procesos
– Bajo rendimiento en sistemas de tiempo compartido
– Menor utilización de recursos.

7
Multi-programación
Multiprogramación:

Varios procesos en memoria.


➔ La memoria debe ser dividida en sectores. Ejemplo

8
Multi-programación

Multiprogramación:
Ejemplo:
■ Wired - total de memoria asociada al sistema operativo
■ Active - total de memoria activa
■ Inactive – total de memoria inactiva
■ Cache - memoria en la cola de caché de búfer
■ Free – memoria libre en el sistema

¿Cómo se logra mantener varios procesos en memoria?

9
Multi-programación
Algunos problemas

• El código debe ser relocalizable:

• Ajustar las direcciones de un programa al


sitio donde fue cargado, para que éste pueda
ser ejecutado.

10
Multi-programación
Algunos problemas

El código debe ser relocalizable:


100: add $a, 1
101: jump 110
....
110: load $b,$a

200: add $a, 1


201: jump 210
...
210: load $b, $a
11
Multi-programación
Algunos problemas
Un proceso no debe interferir con otro

Límite - Base Base Límite

DIR < +
DIR
No
Base
Error!
Memoria
12
Multi-programación
Multiprogramación con particiones fijas

Filas independientes Kernel

210 250 300 350 400Kb

100 200Kb

500 450 590 600Kb

Memoria Real

13
Multi-programación
Multiprogramación con particiones fijas

Kernel
Fila única
400Kb

100 500 550 190 200Kb

600Kb

Memoria Real
14
Multi-programación
Multiprogramación con particiones fijas

Desventajas .

• Se hace una mala utilización de la memoria


debido a la poca flexibilidad del método.

• Es complicado correr programas más grandes


que el tamaño de la partición.

15
Multi-programación
Multiprogramación con particiones fijas

Desventajas .

Fragmentación interna.

•Ocurre cuando un proceso no ocupa toda la


memoria asignada.

•El espacio libre no puede ser utilizado por ningún


otro proceso.

16
Multi-programación
Multiprogramación con particiones fijas

Ventajas .

•Administración es relativamente simple.

•Protección entre procesos se puede realizar


mediante el registro base y la longitud de la zona

17
Multi-programación
Multiprogramación con particiones variables

La memoria se divide en bloques de diferente tamaño


de acuerdo a las necesidades del proceso.

Ventajas

Define bloques del tamaño requerido

➔ termina con la fragmentación interna


➔ permite un mejor uso de la memoria

18
Multi-programación
Multiprogramación con particiones variables

Desventajas Kernel
100Kb
Fragmentación externa: 300Kb

200Kb

Existen 400Kb libres 250Kb


100Kb
➔Pero un proceso de Memoria Real
400Kb no puede ser cargado
en memoria ...

19
Multi-programación
Multiprogramación con particiones variables

Implementación con Listas/BitsMaps

20
Multi-programación
Multiprogramación con particiones variables

Estrategias para la asignación de memoria

Primer Ajuste (first fit):


Se asigna el primer espacio
que sea mayor al tamaño deseado

21
Multi-programación
Multiprogramación con particiones variables

Estrategias para la asignación de memoria

Mejor Ajuste (best fit):


Se asigna el espacio cuyo tamaño
exceda en la menor cantidad al tamaño
deseado.

- Requiere de una búsqueda exhaustiva.


- Mayor fragmentación externa.
- Tiende a llenar con trozos de memoria
pequeños.
22
Multi-programación
Multiprogramación con particiones variables

Estrategias para la asignación de memoria

Peor Ajuste (worst fit):


Se asigna un espacio de memoria cuyo
tamaño exceda en la mayor cantidad al
tamaño deseado.

- Requiere de una búsqueda exhaustiva.


- Genera la mayor fragmentación interna

23
Multi-programación

Multiprogramación con particiones variables

Administración de memoria insuficiente

Compactación de memoria:
Es una fusión de bloques adyacentes
para formar un sólo bloque más
grande.

24
Multi-programación
Multiprogramación con particiones variables

Estrategias para la asignación de memoria

Compactación de
memoria:

25
Multi-programación
Multiprogramación con particiones variables

Estrategias para la asignación de memoria

Swapping:
Se puede crear un nuevo espacio de
memoria eliminando uno de los procesos
residentes y temporalmente enviarlos a
almacenamiento secundario.

26

También podría gustarte