You are on page 1of 67

Gestin de memoria

Toms P. de Miguel DIT-UPM

dit UPM

Justificacin
Un proceso necesita memoria para ejecutar programas
cdigo del programa datos estticos y dinmicos

El Gestor de Memoria pretende optimizar el uso de la memoria principal disponible


Sistema operativo residente Memoria principal disponible para ejecutar procesos

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

Referencia a registro Tamao Velocidad 500 bytes 0,25 ns

(Computer Architecure: A Quantitative Approach, Hennessy & Patterson, 2003)

Cache

Memoria

Dispositivo E/S

Referencia a cache 64 KB 1 ns

Referencia a memoria 512 MB 100 ns

Referencia a memoria en disco 100GB 5ms

3 (Noviembre 2006)

Gestin de memoria

dit UPM

Datos sobre la jerarqua de memorias (2001)


Registro Tamao tpico
< 1KB

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

(Computer Architecure: A Quantitative Approach, Hennessy & Patterson, 2003)


4 (Noviembre 2006)

Gestin de memoria

dit UPM

Ciclo de ejecucin de una instruccin


1. Se busca la instruccin en memoria principal 2. Se decodifica la instruccin y se buscan en memoria los operandos 3. Se ejecuta la instruccin 4. Se almacena el resultado en memoria principal

dato

CPU
direccin registro

memoria principal
5 (Noviembre 2006)

Gestin de memoria

dit UPM

Asignacin de direcciones en tiempo de compilacin


cdigo absoluto la asignacin no se puede cambiar nunca Ejemplo: programas .COM en MS-DOS
cdigo generado por el compilador
0 dato

cdigo generado por el cargador


0 dato 0 343 1175 dato

343 1175

343 1175

CPU
343 registro

memoria principal
6 (Noviembre 2006)

Gestin de memoria

dit UPM

Asignacin de direcciones en tiempo de carga


cdigo generado por el montador o el cargador la asignacin se hace en el momento de lanzar el programa cdigo reubicable
cdigo generado por el compilador
0 dato

cdigo generado por el cargador


10000 10000 dato 10343 dato

343 2175

10343 12175

CPU
10343 registro

12175

memoria principal
7 (Noviembre 2006)

Gestin de memoria

dit UPM

Asignacin de direcciones en tiempo de ejecucin


el cdigo no tiene direcciones definitivas incluso despus de la carga la asignacin se resuelve en cada acceso a memoria permite mover el programa durante la ejecucin necesita hardware especial
cdigo generado por el compilador
0 dato

cdigo generado por el cargador


0 10000 dato 10343 dato

343 2175

343 2175

12175

+
10000 registro de recolocacin

CPU
343 registro

memoria principal
8 (Noviembre 2006)

Gestin de memoria

dit UPM

Espacios de memoria lgicos y fsicos


Direccin lgica
La generada por la CPU durante la ejecucin del programa Llamada tambin direccin virtual

Direccin fsica
La usada realmente en el Registro de Direcciones de Memoria cdigo generado por el compilador
0 dato

cdigo generado por el cargador


0 10000 dato 10343 dato

direccin lgica direccin fsica CPU


343 registro

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.

Consume menos memoria y menos disco.


Solo hay una copia de la biblioteca en memoria El cdigo del programa no incluye el de las bibliotecas

Se pueden tener varias versiones de la misma biblioteca


Bibliotecas Compartidas

Necesita que el SO compruebe que no se vulnera la proteccin de memoria.


11 (Noviembre 2006)

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

Hace falta un programador experto


para agrupar instrucciones y datos en conjuntos adecuados

Solo se usa con hardware limitado (micros 86, 286).


En otros casos, tcnicas automticas de memoria virtual

12 (Noviembre 2006)

Gestin de memoria

dit UPM

Un ensamblador en dos pasos


Tabla de smbolos

20K

Rutinas comunes
Manejador de solapamientos

30K

70K

10K

80K

Paso 1
100K
13 (Noviembre 2006)

Paso 2

Gestin de memoria

dit UPM

Intercambio de Trabajos (swapping)


Un proceso puede dejar temporalmente la memoria y volver despus para continuar su ejecucin. Por ejemplo, en sistemas de multiprogramacin
Cuando se acaba su rodaja de tiempo de un proceso se vuelca en disco Mientras se ejecuta otro proceso Hace falta que la rodaja de tiempo sea grande

Hace falta un disco rpido (Backing Store).


La mayor parte del tiempo se consumo transfiriendo el proceso a disco y viceversa.

Existen variantes que seleccionan el proceso en funcin de la prioridad.


ROLL-OUT / ROLL-IN se lleva a memoria secundaria un proceso de baja prioridad su lugar lo ocupa otro de ms prioridad que acaba de llegar
14 (Noviembre 2006)

Gestin de memoria

dit UPM

Esquema de intercambio de procesos

Sistema operativo residente

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

Limitaciones del intercambio


