Documentos de Académico
Documentos de Profesional
Documentos de Cultura
So 04 1 Memoria PDF
So 04 1 Memoria PDF
1
Contenidos
n Antecedentes
n Tcnicas bsicas: recubrimientos,
intercambio
n Gestin de memoria contigua
n Segmentacin
n Paginacin
n Tcnicas mixtas
2
Gestin de la memoria
Antecedentes
n La memoria fsica es un conjunto de celdas
referenciables por medio de una direccin lineal
(p.ej. de la 00000h a la FFFFFh)
n Para que un programa se ejecute, su cdigo y
sus datos necesitan estar cargados en memoria
(al menos en parte)
n En un sistema multitarea, la memoria ha de
repartirse entre los diferentes procesos
3
Gestin de la memoria
Antecedentes (2)
n Las rutinas del sistema operativo tambin
debern residir en memoria, en todo o en
parte
n Puede ser que la memoria principal no tenga
capacidad suficiente para todos los procesos
en ejecucin
4
Gestin de la memoria
Objetivo principal
n Conseguir que varios procesos puedan ejecutarse de
forma concurrente,
q evitando los conflictos de uso
q protegiendo al sistema operativo
q aprovechando eficazmente el espacio disponible:
n Minimizar la memoria desaprovechada
q Evitar fragmentacin
q Memoria ocupada por varias copias de un mismo objeto
q Memoria ocupada por las estructuras de datos necesarias para la
operacin del gestor de memoria
n Carga parcial de programas
q sin perjudicar el rendimiento:
n Complejidad temporal
n Tiempo de acceso a memoria
5
Gestin de la memoria
Objetivo principal (2)
n Un gestor de memoria ideal debera por tanto,
q minimizar la memoria desaprovechada
q tener una complejidad temporal mnima
q y presentar un recargo por acceso a memoria mnimo
q adems de proporcionar una buena proteccin y una
comparticin flexible
6
Ciclo de vida de un programa
programa fuente
compilador
compilacin
mdulo objeto
otros objetos
y bibliotecas enlazador
(linker)
programa ejecutable
bibliotecas
del sistema cargador carga
bibliotecas
dinmicas programa y datos
binarios en memoria
ejecucin
HARDWARE
7
Conversin de direcciones:
reubicacin
n El compilador traduce direcciones de memoria
simblicas a direcciones binarias.
n Si las direcciones binarias son absolutas, el
programa slo se puede ejecutar en una zona
fija de la memoria: NO ES REUBICABLE.
n Ej.: los programas con formato .COM de MS-
DOS
8
Conversin de direcciones:
reubicacin (2)
n Nos interesa que el compilador no genere
direcciones definitivas, sino direcciones
provisionales, reubicables.
Cuando se sepa dnde van a residir el cdigo y
los datos, se convertirn a direcciones
absolutas.
n En qu momento (etapa) se realiza esta
reubicacin ?
q Carga (enlazador o cargador) Reubicacin esttica
q Ejecucin (hardware) Reubicacin dinmica
9
Reubicacin dinmica:
direcciones lgicas/direcciones fsicas
n Direccin fsica: la que llega al chip de
memoria
n Direccin lgica o virtual: la generada por
la CPU
n El dispositivo que traduce direcciones
virtuales a fsicas se llama unidad de
manejo de memoria (MMU, en ingls)
n El espacio de direcciones lgicas y el
espacio de direcciones fsicas no tienen por
qu coincidir
n Ejemplo: registro base
10
Espacios de direcciones
Fichero fuente Fichero ejecutable Memoria lgica del
(principal.cc) (principal) proceso Memoria fsica
#include<stream.h>
cabecera
main() cdigo
{
int cont;
cdigo datos
...
cont++ inicializados
... MR
} datos datos sin
inicializados inicializar Proceso
pila
11
Direcciones lgicas/direcciones
fsicas
Direccin
lgica o
virtual CPU Memoria Disco
CPU
dir. lgica
1234
Controlador Controlador
MMU de de
+ 80000 memoria disco
registro base Direccin fsica
MMU
dir. fsica
81234
memoria
12
Carga dinmica
n Proceso se ejecute
q Cdigo + Datos Memoria fsica
n Consecuencia:
q Tamao de un proceso limitado al tamao de la
memoria fsica
n Carga dinmica
q postergar la carga en memoria de un mdulo hasta
que el programa llame a alguna rutina del mismo
13
Enlace dinmico
14
Recubrimientos (overlays)
15
Recubrimientos (overlays) (2)
rutinas y
datos comunes
manejador de
recubrimientos
fase 1
(disponible para
fase 2 recubrimientos)
fase 3
16
Intercambio (swapping)
sistema operativo
P1
memoria P2
para usuarios
17
Intercambio (swapping) (2)
n Problemas:
q aumenta el tiempo de cambio de contexto
q E/S que accede por DMA
n Mejoras:
q varios procesos en memoria
q intercambio un proceso mientras se ejecuta otro
18
Intercambio (swapping) (3)
19
Intercambio (swapping) (4)
n Otras consideraciones:
q Operaciones de E/S pendientes ?
q Un proceso intercambiado, regresa al mismo
espacio de memoria que ocup previamente ?
q Versiones modificadas del intercambio estndar:
n Unix
n Microsoft Windows 3.1
20
Gestin de memoria contigua
Proceso
256K
21
Gestin de memoria contigua
n Evolucin: particiones mltiples
q particiones de tamao fijo (MFT)
q particiones de tamao variable (MVT)
MFT MVT
Memoria fsica Memoria fsica Memoria fsica
SO SO SO
Particin 1
Particin 1
Particin 2 Particin 2
Particin 3
Particin 3
Particin 4
Particin 4
22
Memoria contigua: estructuras de
datos
n Mecanismos de gestin de la memoria contigua
q Tabla de descripcin de particiones (TDP)
q El S.O. gestionar una lista de huecos libres en
memoria y seleccionar qu procesos pueden
cargarse en memoria para ejecutarse
q Primitivas internas de pedir y liberar memoria
23
Memoria contigua: cmo reservar
espacio a un proceso
n POLTICAS DE UBICACIN
q El problema general se conoce como la gestin de
memoria dinmica
n Primer hueco (first-fit)
n Mejor hueco (best-fit)
n Peor hueco (worst-fit)
q las polticas de primer hueco y mejor hueco son
similares en rendimiento; y mejores que la de peor
hueco
q Otras polticas: siguiente ajuste, buddies
24
Memoria contigua: proteccin
5000 80000
lmite base
excepcin
MMU
25
Memoria contigua: proteccin
26
Compartir zonas de memoria
27
Compartir zonas de memoria (2)
28
Comparticin
29
Comparticin
30
La fragmentacin de la memoria
31
Fragmentacin: soluciones
32
Compactacin
n Estrategia a seguir
q Seleccionar una estrategia ptima de traslados
n Raras veces es implementado debido al gasto en que se
incurre al evaluar las opciones
q Reubicar todas las particiones en un extremo de la
memoria
n El recargo por copia es generalmente ms alto que el de un
traslado ms selectivo
q Compactacin + intercambio
n Copiar en disco los procesos que tienen que cambiar de lugar
33
Segmentacin
T.seg. S1
S3
S2
34
Segmentacin (2)
35
Hardware de segmentacin
Tabla de segmentos
(S)
lmite base
S D
no
Excepcin:
direccin ilegal
36
Tabla de segmentos
n Registros
q Problema: muchos segmentos
n Memoria
q Registro base de la tabla de segmentos (RBTS)
q Registro de longitud de la tabla de segmentos (RLTS)
37
Tabla de segmentos
38
Segmentacin: ventajas
39
Segmentacin: inconvenientes
40
Paginacin
41
Paginacin/Ejemplo
42
Ejemplo de paginacin
Ubicacin de un proceso en memoria y creacin de la tabla de pginas:
tamao de pgina 4kbytes, tamao de la memoria 48kbytes
Memoria fsica
0 Memoria fsica
m0 0
4k
m1 S0 Tabla de pginas
Proceso 1 (10k) 4k
8k
m2 8k
SO Proceso 1
12k
Pg0
Marco
m3 Pg1
12k
16k
m4 Pg2 16k
P1-Pg1 10
20k
24k m5 20k 3
m6 10k/4k=2.5 3 pginas 24k
6
28k
m7 28k
P1-Pg2
32k
36k m8 32k
40k
m9 36k
48k/4k=12 marcos 43
Paginacin: gestin del espacio
libre
n La gestin del espacio libre consiste
simplemente en saber qu marcos estn libres
n El SO posee una tabla de marcos de pginas
(TMP)
q Implementacin?
44
Paginacin/Marcos Libres
45
Paginacin:
traduccin de direcciones
Traduccin de direcciones: direcciones de 16 bits y tamao de pgina 4kbytes
Desplazamiento
dentro de la
4k=212 12 bits
16-12=4bits Nmero de pgina
pgina
Tabla de Pginas
Marco
1010
0011
0110
Marco de pgina
46
Hardware de paginacin
Tabla de pginas
(P) F
P D Memoria
CPU F D fsica
dir. lgica dir. fsica
47
Estructura de la tabla de
pginas
n Depende del SO
n Denominador comn
q Una tabla de pginas para cada proceso
n cmo localiza el SO la tabla de pginas de un
proceso?
q BCP
n Contador de instrucciones, registros, info. de E/S, etc... Y
n Puntero a la tabla de pginas
n Qu ocurre en un cambio de contexto?
q Despachador cargar los registros con los valores del nuevo
proceso y
q A partir de la tabla de pginas almacenada, cargar los valores
correctos de la tabla de pginas en hardware !!
48
Implementacin en hardware de la
tabla de pginas
49
Implementacin en hardware de la
tabla de pginas
n Esquema de registros
q Problema: tablas de pginas grandes
n Solucin
q Mantener la tabla de pginas en memoria
q Registro base de la tabla de pginas (RBTP)
que apunta a la TP
n Cambio de contexto: ms rpido (slo cambiar el
valor de este registro)
n Gran inconveniente: tiempo de traduccin
50
Paginacin
Traduccin de direcciones
51
Implementacin en hardware de la
tabla de pginas
n Solucin: usar un TLB (translation lookahead
buffer)
q Pequeo cache especial en hardware
q Cada registro consta de dos partes: clave y valor
q Funcionamiento:
n Se presenta una clave y, si encuentra alguna
coincidencia, devuelve el valor correspondiente
q Permite bsquedas rpidas pero el hardware es
costoso
52
TLB: cmo funciona
n Funcionamiento: acceso posicin i
q Obtiene el nmero de pgina donde se encuentra i
q Si est en TLB Obtenemos el marco de pgina
donde se encuentra
q sino, acceso a la tabla de pginas y actualizar TLB
n Si TLB llena Sustitucin de una de las existentes
n OJO, cambio de contexto
q Desalojar (borrar) el TLB
53
TLB: esquema general
54
TLB: tasa de aciertos
n Tasa de aciertos
q porcentaje de las veces que un nmero de pgina
se encuentra en los registros asociativos
q relacionada con el nmero de registros asociativos
q 16-512 => pueden obtenerse tasas de aciertos
entre 80 y 98%.
n Ejemplos
q Motorola 68030 => TLB de 22 entradas
q Intel 80486 => TLB de 32 entradas
n Sus fabricantes dicen que tiene una tasa de aciertos del
98%
55
Tabla de pginas invertidas
56
Tabla de pginas invertida
57
Tabla de pginas invertida
n Ventajas
q Reduce la cantidad de memoria necesaria
n Desventaja
q Tiempo de bsqueda en la tabla de pginas
invertida
q Soluciones:
n Tabla de dispersin (hash)
n Registros asociativos (cach)
58
Paginacin: inconvenientes
59
Paginacin: proteccin
60
Paginacin: bit de validez
61
Paginacin: proteccin contra
accesos fuera de lmites
n Un proceso casi nunca utiliza todo su intervalo
de direcciones
q En estos casos sera un desperdicio crear una tabla
de pginas con entradas para todas las pginas del
intervalo de direcciones
n Algunos sistemas: registro de longitud de la
tabla de pginas (RLTP)
q Indica el tamao de la tabla de pginas y se coteja
con cada direccin lgica para asegurar que la
direccin est en el intervalo vlido para el proceso
62
Comparticin de pginas
63
Comparticin de pginas
64
Paginacin de varios niveles
65
Paginacin de varios niveles
66
Paginacin de varios niveles:
80386
67
Esquema combinado
segmentado/paginado
n La paginacin y la segmentacin pueden
combinarse (ej. MULTICS, 80386).
n Motivacin: aprovecharse de las ventajas que
ofrecen los esquemas por separado
q Segmentacin: flexibilidad y facilidad para la
organizacin lgica
q Paginacin: mejorar el problema de la fragmentacin
68
Esquema combinado segmentado/
paginado: 80386
69