Está en la página 1de 36

UNIVERSIDA

D MARIANO
GALVEZ
CENTRO UNIVERSITARIO DE PORTALES
INGENIERIA EN SISTEMAS
PROGRAMACION III
Ing. Axel Aguilar
Administración de
memoria
ADMINISTRACION
Los programas deben ser llevados a la memoria y convertirse en procesos para ser
ejecutados.
Cola de entrada: Colección de programas en disco que esperan para ser llevados a la
memoria para ejecución.
La parte del sistema operativo que administra la memoria se llama administrador de
memoria.
La memoria principal es un depósito de datos a los que se puede acceder rápidamente y
que son compartidos por la CPU y los dispositivos de E/S.
Funciones: qué memoria se está ejecutando, quién la usa, qué procesos pueden
cargarse, asignación y liberación de memoria.
Vinculación de las instrucciones y los
datos a la memoria
Puede realizarse en tres estadios:
Tiempos de compilación: Si se conoce previamente la ubicación de memoria, puede
generarse código absoluto, el código debe ser recompilado si la dirección de inicio
cambia.
Tiempo de carga: Si se conocen las direcciones en tiempo de compilación, debe
generarse código reubicable.
Tiempo de ejecución: La vinculación se retarda hasta el tiempo de corrida si los
procesos pueden ser movidos durante su ejecución de una posición de memoria a
otra.
Overlays (Superposiciones)
Mantiene en memoria solo aquellas instrucciones y datos que se requieren en un
momento determinado.
Se utilizaba cuando el proceso era mayor que la cantidad de memoria destinada para él.
Se implementaba por el usuario, no se requería un soporte especial del sistema operativo,
su programación era compleja.
Asignación contigua
Generalmente la memoria tiene dos particiones:
Para el sistema operativo residente que puede ser colocado en memoria baja o alta de
acuerdo a la ubicación del vector de interrupciones.
Los procesos de los usuarios se colocan en la otra partición.
Asignación contigua
Asignación de partición única
Se usa el esquema de registro de reubicación para proteger a los procesos de los
usuarios entre sí, y para proteger el código y los datos del sistema operativo.
El registro de ubicación tiene el valor de la dirección física más pequeña ; el registro
límite contiene el rango de las direcciones lógicas – cada dirección lógica debe ser
menor que el registro límite.
Asignación contigua
Asignación con múltiples particiones
Hueco: Bloque de memoria disponible; se establecen varios huecos (particiones) de
diferentes tamaños a través de la memoria.
Cuando un proceso llega, es asignado a un hueco lo suficientemente grande para
contenerlo.
El sistema operativo mantiene información acerca de las particiones asignadas y las
particiones libres.
Asignación con particiones variables
Asignación dinámica de las particiones,
Compresión (garbage collector): Ciber CDC 40mb/seg, micro 1mb/seg
Fragmentación: Huecos después de ejecución.
Condensación: Fusión de 2 huecos contiguos.
Partición variable
Compresión/
compactación de
memoria
Problema de la
asignación dinámica de
la memoria
Cómo satisfacer la solicitud de un
tamaño n a partir de huecos libres.
Estrategias de colocación:
Mejor ajuste: hueco que mejor quepa y menor desperdicio. Busca en toda la lista (puede
estar ordenada).
Primer ajuste: El primer hueco que le sirva. Búsqueda al principio o a partir de este
punto.
Peor ajuste: Hueco más grande.
Siguiente ajuste.
Estrategia más sofisticada: Sistema Buddy.
Listas de huecos con tamaños potencias de 2.
El primer ajuste y el mejor ajuste son mejores que el peor ajuste en términos de
velocidad y utilización de almacenamiento.
Primer ajuste
Mejor ajuste
Peor ajuste
Sistema Buddy
El espacio completo disponible se trata como un único bloque de tamaño 2U.
Si se realiza una petición de tamaño s, tal que 2U-1<s<=2U, se asigna el bloque
entero
En otro caso, el bloque se divide en dos bloques buddy iguales de tamaño.
El proceso continúa hasta que el bloque más pequeño mayor o igual que s se genera.
Almacenamiento virtual
Capacidad de obtener acceso a direcciones en un espacio de almacenamiento mucho
mayor que el disponible en el almacenamiento primario del sistema.
SO Atlas, Manchester 1960.
Disociación de las direcciones (V) a las que hace referencia un proceso en ejecución
de las direcciones disponibles en el almacenamiento primario (R).
Las direcciones calculadas por procesos no necesariamente las disponibles en el
almacenamiento primario
Dirección real: Dirección disponible en memoria.

Dirección virtual: Direcciones usadas por procesos.


GRACIAS

También podría gustarte