Que pasa si el proceso a intercambiar a disco tiene una llamada de entrada/salida pendiente?
El proceso ha marcado una direccin de retorno. Si la llamada termina con el proceso en rea de swap falla.

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

Mtodos sencillos de gestin de memoria


Toms P. de Miguel DIT-UPM

dit UPM

Mtodos de Gestin de Memoria


1. Mtodos de asignacin de direcciones contiguas para todo el proceso.
Asignacin de particin nica
Sistema operativo o ncleo Vector de interrupcin se asigna en direcciones bajas El sistema ocupa las direcciones bajas

Un solo proceso de usuario activo (ocupan direcciones altas)

Memoria particionada
Sistemas multiproceso

2. Mtodos de asignacin de memoria no contigua. 3. Mtodos basados en memoria virtual.

19 (Noviembre 2006)

Gestin de memoria

dit UPM

Mtodo de asignacin de particin nica


Registros base y lmite
BASE (recolocacin): contiene la direccin fsica ms baja LMITE : contiene la direccin lgica ms alta

Hace falta proteccin de memoria


el gestor de memoria comprueba antes de ejecutar

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

Error por direccionamiento invlido


21 (Noviembre 2006)

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

OS process 5 process 9 process 10

process 8 process 2
22 (Noviembre 2006)

process 2
Gestin de memoria

process 2

process 2

dit UPM

Planificacin a largo plazo


El SO mantiene una tabla con las particiones ocupadas y las libres Cuando llega un proceso busca un hueco y se carga en una de las particiones libres. Mtodo de Asignacin de Memoria
Usar el primer hueco que sirva (first-fit) Usar el hueco que mejor se ajusta (best-fit) Usar el hueco que peor se ajusta (worst-fit)

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

La compactacin tambin se puede optimizar


Eligiendo el orden y el sentido de la reubicacin Tambin se puede simplificar si se aplica Intercambio (SWAP)

25 (Noviembre 2006)

Gestin de memoria

dit UPM

Estrategias de compactacin

26 (Noviembre 2006)

Gestin de memoria

dit UPM

Registros Base Mltiples


Aunque los programas sean grandes, las particiones deben ser pequeas. Una solucin es dividir el programa en partes separadas.
solo lectura y lectura-escritura el compilador divide la memoria en partes alta y baja. cdigo y datos la CPU sabe cuando va a buscar instrucciones y cuando va a por operandos o a devolver resultados.

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

Asignacin de Memoria no Contigua


Generalizar la idea de registros mltiples.
Para mejorar la utilizacin de la memoria. Para aumentar el nivel de multiprogramacin

Aun a costa de tener que utilizar HW especializado Consiste en:


partir el programa en muchas partes y distribuir las partes por las zonas libres de la memoria.

Mtodos ms utilizados:
Paginacin Segmentacin Memoria Virtual

28 (Noviembre 2006)

Gestin de memoria

dit UPM

Sistemas de gestin de memoria por Paginacin


Toms P. de Miguel 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

Desplazamiento dentro de la pgina

Para obtener la direccin en memoria fsica:


traducir la pgina en el marco correspondiente aplicar el mismo desplazamiento de la pgina al marco

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

Ejemplo de tabla de pginas


Tamao de la memoria fsica = 32 bytes Tamao de la pgina = 4 bytes Tamao de la memoria lgica 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 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

Construccin de la Tabla de Pginas


Cada proceso tiene su propia tabla de pginas
se guarda con el descriptor de proceso

Tabla de Pginas en registros rpidos de la mquina


tabla de pequeo tamao acceso muy rpido cambio de contexto lento

Tabla de pginas en memoria principal


los cambios de contexto son mas fciles, pero un acceso a memoria se convierte en dos accesos! El HW debe disponer de dos registros:
PTBR (Page Table Base Register) direccin de comienzo de la tabla de pginas PTLR (Page Table Length Register) tamao de la tabla de pginas
35 (Noviembre 2006)

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

Memoria de acceso por contenido


Se compara con todas las pginas disponibles a la vez Si la pgina buscada no est hay que buscarla en la Tabla de Pginas en memoria principal Despus del fallo se refresca la memoria asociativa El mtodo es vlido en funcin del porcentaje de xito
se basa en que casi siempre los programas acceden a direcciones consecutivas

36 (Noviembre 2006)

Gestin de memoria

dit UPM

Memoria asociativa

37 (Noviembre 2006)

Gestin de memoria

dit UPM

Tiempo de acceso efectivo a memoria


Es el tiempo de acceso a memoria en promedio
xito con memoria asociativa fallo de memoria asociativa

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

Planificacin a largo plazo


Muy simple Contar:
nmero de pginas requeridas y nmero de marcos disponibles,

Si hay marcos suficientes


asignar marcos a pginas construir la Tabla de Pginas

Si no hay marcos suficientes no se puede cargar el proceso.

39 (Noviembre 2006)

Gestin de memoria

dit UPM

Proteccin
Bits de proteccin para cada pgina.
Lectura, escritura, ejecucin, ...

