Marisa Gil
Introducció als Sistemes Operatius 1
Gestión de la Memoria
1. Introducción2. Modelos de gestión del espacio físico3. Memoria Virtual4. Otros modelos
BibliografíaSilberschat and Galvin
Sistemas Operativos. Conceptos fundamentales.Parte III: Administración de almacenamiento
Introducción a los Sistemas Operativos
Marisa Gil
Introducció als Sistemes Operatius 2
Ideas a recapitular
• Todo lo que se ejecuta ha de estar en memoria principal• Multiprogramación => varios procesos en memoria física• Todos los procesos comparten el mismo espacio físico =>
• el SO ha de garantizar protección
• después de la CPU, la memoria es el recurso más importante para gestionar
.C .EXE0
Mespacio de nombres espacio lógico del programa
espacio físico
GESTION DE LA MEMORIA
Marisa Gil
Introducció als Sistemes Operatius 3
Montaje de un fichero ejecutable
editor compilador montador
códigofuente(LAN)
códigoobjeto
códigoejecu-table
compilar
montar
DISCO
librerías con otrosmódulos objeto cargador
cargar enmemoriafísica
MEMORIA
GESTION DE LA MEMORIA
Marisa Gil
Introducció als Sistemes Operatius 4
Multiprogramación
• Cuánta memoria asignar a cada proceso• Equiparticiones
• Cantidad fija
• Cantidad variable
• Dónde ubicar a cada proceso• Momento de vincular la dirección lógica a la física
• Vínculo estático/variable en ejecución
• Grado de multiprogramación• Número máximo de procesos que se pueden cargar en memoria
GESTION DE LA MEMORIA
Marisa Gil
Introducció als Sistemes Operatius 5
MMU
Alguien se ha de encargar de:• direcciones lógicas iguales convivan en el espacio físico sin problemas,
• exista protección entre procesos y para el SO,
• la gestión del espacio físico (libre y ocupado) sea eficiente
GESTION DE LA MEMORIA
CPUMMU
@ lógica @ física
Marisa Gil
Introducció als Sistemes Operatius 6
Registro de reubicación
• También se conoce como Registro Base:• Contiene la dirección a partir de la cual está cargado el programa
• El Sistema Operativo tiene su propio Registro de Reubicación (RR)• Además, el SO pude saltarse si quiere el RR y generar direcciones físicas
• utilizar el RR del programa de usuario
• generar directamente direcciones físicas
GESTION DE LA MEMORIA
CPU
MMU@ lógica @ física
@física(bypass del
circuíto)
Marisa Gil
Introducció als Sistemes Operatius 7
Registro de reubicación
• Fijo : lo inicializamos al principio y ya no se modifica en todala ejecución del programa.REUBICACIÓN ESTÁTICA.
• Variable: puede modificarse su valor durante la ejecución deun programa: un programa puede moverse en memoriadurante su ejecución.REUBICACIÓN DINÁMICA.
GESTION DE LA MEMORIA
SO
0
P
RRS
RRU
RRS RRUmodo
PSW
bypass
CPU +@lógica @física
(inhibir el multiplexor)
0 00 11 01 1
RRU
RRS
Carga en memoria
Marisa Gil
Introducció als Sistemes Operatius 8
Protección
• Controlar por hardware que no se supere la zona de memoria asignada
GESTION DE LA MEMORIA
RRU
RRSRRU
modo
CPU +@lógica @física
TAMAÑO
+
< sí
no
error
TAMAÑO
Marisa Gil
Introducció als Sistemes Operatius 9
Gestión del espacio (I)
• Buscar espacio libre para un programa en memoria física.• Fragmentación: hay memoria suficiente, pero no un trozo de tamaño adecuado.• Compactación: reorganizar la memoria libre agrupando todo el espacio libre.
• Sólo es posible si hayreubicación dinámica.
• Costoso en tiempo: ver qué procesos son los más adecuados, dónde hacer elhueco, parar los procesos,...
GESTION DE LA MEMORIA
a)b)
Marisa Gil
Introducció als Sistemes Operatius 10
Gestión del espacio (II):SWAPPING
• Utilizar un dispositivo de almacenamiento secundario (disco) para aumentar elespacio físico.
• Aumenta, por tanto, el grado de multiprogramación.
• Sólo se pueden ejecutar los procesos en memoria física.
• Dependiendo del tipo de reubicación es más o menos eficiente y útil.
GESTION DE LA MEMORIA
swap out swap in
a)
b)
b) Reubicación dinámica
a) Reubicación estática(única ubicación permitida)
Marisa Gil
Introducció als Sistemes Operatius 11
Gestión del espacio (y III):Modelos no contiguos
• ¿Podemos trocear un programa e ir metiendo los fragmentos en los sitios libresque encontremos?
• Cada fragmento necesita un registro de reubicación
• Permite aprovechar el espacio sin necesidad de compactación
• Modelos básicos:• Paginación
• Segmentación
GESTION DE LA MEMORIA
AB
C
RRA
RRC
RRB
Marisa Gil
Introducció als Sistemes Operatius 12
Paginación
• Se divide el EL del programa en bloques de igual tamaño• El tamaño es fijo, definido por la arquitectura
• Cada bloque se llamapágina (o página lógica)
• La última página tendrá una parte no ocupada (fragmentación interna)
• La memoria física también se divide en trozos de igual tamaño• Cada trozo se llamatrama (o página física)
• Por simplicidad es del mismo tamaño que la página (a veces, múltiplo)
• Cargar un programa en memoria significa encontrar un sitio para cada página• En general, encontrar tantas tramas libres como páginas ocupe
• Esta división en páginas es automática para la MMU• No existe ninguna modificación en el espacio de direcciones lineal
• Es transparente al usuario, a los programas de traducción y a la CPU
GESTION DE LA MEMORIA
Marisa Gil
Introducció als Sistemes Operatius 13
Paginación
GESTION DE LA MEMORIA
. . .
0
2n-1
CÓDIGO
DATOS
PILA
0000110001101100
0000110001101100
ESPACIO LÓGICO
@lógica
vista por la CPU
vista por la MMUpágina desplazamiento
. . .
. . .
ESPACIO FÍSICO
Reg. reubicación +
Marisa Gil
Introducció als Sistemes Operatius 14
Paginación
GESTION DE LA MEMORIA
@lógica
@física
n d
m d
. . .
. . .
MEMORIA
. . .
TABLA de PÁGINAS
2n-1
vvv
ii
iv
número de trama
Marisa Gil
Introducció als Sistemes Operatius 15
A tener en cuenta ...
• Existe una tabla de páginas por proceso• Sólo está activa la del proceso que se está ejecutando
• Si el tamaño de la página es pequeño:• Habrá poca fragmentación interna
• El número de páginas será grande (=> la TP será grande)
• La TP estará en memoria, no en la MMU (=> 2 accesos por traducción)
• la MMU será barata: sólo mantiene la dirección de la TP (RBTP)
• Si el tamaño de la página es grande:• Habrá mucha fragmentación interna
• El número de páginas será pequeño (=> la TP será pequeña)
• Si la TP cabe en la MMU, la traducción de direcciones será rápida (1 acceso)
• la MMU será cara: mantiene la TP
• Tamaños comunes de páginas: 2K, 4K.
GESTION DE LA MEMORIA
Marisa Gil
Introducció als Sistemes Operatius 16
TLB (Translation Lookaside Buffer)
Objetivo: mejorar el rendimiento del acceso a memoria en paginación
• Memoria cache con las PTE últimamente referenciadas.• Asociativa:
• contiene la página lógica referenciada
• el procesador pregunta al mismo tiempo a todas las entradas (hardware)
• 32, 48 entradas son valores habituales
William Stallings “Operating Systems”Cap. 5.3 Virtual MemoryMaxwell McMillan, International Editions, 1992
GESTION DE MEMORIA
Marisa Gil
Introducció als Sistemes Operatius 17
TLB (Translation Lookaside Buffer)
@lógica
@física
p d
t d
. . .
. . .
MEMORIA
TLB
n página
CPU
n. trama val. TLBhit
TLBmiss
TABLAde
PÁGINAS
desplazamiento
GESTION DE MEMORIA
Marisa Gil
Introducció als Sistemes Operatius 18
Segmentación
• El EL del programa se construye en bloques• El tamaño máximo de un bloque es fijo, definido por la arquitectura
• Cada bloque se llamasegmento
• El número de bloques que conforman el programa lo determina el usuario• Cada trozo puede tener una semántica asociada (código, datos,...)
• Se asocia memoria física a segmentos lógicos (segmentos físicos)
• Cargar un programa en memoria significa encontrar un sitio para cada segmento• Aparecefragmentación externa.
• Esta división en segmentos es competencia del programador• Se definen en la construcción del ejecutable (programador, compilador,...)
• El espacio de direcciones es de dos dimensiones, disperso.
GESTION DE LA MEMORIA
Marisa Gil
Introducció als Sistemes Operatius 19
Segmentación
. . .
0
2n-1
CÓDIGO
DATOS
PILA
0000000001101100
ESPACIO LÓGICO @lógica
segmentodesplazamiento
. . .
. . .
ESPACIO FÍSICO
Reg. reubicación +
0000010000000000
segmentodesplazamiento
0000000001101101
0000001111111111
... no existen
seg. de datos
seg. de código
GESTION DE LA MEMORIA
Marisa Gil
Introducció als Sistemes Operatius 20
Segmentación
2s-1
@lógica
@física
s d
MEMORIA
TABLA de SEGMENTOS
. . .
. . .
seg. de datos
seg. de código
@inicio segmento longitud
<
no
error+
GESTION DE LA MEMORIA
Marisa Gil
Introducció als Sistemes Operatius 21
A tener en cuenta
• Se elimina la fragmentación interna• Se soporta el crecimiento dinámico de los segmentos• Protección/uso compartido• Desarrollo modular de programación: entidades menores de programa relaciona-
das lógicamenteMilan Milenkovic “Sistemas Operativos. Conceptos y diseño”
McGraw Hill
• Es más costoso buscar espacio libre para cargar un programa• Reaparece la fragmentación externa• Se gestiona la traducción a partir de registros especiales (ej: DS, SS,...)• MMU cara
GESTION DE LA MEMORIA
Marisa Gil
Introducció als Sistemes Operatius 22
Modelos mixtos (I):Paginación segmentada
• El espacio lógico de un programa lo forman todas las posibles direcciones• El tamaño real de un programa es generalmente mucho más pequeño
• Muchas páginas no llegan a utilizarse
• Sólo un pequeño número de entradas de la tabla de páginas se accede
IDEA: Mantener sólo los grupos de páginas utilizadas por un programa,dividiendo la tabla de páginas en segmentos.
GESTION DE LA MEMORIA
Marisa Gil
Introducció als Sistemes Operatius 23
Paginación segmentada
GESTION DE LA MEMORIA
@lógica
@física
. . .
. . .
MEMORIA
T. de PÁGINAS
vvv
ii
trama
en qué tabla de páginas?
stp dtp
@tabla
+
T. de PÁGINAS
vvv
i
trama
T. DE SEGMENTOS
Marisa Gil
Introducció als Sistemes Operatius 24
Modelos mixtos (II):Segmentación paginada
• Los segmentos son de tamaño variable y generan fragmentación externa• Cargar los segmentos en memoria es una operación “costosa”
• Puede no haber espacio contiguo para un segmento
• De todos los trozos de memoria libre hay que buscar el “adecuado”
IDEA: Los segmentos son conjuntos de páginas y cargar un segmento esbuscar tantas tramas libres como páginas lo componen.
GESTION DE LA MEMORIA
Marisa Gil
Introducció als Sistemes Operatius 25
Segmentación paginada
@lógica
@física
. . .
. . .
MEMORIA
T. de PÁGINAS
vvv
ii
trama
en qué página?
ps ds
@tablaT. de PÁGINAS
vvv
i
trama
T. DE SEGMENTOS
+
GESTION DE LA MEMORIA
Marisa Gil
Introducció als Sistemes Operatius 26
Memoria Virtual
Definición:Conjunto de mecanismos y técnicas, hardware y software, que permiten la ejecu-
ción de programas que no están enteramente cargados en memoria.
• Basta que éste en memoria la parte (código datos, pila) con la que se está traba-jando actualmente.
• Hay que tener localizable y directamente accesible el resto del programa, paracargarlo cuando sea referenciado:MEMORIA SECUNDARIA .
VentajasPermite aumentar el grado de multiprogramaciónReduce el tiempo de carga de los programas
GESTION DE MEMORIA
Marisa Gil
Introducció als Sistemes Operatius 27
Implementación de la memoria virtual
• Modelo de memoria no contiguo (paginación o segmentación)• Mecanismos hardware para detectar que una dirección lógica no está presente
• Bit de presencia
• Mecanismos software y hardaware para gestionar la E/S del programa• FALLO DE PÁGINA (interrupción)
• Almacenamiento secundario donde está el programa íntegro• Memoria secundaria (disco, generalmente): ÁREA DE PAGINACIÓN
GESTION DE MEMORIA
Marisa Gil
Introducció als Sistemes Operatius 28
A tener en cuenta....
• Carga inicial del programa• Paginación bajo demanda
• Prefetch
• Número de páginas que se asigna a cada programa• Reemplazo de páginas si la memoria física ya está toda llena• Hiperpaginación (THRASHING)
utilizaciónde la CPU
Grado de multiprogramación
thrashing
GESTION DE MEMORIA
Marisa Gil
Introducció als Sistemes Operatius 29
Principio de localidad
Localidad espacial:Alta probabilidad de referenciar una dirección cercana a la actual
Localidad temporalAlta probabilidad de referenciar la dirección actual en un intervalo corto de tiempo
GESTION DE MEMORIA
Marisa Gil
Introducció als Sistemes Operatius 30
A tener en cuenta ...
• El área de paginación es aconsejable que sea tres veces la memoria física• Programar con una buena localidad:
• datos locales,
• organización rutinas,
• bucles...
• Tamaño de la página: compromiso entre tiempo E/S y frecuencia FP• TLBs
Tacceso efectivo = (1 - p) x ma + p x tfp , 0 <= p <=1
GESTION DE MEMORIA
Marisa Gil
Introducció als Sistemes Operatius 31
Otros tipos de gestión de memoria: Javadynamic link
class loader
execution engine
bytecodes
JVM
SISTEMA OPERATIVO
ficheros class de la APIJAVA (sólo los que se
necesitan)ficheros class
del programador
llamadas a métodos nativos del SO
GESTION DE MEMORIA
Marisa Gil
Introducció als Sistemes Operatius 32
Otros tipos de gestión de memoria: Javadynamic link
El orden en que se realizan estas tareas es estricto:1. Cargar: buscar e importar los datos binarios de un tipo.2. Linkar : realizar la verificación, preparación y (opcionalmente) resolución
a.Verificación: asegurar la correctitud del tipo importadob. Preparación: asignar memoria para clases variables e inicializar la
memoria a los valores por defectoc. Resolución: transformar las referencias simbólicas del tipo en referen-
cias directas.3. Inicialización: llamar al código JAVA que inicializa estas variables a sus pro-
pios valores iniciales.
GESTION DE MEMORIA