Académique Documents
Professionnel Documents
Culture Documents
dit UPM
Justificacin
Un proceso necesita memoria para ejecutar programas
cdigo del programa datos estticos y dinmicos
El rendimiento global del sistema mejora si se pueden ejecutar varios procesos concurrentemente. El mtodo a utilizar depende principalmente del hardware disponible.
2 (Noviembre 2006)
Gestin de memoria
dit UPM
Jerarqua de memorias
Bus de memoria Bus de datos
CPU
Registros
Cache
Memoria
Dispositivo E/S
Referencia a cache 64 KB 1 ns
3 (Noviembre 2006)
Gestin de memoria
dit UPM
Cache
< 16MB CMOS SRAM 0,5-25 5000-10000
Memoria principal
< 16GB CMOS DRAM 80-250 1000-5000
Almacenamiento en disco
> 100 GB Disco magntico 5,000,000 20-150
CMOS, Tecnologa de implementacin 0,25-0,5 Tiempo de acceso (ns) 20000-100000 Ancho de banda (MB/sec) Compilador Gestor
Hardware M. Principal
SO Disco
SO/Operador CD or cinta
Respaldo
Cache
Gestin de memoria
dit UPM
dato
CPU
direccin registro
memoria principal
5 (Noviembre 2006)
Gestin de memoria
dit UPM
343 1175
343 1175
CPU
343 registro
memoria principal
6 (Noviembre 2006)
Gestin de memoria
dit UPM
343 2175
10343 12175
CPU
10343 registro
12175
memoria principal
7 (Noviembre 2006)
Gestin de memoria
dit UPM
343 2175
343 2175
12175
+
10000 registro de recolocacin
CPU
343 registro
memoria principal
8 (Noviembre 2006)
Gestin de memoria
dit UPM
Direccin fsica
La usada realmente en el Registro de Direcciones de Memoria cdigo generado por el compilador
0 dato
343 2175
343 2175
12175
+
10000 registro de recolocacin
memoria principal
9 (Noviembre 2006)
Gestin de memoria
dit UPM
Carga dinmica
Se trata de no perder tiempo cargando cdigo que luego no se ejecuta Al empezar solo se carga el programa principal. Las subrutinas no se cargan hasta que son llamadas. Solo hace falta tener una tabla de rutinas cargadas y una forma especial de llamarlas No hace falta un SO especial, solo un cargador reubicable. El espacio en memoria est reservado para el proceso, pero no se utiliza siempre.
10 (Noviembre 2006)
Gestin de memoria
dit UPM
Enlace dinmico
Se trata de no reservar espacio para las subrutinas hasta el momento de la ejecucin. Cada llamada lleva asociada un cdigo para localizar la direccin de la rutina en memoria.
Ese cdigo se sustituye por la direccin de la rutina una vez cargada.
Gestin de memoria
dit UPM
Solapamientos (overlays)
Tcnica que permite ejecutar un programa que sea mayor que la memoria principal disponible. Se basa en mantener en memoria solo las instrucciones y datos que se necesita en cada momento. No hace falta soporte del SO.
Hace falta programar el traductor y el montador
12 (Noviembre 2006)
Gestin de memoria
dit UPM
20K
Rutinas comunes
Manejador de solapamientos
30K
70K
10K
80K
Paso 1
100K
13 (Noviembre 2006)
Paso 2
Gestin de memoria
dit UPM
Gestin de memoria
dit UPM
swap out
Proceso 1
2
espacio de usuario memoria principal
15 (Noviembre 2006)
swap in
Proceso 2
memoria secundaria
Gestin de memoria
dit UPM
Tamao del Programa & Cambio de contexto Para un disco de 5MB/s y tiempo de bsqueda de 8 ms. Un programa de 1MB necesita:
Tiempo de carga = 208 ms Tiempo de carga y descarga (intercambio) = 416 ms
Tiempo de ciclo de ejecucin >> 416 ms Si la memoria tiene 128MB y el SO residente 5MB, Se pueden admitir programas de 120MB?
Tiempo de intercambio = 49s El sistema no admite programas muy grandes aunque se disponga de memoria.
16 (Noviembre 2006)
Gestin de memoria
dit UPM
Soluciones:
Nunca se intercambian procesos con llamadas pendientes. Las operaciones de entrada/salida se implementan sobre colas en el ncleo de sistema operativo. La transferencia del sistema operativo a procesos solo se produce cuando el proceso est en memoria.
17 (Noviembre 2006)
Gestin de memoria
dit UPM
dit UPM
Memoria particionada
Sistemas multiproceso
19 (Noviembre 2006)
Gestin de memoria
dit UPM
Si se carga otro proceso se le asigna toda la memoria libre restante Problema: Si el SO cambia de tamao?
hay que reubicar el proceso de usuario otra solucin es cargarlo de entrada en la direccin ms alta Esa es la razn de que las pilas crezcan hacia abajo! (PDP-11)
20 (Noviembre 2006)
Gestin de memoria
dit UPM
Soporte hardware
2175 10000
registro lmite
registro de recolocacin
memoria fsica
10343
CPU
343
<
no
si
Gestin de memoria
dit UPM
Memoria Particionada
Es una de las soluciones ms sencillas para asignar memoria en un sistema de multiprogramacin. Se divide la memoria en secciones del mismo o diferente tamao. Se intenta ejecutar tantos programas como sea posible para utilizar la CPU cuanto se pueda. El particionamiento elegido puede ser:
esttico : no cambia desde la generacin del sistema dinmico : se adapta a las necesidades de cada momento
OS process 5
OS process 5
OS process 5 process 9
process 8 process 2
22 (Noviembre 2006)
process 2
Gestin de memoria
process 2
process 2
dit UPM
El primero y segundo son mejores que el tercero. El primero es ms rpido que el segundo Todos producen Fragmentacin Externa
Regla del 50 %
23 (Noviembre 2006)
Gestin de memoria
dit UPM
Fragmentacin
Memoria desaprovechada en el mtodo de gestin de memoria Externa
Espacio libre entre bloques de memoria asignados El espacio libre puede ser suficiente para satisfacer la peticin, pero no es contiguo
Interna
Cuando se reserva ms memoria de la necesaria para la particin La diferencia no se puede usar Una pequea fragmentacin interna puede ayudar a definir particiones de tamao parecido y hacer ms fcil la gestin
24 (Noviembre 2006)
Gestin de memoria
dit UPM
Compactacin
Aun con las optimizaciones la solucin es Compactar.
Se agrupa toda la memoria libre en una sola particin. Solo se puede hacer si hay reubicacin dinmica
actualizando el registro base
25 (Noviembre 2006)
Gestin de memoria
dit UPM
Estrategias de compactacin
26 (Noviembre 2006)
Gestin de memoria
dit UPM
Estos sistemas permiten tambin hacer comparticin de cdigo entre diferentes programas. Hacen falta al menos 2 registros base y lmite.
27 (Noviembre 2006)
Gestin de memoria
dit UPM
Mtodos ms utilizados:
Paginacin Segmentacin Memoria Virtual
28 (Noviembre 2006)
Gestin de memoria
dit UPM
dit UPM
Paginacin
Consiste en dividir el programa en pginas del mismo tamao. La memoria fsica se divide en marcos (frames) del mismo tamao de las pginas. Con ayuda de HW especializado se asignan pginas a marcos, aunque estos no sean contiguos. Elimina completamente la Fragmentacin Externa. Produce cierta Fragmentacin Interna. Es una forma de reubicacin dinmica. Elimina tambin la fragmentacin en memoria secundaria
donde la compactacin es mucho ms costosa.
30 (Noviembre 2006)
Gestin de memoria
dit UPM
Ejemplo de paginacin
Tamao de la memoria fsica = 32 bytes Tamao de la pgina = 4 bytes Tamao de un programa = 16 bytes
Memoria Lgica 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 a b c d e f g h i j k l m n o p
Gestin de memoria
Memoria Fsica 00 01 02 03 00 04 04 05 06 04 08 07 08 08 20 09 10 11 12 28 12 13 14 15 i j k l m n o p 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 e f g h a b c d
31 (Noviembre 2006)
dit UPM
Traduccin de Direcciones
Las direcciones del programa se estructuran en:
direccin de pgina desplazamiento dentro de la pgina
Direccin de pgina
Tabla de Pginas
Sirve para establecer la correspondencia entre pginas de programa y marcos de memoria fsica. El tamao viene determinado por el HW.
Es una potencia de 2
32 (Noviembre 2006)
Gestin de memoria
dit UPM
Traduccin de direcciones
33 (Noviembre 2006)
Gestin de memoria
dit UPM
Memoria Fsica 00 01 16 17 18 19 i j k l m n o p 20 21 22 23 24 25 26 27 28 29 30 31 e f g h a b c d
Tabla de Pginas
0 1 2 3 4 7 1 2
02 03 04 05 06 07 08 09 10 11 12 13 14 15
34 (Noviembre 2006)
dit UPM
Gestin de memoria
dit UPM
Memoria Asociativa
Memoria especial - TLB (Translation Look-aside Buffers)
acceso rpido: 10-20% del tiempo de acceso a memoria pequeo tamao: 64-1024 entradas solo contiene parte de la Tabla de Pginas
36 (Noviembre 2006)
Gestin de memoria
dit UPM
Memoria asociativa
37 (Noviembre 2006)
Gestin de memoria
dit UPM
Tiempo de acceso medio a memoria principal (Tm) = 100 ns Tiempo de acceso a memoria asociativa (Ta) = 20 ns Tasa de acierto (P) = 98 % Tiempo de acceso efectivo = 122 ns (se degrada 22 %)
(Ta + Tm) P + (Ta + 2 Tm) (1-P)
38 (Noviembre 2006)
Gestin de memoria
dit UPM
39 (Noviembre 2006)
Gestin de memoria
dit UPM
Proteccin
Bits de proteccin para cada pgina.
Lectura, escritura, ejecucin, ...
40 (Noviembre 2006)
Gestin de memoria
dit UPM
Paginacin multinivel
Permite manejar tablas de pginas pequeas con programas grandes (232 o 264)
si la pgina es de 4K (212), la tabla puede tener 220 entradas
Cada nivel implica acceder a una tabla en memoria Si el espacio de direccionamiento es muy grande se introducen ms niveles
41 (Noviembre 2006)
Gestin de memoria
dit UPM
Paginacin multinivel
42 (Noviembre 2006)
Gestin de memoria
dit UPM
Tamao de la memoria fsica = 64 bytes Tamao de la pgina = 4 bytes Tamao de memoria lgica = 64 bytes
Memoria Fsica 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 i j k l m n o p 04 ... ... 09 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 13 15 01 ... 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 . . . . . . . . . 02 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 e f a b c d
PTBR
12
Gestin de memoria
dit UPM
g h
Paginacin multinivel
Estructura con 2 niveles de pginas
En el peor caso, 3 accesos a memoria
p1 p2 d
p1
p2
44 (Noviembre 2006)
Gestin de memoria
dit UPM
Paginacin multinivel
Estructura con 3 niveles
obtener una direccin implica 4 accesos a memoria! Tasa de acierto (P) = 98 % TAE = 128 ns (se degrada un 30%)
p2 p3 d
p1
p1
p2 p3 tabla de pginas externa de 2 nivel tabla de pginas externa pgina de la tabla de pginas
45 (Noviembre 2006)
Gestin de memoria
dit UPM
Niveles de paginacin 3 2 2 3 3 2 2 3 23 2 2 2 3 3 3 23
Espacio de usuario 4 Tb Hasta 26 Mb 3 Gb 10Exab 224 Mb 3,75 Mb 2 Gb 1 Petab 3 Gb 2 Gb 2 Gb 1,984 Mb 3,75 Mb 3,75 Mb 16 Exab-16Gb 3 Gb
Gestin de memoria
dit UPM
47 (Noviembre 2006)
Gestin de memoria
dit UPM
48 (Noviembre 2006)
Gestin de memoria
dit UPM
Lo tienen sistemas como IBM RT, UltraSPARC (64bits) o PowerPC (64bits). Hay otra tabla para cuando todo el proceso est fuera de memoria
Se construye una tabla solo con las pginas que estn en ese momento en memoria.
49 (Noviembre 2006)
Gestin de memoria
dit UPM
50 (Noviembre 2006)
Gestin de memoria
dit UPM
Comparticin de Pginas
Otra ventaja de las pginas es que pueden compartirse entre varios procesos En sistemas multiusuario se repiten muchas operaciones a la vez
cdigo de editores, compiladores, entornos grficos.... una sola copia en memoria para todos los procesos
El sistema de pginas invertidas tiene problemas para hacer esta comparticin de cdigo.
51 (Noviembre 2006)
Gestin de memoria
dit UPM
Comparticin de pginas
52 (Noviembre 2006)
Gestin de memoria
dit UPM
dit UPM
Segmentacin
Conceptualmente, el usuario ve su programa como un conjunto de segmentos de diferente tamao, sin un orden estricto.
cdigo (texto) variables globales pila de llamadas variables locales y memoria dinmica (arena o montn)
segmento
54 (Noviembre 2006)
desplazamiento
Gestin de memoria
dit UPM
Segmentacin
1 1 2 4
3 4
2 3
espacio de usuario
memoria fsica
55 (Noviembre 2006)
Gestin de memoria
dit UPM
Tabla de Segmentos
Cada entrada de la tabla consta de:
base : comienzo del segmento lmite: longitud del segmento
56 (Noviembre 2006)
Gestin de memoria
dit UPM
Arquitectura de segmentacin
s
lmite base
Tabla de segmentos
CPU
< no
si
memoria fsica
Gestin de memoria
dit UPM
Caractersticas
Recolocacin dinmica
mediante la Tabla de Segmentos.
Comparticin de segmentos
usando el mismo nmero se mantiene una tabla de segmentos virtuales para simplificar la comparticin
Gestin de memoria
dit UPM
Proteccin
La proteccin se ajusta por unidades lgicas de programa. La proteccin de memoria queda perfectamente ajustada, al no haber fragmentacin interna. Se mantiene la proteccin aunque exista comparticin La proteccin se consigue con un bit de validacin por segmento.
59 (Noviembre 2006)
Gestin de memoria
dit UPM
Comparticin
60 (Noviembre 2006)
Gestin de memoria
dit UPM
Fragmentacin
No hay fragmentacin interna En este mtodo hay que buscar huecos de tamao variable.
Hay que aplicar algn algoritmo de seleccin (first-fit, best-fit)
61 (Noviembre 2006)
Gestin de memoria
dit UPM
62 (Noviembre 2006)
Gestin de memoria
dit UPM
Segmentacin Paginada
Aprovechar lo mejor de ambos mtodos:
Segmentacin para proteccin y comparticin Paginacin para evitar fragmentacin
Hacen falta dos pasos de traduccin de direcciones Cada segmento tiene su propia Tabla de Pginas. Se utiliz por primera vez en Multics
La tabla de segmentos estaba a su vez paginada hay 18 bits de nmero de segmento
8 bits de pgina 10 de desplazamiento
Gestin de memoria
dit UPM
64 (Noviembre 2006)
Gestin de memoria
dit UPM
Gestin de memoria
dit UPM
66 (Noviembre 2006)
Gestin de memoria
dit UPM
67 (Noviembre 2006)
Gestin de memoria
dit UPM