Bit vlido / invlido para cada pgina


Vlido : la pgina pertenece al espacio de direccionamiento del proceso Invlido: la pgina no pertenece al proceso

Se mantienen en la Tabla de Pginas Cuando se produce un error


Se para la ejecucin Se produce un desvo (TRAP) al SO.

Hay partes, de todas formas, que no se protegen.


rea de fragmentacin interna de la ltima pgina

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

La Tabla de Pginas se divide en dos niveles:


Tabla de pginas externa (210) Tablas de pginas de pginas (210)

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

Ejemplo de paginacin multinivel


Memoria Lgica 00 01 02 03 04 05 06 07 08 09 10 11 a b c d e f g h i j k l ... 60 61 62 63 m n o p
43 (Noviembre 2006)

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

tabla de pginas externa pgina de la tabla de pginas

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

Con registros asociativos el rendimiento es razonable.

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

Parmetros de gestin de memoria de Linux 2.4 en diversas arquitecturas


Procesador Alpha ARM 26 bit ARM 32 bit IA64 M68000 M68000 SUN3 MIPS MIPS64 PARISC PowerPC S390 SH Sparc Sparc SUN4 Sparc 64 X86
46 (Noviembre 2006)

Tamao de pgina 8kb 16 32 Kb 4 Kb 4, 8, 16 64Kb 4 Kb 8 Kb 4 Kb 4 Kb 4 Kb 4 Kb 4 Kb 4 Kb 4 Kb 8 Kb 8 Kb 4 Kb

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

Descriptor de pgina de i386

47 (Noviembre 2006)

Gestin de memoria

dit UPM

Tabla de pginas mediante tabla hash


Se usa con espacios de direcciones grandes: 64 bits
Alternativa: hasta 7 niveles de paginacin

Cada entrada: pgina, marco y puntero a lista de colisiones

48 (Noviembre 2006)

Gestin de memoria

dit UPM

Tabla de Pginas Invertida


Tabla de acceso directo
Proceso + Pgina --> marco en memoria fsica Hay solo una tabla de pginas para todo el sistema

Ventaja: acceso inmediato Inconveniente: tabla muy grande


utilizar algoritmos de HASH

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

Tabla de pginas invertida

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 cdigo debe ser reentrante (no automodificable)


cada proceso debe mantener cdigo y datos separados

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

Sistemas de gestin de memoria por Segmentacin


Toms P. de Miguel 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)

La Segmentacin soporta la gestin de memoria en esos trminos:


los fragmentos del programa coinciden con las partes en que se separan en memoria Las direcciones del programa son tuplas:

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

Registros para gestionar la tabla


STBR (Segment Table Base Register)
Direccin de la Tabla de Segmentos.

STLR (Segment Table Length Register)


Longitud de la tabla de segmentos

56 (Noviembre 2006)

Gestin de memoria

dit UPM

Arquitectura de segmentacin
s
lmite base

Tabla de segmentos

CPU

< no

si

memoria fsica

Error por direccionamiento invlido


57 (Noviembre 2006)

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 a largo plazo


Dnde colocar los segmentos?
first fit / best fit

Cmo evitar la fragmentacin externa?


compactacin
58 (Noviembre 2006)

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)

La segmentacin produce fragmentacin externa.


Para reducirla se puede aplicar compactacin. Otra forma de reducirla es definir segmentos del tamao ideal:
un segmento por programa (> fragmentacin) un segmento por instruccin (> tiempo de acceso)

61 (Noviembre 2006)

Gestin de memoria

dit UPM

Descriptor de segmento en i386

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

Los segmentos se dividen en pginas.


Aparece la fragmentacin interna de nuevo

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

hay 16 bits de desplazamiento


63 (Noviembre 2006)

Gestin de memoria

dit UPM

Segmentacin paginada en Multics

64 (Noviembre 2006)

Gestin de memoria

dit UPM

Segmentacin paginada en i386


Se utiliza en OS/2 Es un sistema de segmentacin paginado a dos niveles. El nmero mximo de segmentos por proceso es 16K. Cada segmento puede tener hasta 4GB El tamao de la pgina son 4K La memoria lgica tiene dos particiones
cada una con 8K segmentos como mximo la primera es privada y la segunda compartida por todos La tabla local del descriptor (LDT) mantiene la informacin de la primera particin La tabla global del descriptor (GDT) mantiene la segunda

La direccin lgica es un par:


selector de 16 bits = 13 bits de segmento, 1 global o local, 2 bits de proteccin desplazamiento de 32 bits
65 (Noviembre 2006)

Gestin de memoria

dit UPM

Segmentacin paginada en Intel 386

66 (Noviembre 2006)

Gestin de memoria

dit UPM

Comparacin entre sistemas de gestin


Soporte Hardware Rendimiento Fragmentacin Recolocacin Desplazamiento a disco (swap) Comparticin de partes del programa Proteccin

67 (Noviembre 2006)

Gestin de memoria

dit UPM

You might also like