You are on page 1of 27

ADMINISTRACION DE

LA MEMORIA PRINCIPAL
INF 2310 – SISTEMAS OPERATIVOS I
TEMA 4 –Parte 1
Objetivos:
• El sistema operativo con el apoyo de hardware de gestión de memoria
del procesador, debe repartir el almacenamiento existente
proporcionando un espacio de memoria independiente para cada
proceso y evitando la posible interferencia voluntaria o involuntaria de
cualquier otro proceso.
• Se podría considerar que en el caso del procesador se realiza un
reparto en el tiempo, en tanto que en el caso de la mamoria se
realizaría un reparto en el espacio.
• Independientemente de la política de gestión de memoria, se pueden
distinguir los siguientes objetivos deseables:

1. Ofrecer a cada proceso un espacio lógico propio.


2. Proporcionar protección entre procesos.
3. Permitir que los procesos compartan memoria
4. Dar soporte a las distintas regiones del proceso
5. Maximizar el rendimiento del sistema
6. Proporcionar a los procesos mapas de memoria muy grandes
Procesamiento de un Programa de Usuario
Vinculación de Direcciones

• La vinculación de instrucciones y datos a direcciones de memoria puede


realizarse en tres etapas diferentes

• Compilación: Si se conoce a priori la posición que va a ocupar un proceso en la


memoria se puede generar código absoluto con referencias absolutas a memoria; si
cambia la posición del proceso hay que recompilar el código

• Carga: Si no se conoce la posición del proceso en memoria en tiempo de compilación


se debe generar código reubicable

• Ejecución: Si el proceso puede cambiar de posición durante su ejecución la


vinculación se retrasa hasta el momento de ejecución. Necesita soporte hardware
para el mapeo de direcciones (ej., registros base y límite)
Espacio de Direcciones Físicas y Lógicas
• El concepto de espacio de direcciones lógicas vinculado a un
espacio de direcciones físicas separado es crucial para una
buena gestión de memoria

• Dirección lógica – es la dirección que genera el proceso; también se


conoce como dirección virtual
• Dirección física – dirección que percibe la unidad de memoria

• Las direcciones lógicas y físicas son iguales en los esquemas de


vinculación en tiempo de compilación y de carga; pero difieren
en el esquema de vinculación en tiempo de ejecución
Unidad de Gestión de Memoria (MMU)
• La MMU (Memory-Management Unit) es un dispositivo hardware
que transforma las direcciones virtuales en físicas

• Con la MMU el valor del registro de reubicación (registro base) es


añadido a cada dirección generada por un proceso de usuario en el
momento en que es enviada a la memoria

• El programa de usuario trabaja con direcciones lógicas; nunca ve las


direcciones físicas reales
Modos de Gestión de Memoria
Memoria Real Memoria Real Memoria Real Memoria Virtual
Mono programación Multiprogramación Multiprogramación Multiprogramación

Partición Paginación Segmentación Paginación Segmentación


Virtual Virtual

Fija Dinámica Segmentada-Paginada Segmentada Paginada Virtual

Reubicación, Protección
Administración de Sistemas Monoprogramados
En sistemas monoprogramados generalmente la memoria principal
está dividida en dos particiones:
— Una para el usuario:
• Un proceso con su código.
• Dirección a partir de la que se cargan programas de usuario.
— Otra para el sistema operativo residente (memoria baja).

- Es necesario proteger las particiones entre sí (registro valla)


Administración en Sistemas Multiprogramados

• Es deseable que haya varios procesos en memoria para su


ejecución concurrente.
• Se debe compartir la memoria entre varios procesos que esperan
asignación de la misma.
• Esquemas de asignación de memoria:
— Contigua: particiones fijas y variables
— Intercambio (swapping)
— Paginación
— Segmentación
— Segmentación paginada
Modos de Gestión de Memoria
Memoria Real Memoria Real Memoria Real Memoria Virtual
Mono programación Multiprogramación Multiprogramación Multiprogramación

Partición Paginación Segmentación Paginación Segmentación


Virtual Virtual

Fija Dinámica Segmentada-Paginada Segmentada Paginada Virtual

Reubicación, Protección
Particiones Fijas

Particiones de Igual Tamaño:

• Nivel de multiprogramación limitado por número de


particiones.
• Hay una cola con procesos que quieren utilizar memoria
y ejecutarse.
• Hay una tabla para indicar particiones ocupadas y libres.
Particiones Fijas

• Particiones de diferentes tamaños:


Para procesos que quieren utilizar
memoria para ejecutarse:
— Podemos tener varias colas:
— Cada proceso se asigna a una cola
en función de su tamaño.
— Podemos tener una única cola:
— Cuando se libera una partición ->
se asigna al primer proceso que cabe
en ella.
ESTRATEGIA
• Solicitud.
• Por demanda

