La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Administración de Memoria

Presentaciones similares


Presentación del tema: "Administración de Memoria"— Transcripción de la presentación:

1 Administración de Memoria
Capítulo 5 (Milenkovic)‏

2 Memoria Uno de los principales recursos en un sistema de multiprogramación. Capacidad finita. Ningún proceso puede ser activado antes que le sea asignada una cierta cantidad de memoria.

3 Gestor de memoria Se ocupa principalmente de asignar memoria.
Satisface dos necesidades conflictivas: Separación de espacios de direcciones. Compartición de memoria. Dos formas de gestionar: Asignación contigua. Asignación no contigua.

4 Asignación contigua Cada objeto lógico es colocado en un conjunto de posiciones de memoria con direcciones estrictamente consecutivas. Se utilizan particiones: Asignar a los procesos particiones libres. Cuando el proceso termina, su partición se libera.

5 Particiones Pueden ser: Particiones estáticas: Particiones dinámicas:
Estáticas: tamaño fijo. Dinámicas: tamaño variable. Particiones estáticas: Fragmentación interna. Particiones dinámicas: Fragmentación externa.

6 Manejo de particiones La partición debe ser lo suficientemente grande para contener al proceso. El SO debe llevar la cuenta de los estados: Libre. En uso. Tabla de descripción de particiones.

7

8 Asignación de particiones
Cuando un proceso va a ser creado, el sistema operativo intenta asignarle una partición libre de tamaño suficiente. Marca el estado de la partición como ASIGNADO. Cuando un proceso termina, es necesario cambiar el estado a LIBRE. Es posible guardar la partición en el PCB o el pid en la TDP.

9 Asignación de Particiones
2 problemas: Estrategia de asignación de partición: como seleccionar una partición específica. No hay ninguna partición adecuada para asignación.

10 No hay una partición adecuada
Todas las particiones están asignadas. Algunas particiones están libres, pero ninguna es lo suficientemente grande. Mantener en estado nuevo.

11 Reubicación Los procesos se cargan en posiciones de memoria arbitrarias. Los programas deben ser capaces de ejecutarse sin importar su dirección. Direcciones virtuales: Percibidas por el programador. Direcciones fisicas: Posiciones reales en la memoria.

12 Reubicación dinámica La correspondencia entre direcciones virtuales y direcciones físicas se efectúa en tiempo de ejecución. Se asume que la posición inicial es la dirección virtual 0. Es común implementarlo por medio de registros base especializados.

13 Reubicación dinámica cont.
El registro base se inicializa con la dirección física de carga inicial. Tabla de descripción de particiones. Cada referencia a memoria se traduce a una dirección física mediante: Registro base + dirección virtual

14

15 Asignación en particiones dinámicas
Definir las particiones de acuerdo con los requisitos de cada proceso. Tamaño y número de particiones no están limitados.

16 Asignación en particiones dinámicas
Modulo de gestión de memoria intenta crear una partición adecuada. Localizar un área libre adecuada. Cada partición está definida por su dirección base y tamaño.

17 Ejemplo Suponga que se requiere cargar un proceso P de tamaño P_tamaño.

18 Buscar un área libre L tal que L_TAMAÑO >= P_TAMAÑO
P_base=L_base, L_base=P_base+P_tamaño, L_tamaño=L_tamaño-P_tamaño

19 Representación de las particiones
Dos posibilidades: Milenkovic: Se usa una TDP y una lista de memoria libre. Dos estructuras para representar lo mismo. Al inicio la memoria libre está representada por un solo bloque contiguo.

20 Representación de las particiones cont.
Clase: Se utiliza una lista ordenada para representar las particiones. Una sola estructura de datos. Las particiones se pueden encontrar en estado libre o asignado. El PCB contiene un puntero al nodo de la partición que le corresponde. El nodo (partición) tiene un campo que indica el pid del proceso dueño.

21 Búsqueda de un área libre adecuada
Los algoritmos más habituales para selección de un área libre son: Primer ajuste Siguiente ajuste. Mejor ajuste Peor ajuste

22 Primer ajuste y siguiente ajuste
La primera partición L, con L_tamaño>=P_tamaño se escoge. En siguiente ajuste, se reanuda la búsqueda desde el punto anterior. No busca desde el principio. Evita que los bloques pequeños se acumulen al comienzo de la lista.

23 Mejor ajuste y peor ajuste
Asigna el bloque más pequeño que pueda almacenar a P. Peor ajuste: Asigna el bloque más grande que pueda almacenar a P.

24 ¿Cuál de los 3 es mejor? Velocidad. Desperdicio de memoria.

25 Liberación de particiones
Localizar la entrada del proceso en la TDP. Si el proceso va a ser retirado de memoria, copiar su imagen al archivo de intercambio. Indicar en el PCB que el proceso no tiene memoria (su puntero a nulo). Poner la partición en estado libre y combinarla con áreas libres contiguas.

26 Juntar huecos Se tiene un conjunto de particiones libres contiguas:
Hacerlas un solo bloque libre. De otra manera se puede reportar que no hay una partición lo suficientemente grande.

27 Compactación Las áreas de memoria libre están entremezcladas con las particiones asignadas. Fragmentación externa. Es común tener esta situación en sistemas con asignación dinámica. Los tiempos de vida de los procesos residentes son diferentes.

28 Compactación cont. Orden de las devoluciones de memoria es diferente del orden de las asignaciones. Juntar huecos retrasa el problema en vez de evitarlo. Si la memoria está extremadamente fragmentada: Reubicar algunas o todas las particiones en uso a un extremo de la memoria. Una única área libre grande.

29 ¿Cuándo realizar compactación?
Siempre que sea posible: Al iniciar o terminar un proceso. Penaliza el rendimiento. Sólo cuando es necesario: No existe una partición adecuada y la Memoria total libre >= tamaño de proceso a cargar. En caso contrario es inútil hacer compactación.


Descargar ppt "Administración de Memoria"

Presentaciones similares


Anuncios Google