Presentación Trabajo 2 - Departamento de Ingeniería Informática y

Anuncio
Universidad de Concepci ón
Facultad de Ingeniería
Departamento de Ingenier ía Informática y Ciencias de la Computación
Magíster en Ciencias de la Computaci ón
Gestión de la Memoria y Memoria
Virtual
Andrés G. Puente P.
Ingeniero Civil Informático
Universidad del BíoBío
apuente@duoc.cl
inf.udec.cl//~apuente
inf.udec.cl
Organización y Arquitectura de Sistemas de Computación
Introducción
• Descripción
– Se enfoca en su primera parte a definir las actividades necesarias
para una correcta gestión de la memoria.
– En su segunda parte esta orientado a presentar los aspectos más
importantes considerados en el trabajo con memoria virtual.
• Objetivos
– Definir y aclarar los que se entiende por Gestión de Memoria.
– Presentar los mecanismos, o formas, utilizados para la correcta
gestión de este recurso, a fin de comprender ventajas, desventajas y
aplicabilidad de cada uno de ellos.
– Presentar y definir la Memoria virtual, como parte del trabajo de
procesamiento y almacenamiento de información como parte de una
arquitectura computacional.
Organización y Arquitectura de Sistemas de Computación
1
Gestión de Memoria
¿Qué es la Gestión de Memoria?
•
Uno de los elementos principales que caracterizan un proceso es la
memoria que utiliza.
•
La asignación de memoria es exclusiva para el proceso que la requiere,
es decir, ésta es lógicamente separada de la de cualquier otro proceso
del sistema
•
Es una tarea cuya responsabilidad recae en el Sistema Operativo
•
Básicamente consiste en cargar y descargar procesos en memoria
principal para que sean ejecutados.
•
Para ello el S.O. gestiona lo que se conoce como MMU o Unidad de
Administración de Memoria, el cual es un dispositivo hardware que
transforma las direcciones lógicas en físicas.
Organización y Arquitectura de Sistemas de Computación
Gestión de Memoria
Sistemas de Monoprogramación
• No existen procesos ejecutándose de forma concurrente.
•
En este tipo de organización, prácticamente no se puede hablar de
Gestión de Memoria.
•
En la monoprogramación, el procesador puede estar mucho tiempo
ocioso (por ejemplo, producto de las E/S que puede tener asociadas), lo
que perjudica el rendimiento de la máquina.
Organización y Arquitectura de Sistemas de Computación
2
Gestión de Memoria
Sistemas de Multiprogramación
• Ejecución de más de un proceso a la vez, realizar un reparto
transparente, eficiente y seguro de los distintos recursos de la máquina.
•
El SO debe permitir que los programadores desarrollen sus aplicaciones
sin verse afectados por la posible coexistencia de su programa con otros
durante su ejecución.
•
El SO, con el apoyo del hardware de gestión de memoria del procesador,
debe repartir el almacenamiento existente, proporcionando un espacio de
memoria independiente para cada proceso.
•
En el caso del procesador, se realiza un reparto en el tiempo, mientras
que en el de la memoria, se trata de un reparto en el espacio.
Organización y Arquitectura de Sistemas de Computación
Gestión de Memoria
Intercambio (Swapping)
• Nace por lentitud de las actividades de E/S.
•
La solución a esta problemática, pueden estar dada por ampliar la
memoria principal.
•
Muchas veces se requiere que los sistemas puedan contener mas
procesos que los que la memoria soporta.
•
Nace el intercambio como un mecanismo de solución.
•
El intercambio consiste en alternar, durante la ejecución de un proceso,
su permanencia en memoria principal y memoria secundaria.
Organización y Arquitectura de Sistemas de Computación
3
Gestión de Memoria
Características deseables de un sistema de Gestión de Memoria
•
–
Ofrecer a cada proceso un espacio lógico propio.
–
–
–
Proporcionar protección entre los procesos.
Permitir que los procesos compartan memoria.
Maximizar el rendimiento del sistema.
–
Proporcionar a los procesos mapas de memoria muy grandes.
Para alcanzar estos objetivos, se necesita contar con un conjunto de
requisitos que apoyen la Gestión de la Memoria.
Organización y Arquitectura de Sistemas de Computación
Gestión de Memoria
Requisitos de la Gestión de Memoria
•
Los requisitos necesarios para una correcta gestión de memoria (según
Lister, A y Eager, R.), son:
–
–
Reubicación o Correspondencia (entre DL y DF) (referencia por D. Física,
desconocimiento por adelantado, cargas y descargas de procesos)
Protección (intromisiones voluntarias o accidentales)
–
–
–
Compartición (espacios lógicos independientes y disjuntos)
Organización lógica (organización en base a módulos)
Organización Física (tamaños vs disponibilidad)
•
Dirección lógica: referencia a una posición de memoria independiente
de la asignación actual de datos, es generada por la CPU.
•
Espacio de direcciones lógicas: conjunto de direcciones generadas por
un programa
•
Dirección física: designa la posición real de la memoria principal.
•
Espacio de direcciones físicas: conjunto de posiciones de memoria
correspondientes a las direcciones lógicas
Organización y Arquitectura de Sistemas de Computación
4
Gestión de Memoria
Técnicas de Gestión de memoria
– Administración sin Intercambio
•
No existe “traslado” entre memoria y disco.
•
•
Durante tiempo de ejecución, DEBEN permanecer en memoria.
Cantidad de Procesos manejables por CPU y memoria
– Administración con Intercambio
•
•
•
Existe “traslado” entre memoria y disco.
Durante tiempo de ejecución, NO NECESARIAMENTE DEBEN
permanecer en memoria.
Cantidad de Procesos superiores a capacidad de CPU y memoria
Organización y Arquitectura de Sistemas de Computación
Gestión de Memoria
Esquemas de Asignación Contigua
Descripción
Ventajas
Desventajas
Partición
Estática
La memoria principal se divide en un
conjunto de particiones estáticas,
durante la generación del sistema. Un
proceso se puede cargar en una
Sencilla de
implementar, poca
sobrecarga del
sistema operativo.
Empleo ineficiente de la memoria
debido a la fragmentación interna.
El número de procesos
Partición
Dinámica
Las particiones se crean
dinámicamente, de forma que cada
proceso se carga en una partición de
su mismo tamaño.
No hay
fragmentación
interna, uso más
eficiente de la
memoria principal.
Uso ineficiente del procesador
debido a la compactación para
contrarrestar la fragmentación
externa.
Esquemas de Asignación no Contigua
Paginación
La memoria principal se divide en un
conjunto de marcos de igual tamaño.
Cada proceso se divide en páginas de
igual tamaño que los marcos. Un
proceso se carga situando todas sus
páginas en marcos libres pero no
necesariamente contiguos.
No tiene
fragmentación
externa
Hay una pequeña cantidad de
fragmentación interna.
Segmentación
Cada proceso se divide en segmentos.
Un proceso se carga situando todos
sus segmentos en particiones
dinámicas que no tienen por qué ser
contiguas.
No tiene
fragmentación
interna.
Mejora la utilización de la memoria
y reduce la sobrecarga comparada
con la partición dinámica.
Organización y Arquitectura de Sistemas de Computación
5
Gestión de Memoria
Técnicas de Gestión de Memoria basadas en asignación contigua
– Particiones Estáticas de Memoria
Organización y Arquitectura de Sistemas de Computación
Gestión de Memoria
Esquemas de asignación de memoria en partición estática
Organización y Arquitectura de Sistemas de Computación
6
Gestión de Memoria
Técnicas de Gestión de Memoria basadas en asignación contigua
– Particiones Dinámicas de Memoria (primer, mejor y peor ajuste)
Organización y Arquitectura de Sistemas de Computación
Gestión de Memoria
Administrar la memoria con un esquema de particiones variables:
– Administración con mapa de bits (bloque ocupado o libre)
– Administración de memoria con listas enlazadas (bit, Bloque I. y U., puntero)
– Sistema de los Asociados (se considera un gran hueco de memoria)
Organización y Arquitectura de Sistemas de Computación
7
Gestión de Memoria
Reubicación en un Esquema con Partición de Memoria
– No se pueden perder referencias al interior del proceso.
– Direcciones relativas al comienzo del programa.
– Traducción de D. Relativas a Físicas, función de la MMU.
– Cumple con requisitos de protección.
Registro base
Dirección
Lógica
Sumador
Registro límite
Bloque de Control
de Proceso
Programa
Comparador
Datos
Dirección f ísica
Pila
Interrupción al
Sistema
Operativo
Organización y Arquitectura de Sistemas de Computación
Memoria Virtual
Memoria Virtual
– Definición
• Esta memoria hace creer a los programas que existe una memoria
principal de gran tamaño y explota localidad de acceso a través de
la jerarquía de memoria.
• Visión del programador es simplificada.
– Paginación
• Consiste en que el sistema operativo divide la memoria en unidades
de tamaño fijo (generalmente potencia de 2, por ejemplo de 1 Kb),
llamados marcos.
• Los procesos son divididos en páginas de igual tamaño que los
marcos.
• Al proceso de intercambiar páginas, segmentos o programas
completos entre memoria principal y disco se le conoce como
‘intercambio’ o ‘swapping’.
• ‘sobrecarga' (overhead), por páginas muy pequeñas.
• Fragmentación al interior de una página.
Organización y Arquitectura de Sistemas de Computación
8
Memoria Virtual - Paginación
Asignación de
páginas de procesos
a marcos libres
Estructura de
Datos en el
tiempo (f)
Organización y Arquitectura de Sistemas de Computación
Memoria Virtual - Paginación
Traducción de Dirección lógica a Física en Paginación
• Ejemplo: Dirección relativa 1502 en binario 0000010111011110
Organización y Arquitectura de Sistemas de Computación
9
Memoria Virtual - Paginación
Asignación de marcos
• Cantidad de marcos de página es limitada y pueden existir muchos
procesos, para asignar m marcos de página entre n procesos:
– Asignar equitativamente m/n marcos a cada proceso.
– Asignar una cantidad de marcos de página proporcional al tamaño de cada
proceso.
– Asignar marcos de página de acuerdo a las prioridades de los procesos o de
acuerdo una combinación entre sus tamaños y sus prioridades.
Hiperpaginación
• Un proceso esta hiperpaginado si emplea mas tiempo paginando, es decir,
produciendo fallos de páginas y cargando las páginas en memoria; que
ejecutándose propiamente tal.
Organización y Arquitectura de Sistemas de Computación
Memoria Virtual – Tablas de Páginas
Tablas de Páginas
• Soporte hardware a las tablas de páginas:
– Registros dedicados
• Gran velocidad para traducción de direcciones
• Muy caro, útil solamente cuando las tablas son pequeñas
– Memoria principal
• La tabla de páginas se almacena en memoria RBTP: Registro Base de la Tabla de
Páginas almacena un puntero a la tabla de páginas del proceso en ejecución
• Para acceder a una dirección necesita 2 accesos a memoria
– Acceso a entrada en tabla de páginas
– Acceso a dirección deseada
• Mucho más lento el proceso de traducción
– Registros asociativos (TLB: translation lookaside buffer)
• Para que un sistema de paginación sea aplicable a la práctica, es necesario que la
mayoría de los accesos a memoria, accedan a la posición solicitada.
• Pequeña memoria asociativa interna a la MMU, mantiene información de las últimas
páginas accedidas (tipo Cache).
• Con identificador de proceso (más número de página) y sin identificador de proceso
(solo número de página).
Organización y Arquitectura de Sistemas de Computación
10
Memoria Virtual – Tablas de Páginas
Tablas de Páginas: Multinivel
• Tablas de páginas sujetas a paginación.
Organización y Arquitectura de Sistemas de Computación
Memoria Virtual – Tablas de Páginas
Tablas de Páginas: Invertida
• solo una tabla de páginas en el sistema con tantas entradas como marcos se
tengan.
• Entrada: dirección virtual y PID.
• El índice devuelve el numero de marco donde está la página.
Organización y Arquitectura de Sistemas de Computación
11
Memoria Virtual - Sustitución
• Política de Sustitución de las Páginas
– LRU (least recently used)
– FIFO (first in first out), se le asigna a cada página un contador
– LFU (least frequently used), mantiene los contadores de acuerdo
al número de referencias
– MFU (most frequently used)
– Algoritmo Optimo
– Algoritmo de reemplazo de segunda oportunidad
Organización y Arquitectura de Sistemas de Computación
Memoria Virtual - Segmentación
Segmentación
•
•
Datos y
programas
se dividen
en
segmentos
(no es
necesario
que todos
sean del
mismo
tamaño).
Espacios de
direcciones
independien
tes,
crecimiento
independien
te.
Organización y Arquitectura de Sistemas de Computación
12
Memoria Virtual – Traducción Direcciones
Traducción de Direcciones en Segmentación
Ventajas:
•
Un segmento puede ser expandido o reducido según necesidades.
•
•
•
Programas compilados de forma independiente.
Se pueden compartir segmentos (ej: para compartir datos).
Protección por medio de privilegios s segmentos
Organización y Arquitectura de Sistemas de Computación
Combinación Paginación y M. Virtual
• Combinaciones entre Paginación y Segmentación
– Memoria no segmentada y no paginada: La dirección virtual es la
misma que la dirección física.
– Memoria paginada no segmentada: La memoria es un espacio de
direcciones paginado.
– Memoria segmentada no paginada: La memoria es un conjunto de
direcciones lógicas.
– Memoria segmentada paginada: La segmentación define particiones
lógicas de memoria y la paginación gestiona la asignación de
memoria dentro de las particiones.
Organización y Arquitectura de Sistemas de Computación
13
Conclusiones
¿Es posible considerar a la paginación como una asignación estática
de memoria, considerando intercambio?
¿Dadas las diferencias entre arquitecturas computaciones y las
necesidades particulares de los usuarios, se podrá definir un
conjunto de factores universales para comparar y evaluar las
distintas formas de gestionar la memoria?
¿La gestión de la memoria se encontrará presente por siempre en
los sistemas computacionales?
¿Quiénes serán los demandantes por mejores técnicas de
administración de memoria, las empresas para apoyar su gestión de
negocios o los usuarios en su trabajo cotidiano?
Organización y Arquitectura de Sistemas de Computación
14
Descargar