Objetivos de la Gestión de Memoria
- Identificar la jerarquía de memoria.
- Exponer los objetivos y requisitos de un administrador de memoria.
- Exponer las estrategias de administración del recurso memoria.
- Exponer las técnicas de administración de memoria real
Mapa Conceptual de la Sesión
Organización Fisica de la Memoria
Organización lógica de la memoria
- La memoria principal es un arreglo de palabras o bytes, cada uno de los cuales tiene una dirección (espacio de direcciones).
- La interacción es lograda a través de un conjunto de lecturas y escrituras a direcciones especificas realizadas por los procesos.
Procesos en Memoria
- La memoria principal es un arreglo de palabras o bytes, cada uno de los cuales tiene una dirección (espacio de direcciones).
- La interacción es lograda a través de un conjunto de lecturas y escrituras a direcciones especificas realizadas por los procesos.
Memoria Virtual
- La memoria principal es pequeña como para acomodar todos programas y datos permanentemente.
- Por lo que es necesario implementar mecanismos de memoria virtual.
- La memoria virtual es una técnica para dar la ilusión de tener más memoria que la memoria principal.
Administrador de Memoria
La MMU es la unidad de administración de memoria que se encarga de traducir las direcciones lógicas generadas por el procesador, a direcciones físicas para ser alojadas en memoria principal.
El administrador de memoria tiene como objetivos:
- Ubicar, reemplazar, cargar y descargar procesos en la memoria principal
- Proteger la memoria de acceso indeseados (accidentales o intencionados).
- Permitir la compartición de zonas de memoria (indispensable para lograr la cooperación de procesos).
Requisitos del Administrador de Memoria:
- Reubicación. Permitir el recalculo de direcciones de memoria de un proceso reubicado.
- Protección. Evitar el acceso a posiciones de memoria sin el permiso expreso. (no direcciones absolutas).
- Compartición. Permitir a procesos diferentes acceder a la misma porción de memoria.
- Organización Lógica. Permitir que los programas se escriban como módulos compilables y ejecutables por separado.
- Organización Física. Permitir el intercambio de datos en la memoria primaria y secundaria.
Estrategias
Están
dirigidas a la obtención del mejor uso del recurso memoria principal, estas
pueden ser:
1.
Estrategia
de solicitud (búsqueda)
(cuando obtener un fragmento de
programa)
• Estrategias de búsqueda por demanda.
• Estrategias de búsqueda anticipada.
2.
Estrategia
de ubicación.
(donde se colocará (cargar) un
fragmento de programa nuevo)
3.
Estrategia
de reposición.
(qué fragmento de programa descarga,
para cargar uno nuevo)
Técnicas de administración de Memoria.
1. Particiones fijas
•
La
memoria principal se divide en un conjunto de particiones de tamaño fijo
durante el inicio del sistema.
•
Un
proceso se puede cargar completamente en una partición de tamaño menor o igual.
•
Ventajas.
Sencilla de implementar. Poca sobrecarga al SO.
• Desventajas. Fragmentación interna. Nro.
fijo de procesos activos.
Estrategias
• 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.
•
Se
genera dos tipos de colas: una cola, varias colas
• Reemplazo.
– Uno de los proceso se saca, según el
planificador.
1. Estrategia de
Ubicación
• Si un programa no cabe en una
partición, el programador debe diseñarlo en módulos cargables.
• El uso de la memoria es muy
ineficiente, no importa el tamaño del proceso, ocupara toda la partición, se
genera fragmentación interna.
2. Partición
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.
• El uso de la memoria es muy
ineficiente, se generan muchos huecos entre las particiones, cada vez más
pequeñas, se genera la fragmentación externa.
• Cada cierto tiempo se debe compactar los
segmentos libres, para que estén contiguos.
2. Estrategias
• 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.
- 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.
3. Paginación
Simple
• La memoria principal se divide en un
conjunto de marcos de igual tamaño.
• Cada proceso se divide en una serie de
páginas del tamaño de los marcos.
• Un proceso se carga en los marcos que
requiera (todas las páginas), no necesariamente contiguos.
• Ventajas. No hay fragmentación externa
• Desventajas. Fragmentación interna
pequeña.
• El SO mantiene una tabla de paginas
para cada proceso, que contiene la lista de marcos para cada pagina.
• Una dirección de memoria es un
número de página (P) y un desplazamiento dentro de la página (W).
Estrategias:
• Solicitud.
– Por demanda
• Ubicación.
– Se cargan todas las páginas de un proceso
en los marcos libres y se actualiza su tabla de páginas.
• Reemplazo.
– Una de las páginas se puede sacar y se
marca como que no está cargada. Esto es posible por que cada proceso tiene su
propia tabla de páginas.
– No es necesario sacar todas las páginas de
un proceso.
Capacidad de
Direccionamiento
4. Segmentación
Simple
• Cada proceso y sus datos se dividen en
segmentos de longitud variable.
• Un proceso carga sus segmentos en
particiones dinámicas no necesariamente contiguas.
• Todos los segmentos de un proceso se deben
de cargar en memoria.
• Se diferencia de la partición dinámica en
que un proceso puede ocupar más de un segmento.
• Ventajas. No hay fragmentación interna.
• Desventajas. Fragmentación externa, pero
menor (compactación)
• El SO mantiene una tabla de
segmentos para cada proceso y la lista de bloques libres.
• Una dirección de memoria es un
número de segmento (S) y un desplazamiento dentro de segmento (W).
Estrategias
• Solicitud.
– Por demanda
• Ubicación.
– Se cargan los segmentos de un proceso en
los bloques libres y se actualiza su tabla de segmentos.
• Reemplazo.
– Uno de los segmentos se puede sacar y se
marca como que no está cargada. Esto es posible por que cada proceso tiene su
propia tabla de segmentos.
Validación del
Direccionamiento
• No hay correspondencia entre dirección
lógica y dirección física.
• El SO trabaja con direcciones
lógicas.
• El SO debe asegurar que cada
dirección lógica esté dentro del rango de direcciones del proceso
• El SO implementa la tabla de
segmentos como un arreglo de registros base limite.
- La técnica de particionado a diferencia
de la paginación o segmentación simple, permite que sólo un proceso se
cargue en memoria principal.
- Cuando se trabaja con bloques de
tamaño fijo se genera la fragmentación interna. Si los bloques son de
tamaño variable, se genera la fragmentación externa.
- La técnica de particiones fijas se
parece a la de paginación simple, diferenciándose en que los primeros
requieren que las particiones estén contiguas
VIDEO DE GESTION DE MEMORIA
Estimado colega,
ResponderEliminarEl diseño del Blog es excelente. Se utiliza lenguaje claro para el lector, se acompaña de imágenes (muy bueno y bien utilizadas), se apoya el tema con un video (perfecto).
Le sugiero agregar algunos enlaces a otras páginas o fuentes externas para llamar más la atención del lector.
Recuerde además hacer un enlace a un documento en Google Drive, según instrucciones finales de la última semana en curso.
Por lo demás, todo muy bien.