• Ubicación.
• Partición de igual tamaño.
• Si el proceso cabe en una partición se puede cargar

• Partición de diferente tamaño.


• Asignar a la partición más pequeña donde cabe
• Se genera dos tipos de colas: una cola, varias colas

• Reemplazo.
• Uno de los procesos se saca, según el planificador
14
Particiones Fijas
Reubicación:
¿En que partición entrará el proceso?.
— Existe Fragmentación Interna y Externa:
Interna:
— Una partición asignada y no ocupada totalmente por el proceso.
Externa:
— Un proceso quiere ejecutarse. hay una partición libre, pero de menor tamaño que el
proceso.
Protección: (en sistemas multiprogramados)
. Un proceso no acceda al área de memoria del otro.
. Si la reubicación es dinámica puede usarse registros base-límite.
Modos de Gestión de Memoria
Memoria Real Memoria Real Memoria Real Memoria Virtual
Mono programación Multiprogramación Multiprogramación Multiprogramación

Partición Paginación Segmentación Paginación Segmentación


Virtual Virtual

Fija Dinámica Segmentada-Paginada Segmentada Paginada Virtual

Reubicación, Protección
Particiones

Variables
Asignar a cada proceso sólo la memoria que necesita

200 200 200 200


400
500
200 C 200 C 200 C 200 C C
80
100 B 100 B 100 B 250
150 E
300 A 300 B 150
150 D D D
224 S.O. A S.O. S.O. S.O. S.O.

E esperando
A300K C200K D150K E225K
B100K Fragmentación externa
Administración de Memoria

PARTICION DINÁMICA
• Las particiones se crean dinámicamente por demanda.
• Son variables en tamaño y número
• Cada proceso se carga completamente en una única partición del tamaño del
proceso.

• Ventajas.
No existe fragmentación interna.
• Desventajas.
Fragmentación externa. Se debe compactar la memoria. El compactado
toma tiempo.

18
Algoritmos de gestión de huecos (Asignación de
Memoria)
• Lista encadenada: Asignación de memoria

1. First Fit “Primero en donde quepa”


2. Next Fit “Siguiente donde quepa”
3. Best Fit “Donde quepa mejor”
Muchos huecos inútiles ¡ Recorrer
(demasiado pequeños) toda la lista !
4. Worst Fit “Donde quepa peor”
Algoritmos de gestión trozos (First Fit)

• FIRST FIT (Primer ajuste) “Primero en donde quepa”

P P P P P P

P’
P P P P P’ P P
Algoritmos de gestión trozos (Next Fit)
• NEXT FIT (Siguiente ajuste) “Siguiente donde quepa”

Inicio de búsqueda del siguiente hueco


P

P P P P P P P P

P P P P P P P P P
Fragmentación externa
P P P P P P P P P P P P P P
Mejor Ajuste
El proceso se coloca en el espacio libre que más se ajuste al
tamaño.

S.O. A C B E D
0 100 300 600 800

S.O. A C B E D
0 100 300 600 800
Peor Ajuste
El proceso se coloca en el espacio libre más grande
disponible.

S.O. A C B E D
0 100 300 600 800

S.O. A C B E D
0 100 300 600 800
Protección de memoria: se utiliza código reubicable
— Si código reubicable -> se pueden usar registros base y límite.
Administración de Memoria
• Solicitud.
• Por demanda
• Ubicación.
• Primer ajuste. El primer bloque disponible que ubique
(parte del inicio)
• Siguiente ajuste. El siguiente bloque disponible que
ubique (parte desde la ubicación actual)
• Mejor ajuste. El bloque disponible que deje el menor
espacio libre (búsqueda exhaustiva)
• Reemplazo.
• Uno de los proceso se saca, según el planificador.

25
Administración de Memoria
• Primer ajuste. Es bueno, con baja compactación.
Puebla el inicio de la memoria

• Siguiente ajuste. Puebla el final de la memoria,


el siguiente bloque libre siempre está al final de
la memoria.

• Mejor ajuste. Tiene peores resultados, dado que


busca la partición que deje el hueco más
pequeño, la memoria se llena de huecos
pequeños. Se compacta con más frecuencia
Fragmentación
• Fragmentación Externa – hay suficiente memoria libre para
satisfacer una petición, pero esa memoria no es contigua
• Fragmentación Interna – la memoria asignada puede ser
ligeramente mayor que la solicitada; esta diferencia de
tamaño se encuentra en la partición pero no es usada
• La fragmentación externa se puede reducir por medio de la
compactación
• Mover las particiones de memoria asignadas para colocar toda la
memoria libre en un bloque contiguo
• Es posible sólo si la vinculación es en tiempo de ejecución
(reubicación dinámica)
• Hay problemas con la E/S
• Fijar la posición en memoria de los procesos que hacen E/S
• Hacer E/S sólo en buffers del SO

You might also like