Documentos de Académico
Documentos de Profesional
Documentos de Cultura
SO Memoria Ingeniria Informatica
SO Memoria Ingeniria Informatica
Memoria
()
1 / 77
Contenidos I
Administracion de Memoria. Introducci
on
Intercambio
Relocalizaci
on
Proteccion
Esquemas simples
Sistemas no multiprogramados
Sistemas Multiprogramados
Segmentaci
on
Paginacion
Sistemas mixtos
()
2 / 77
Administraci
on de Memoria. Introducci
on
()
3 / 77
Administraci
on de Memoria. Introducci
on
Memoria
()
4 / 77
Administraci
on de Memoria. Introducci
on
Acceso a la memoria
()
5 / 77
Administraci
on de Memoria. Introducci
on
Figure:
From R.E. Bryant et al. Computer Systems: A Programmers Perspective (2nd edition), Pearson 2014
()
6 / 77
Administraci
on de Memoria. Introducci
on
Figure:
From R.E. Bryant et al. Computer Systems: A Programmers Perspective (2nd edition), Pearson 2014
()
7 / 77
Administraci
on de Memoria. Introducci
on
Jerarqua de la Memoria
I
Interesa que el acceso sea lo mas rapido posible, pero ademas interesa
tener la mayor capacidad sin incurrir en un costo excesivo. Por tanto
se usan las memorias mas rapidas y caras para donde los accesos son
mas frecuentes
Surge as lo que se llama jerarqua de la memoria y que se establece
en base a los tiempo de acceso y capacidad disponible
1.
2.
3.
4.
5.
8 / 77
Administraci
on de Memoria. Introducci
on
Jerarqua de la Memoria
()
9 / 77
Administraci
on de Memoria. Introducci
on
Figure:
From R.E. Bryant et al. Computer Systems: A Programmers Perspective (2nd edition), Pearson 2014
()
10 / 77
Administraci
on de Memoria. Introducci
on
El S.O. debe
El S.O. debe
El S.O. debe
El S.O. debe
necesotan
()
11 / 77
Administraci
on de Memoria. Introducci
on
Administracion de memoria
I
()
12 / 77
Administraci
on de Memoria. Introducci
on
Codigo (text).
()
13 / 77
Administraci
on de Memoria. Introducci
on
sbrk() funcion C. A
nade un desplazamiento (argumento) (puede ser
cero) y actuliza el espacio disponible (el valor puede ser negativo
implicando un decremento del espacio disponible)
()
14 / 77
Administraci
on de Memoria. Introducci
on
()
15 / 77
Administraci
on de Memoria. Introducci
on
()
16 / 77
Administraci
on de Memoria. Introducci
on
Output
stack 0x7fff12f59468
brk 0x116ed000
heap 0x116cc010
static(BSS) 0x00601060
static(initialized) 0x00601038
text 0x004005d4
()
17 / 77
Administraci
on de Memoria. Introducci
on
<stdlib.h>
<unistd.h>
<stdio.h>
<limits.h>
#define TROZO
#define PUNTO
100*1024*1024
(10*1024*1024)
()
18 / 77
Administraci
on de Memoria. Introducci
on
()
19 / 77
Administraci
on de Memoria. Introducci
on
Output
I
()
/home/barreiro/teaching/teaching-so/examples_C
/home/barreiro/teaching/teaching-so/examples_C
/home/barreiro/teaching/teaching-so/examples_C
[ anon ]
/lib/x86_64-linux-gnu/libc-2.13.so
/lib/x86_64-linux-gnu/libc-2.13.so
/lib/x86_64-linux-gnu/libc-2.13.so
/lib/x86_64-linux-gnu/libc-2.13.so
[ anon ]
/lib/x86_64-linux-gnu/ld-2.13.so
[ anon ]
[ anon ]
/lib/x86_64-linux-gnu/ld-2.13.so
/lib/x86_64-linux-gnu/ld-2.13.so
[ stack ]
[ anon ]
[ anon ]
20 / 77
Administraci
on de Memoria. Introducci
on
Output
I
()
/home/barreiro/teaching/teaching-so/examples_C
/home/barreiro/teaching/teaching-so/examples_C
/home/barreiro/teaching/teaching-so/examples_C
[ anon ]
/lib/x86_64-linux-gnu/libc-2.13.so
/lib/x86_64-linux-gnu/libc-2.13.so
/lib/x86_64-linux-gnu/libc-2.13.so
/lib/x86_64-linux-gnu/libc-2.13.so
[ anon ]
/lib/x86_64-linux-gnu/ld-2.13.so
[ anon ]
[ anon ]
/lib/x86_64-linux-gnu/ld-2.13.so
/lib/x86_64-linux-gnu/ld-2.13.so
[ stack ]
[ anon ]
[ anon ]
21 / 77
Administraci
on de Memoria. Introducci
on
Fragmentacion de la memoria
fragmentaci
on interna Memoria que se despedicia por ser las
unidades de asignaci
on de tama
no fijo y no ser los requerimientos de
los procesos m
ultiplos exactos de la unidad de asignacion
fragmentaci
on externa Memoria que no se puede asignar por no estar
contigua, tpica de los sistemas que utilizan segmentacion
()
22 / 77
Intercambio
()
23 / 77
Intercambio
Intercambio
Si el planificador seleci
on un proceso que esta en el intercambio, es
necesario traerlo a memoria principal, lo que aumenta el tiempo del
cambio de contexto
Para poder intercambiar procesos que estan pendientes de una
operaci
on de e/s, todas las operaciones de e/s se hacen sobre los
buffers del sistema
()
24 / 77
Intercambio
Intercambio
()
25 / 77
Intercambio
Intercambio
()
26 / 77
Intercambio
()
27 / 77
Relocalizaci
on
()
28 / 77
Relocalizaci
on
()
29 / 77
Relocalizaci
on
()
30 / 77
Relocalizaci
on
Relocalizacion Estatica
()
31 / 77
Relocalizaci
on
No va a haber ning
un problema con el intercambio, los procesos
pueden salir de memoria y volver a ella en cuanquier sitio
Aparece una distinci
on entre el espacio virtual o logico de direcciones y
el espacio fsico de direcciones al que realmente se accede
Es NECESARIO que el hardware haga dicha traslacion
En el caso de relocalizaci
on dinamica el enlazado puede posponerse
hasta el momento de ejecuci
on, es lo que se conoce como enlace
dinamico (p.e. las DLL de windows, lib*.so de linux)
()
32 / 77
Relocalizaci
on
Relocalizacion Dinamica
()
33 / 77
Protecci
on
()
34 / 77
Protecci
on
Proteccion
()
35 / 77
Protecci
on
Proteccion
I
I
I
()
36 / 77
Protecci
on
Proteccion
I
I
I
()
37 / 77
Protecci
on
()
38 / 77
Protecci
on
Proteccion
()
39 / 77
Esquemas simples
()
40 / 77
Esquemas simples
Sistemas no multiprogramados
Esquemas simples
Sistemas no multiprogramados
Sistemas Multiprogramados
()
41 / 77
Esquemas simples
Sistemas no multiprogramados
()
42 / 77
Esquemas simples
Sistemas Multiprogramados
Esquemas simples
Sistemas no multiprogramados
Sistemas Multiprogramados
()
43 / 77
Esquemas simples
Sistemas Multiprogramados
zonas de tama
no fijo: El n
umero de procesos en memoria tambien es
fijo
zonas de tama
no variable: El n
umero y el tama
no de las zonas puede
variar
()
44 / 77
Esquemas simples
Sistemas Multiprogramados
Zonas de tama
no fijo
I
I
Presentaba fragmentaci
on externa e interna
Usado en IBM OS/360 MFT (Multiprogramming Fixed number of
Tasks)
Zonas de tama
no variable
I
I
I
fragmentaci
on interna despreciable. Si presentaba fragmentacion
externa
Requiere compactaciones
Usado en IBM OS/360 MVT (Multiprogramming Variable number of
Tasks)
()
45 / 77
Segmentaci
on
()
46 / 77
Segmentaci
on
()
47 / 77
Segmentaci
on
()
48 / 77
Segmentaci
on
Segmentacion: ejemplo
()
A
A
A
A
donde
donde
donde
donde
accede
accede
accede
accede
una
una
una
una
referencia
referencia
referencia
referencia
a
a
a
a
la
la
la
la
direcci
on
direcci
on
direcci
on
direcci
on
0x12F0?
0x0342?
0x0x021F?
0x190A?
49 / 77
Segmentaci
on
Segmentacion: ejemplo
()
50 / 77
Segmentaci
on
()
51 / 77
Segmentaci
on
El tama
no de segmento suele ser m
ultiplo de alguna cantidad de
memoria. Por ejemplo si el tama
no de segmento es m
ultiplo de 16
bytes hay algo de fragmentaci
on interna
()
52 / 77
Segmentaci
on
first fit Primer hueco. El primer hueco que encuentra. Muy rapido,
tiende a dejar huecos peque
nos en las zonas bajas de la memoria y
grandes en las altas (suponiendo que la b
usqueda comienza por las
zonas bajas)
next fit Siguiente hueco. El primer hueco que encuentra, comenzando
la b
usqueda a partir de donde asign
o el u
ltimo
best fit El hueco que mejor se ajusta. Mas lento. Tiende a generar
huecos peque
nos
worst fit El hueco que pero se ajusta. La idea es que dejara huecos
mas grandes
53 / 77
Segmentaci
on
Dado que dos segmentos contiguos son dos segmentos y dos huecos
contiguos son un hueco mas grande, se estima que en general hay
doble n
umero de segmentos que de huecos
()
n
ks
2
n
ks+ns
2
k
k+2
54 / 77
Segmentaci
on
Implementa la protecci
on de la memoria
Permite la compartici
on de c
odigo (o datos) a nivel de segmento
()
55 / 77
Paginaci
on
()
56 / 77
Paginaci
on
El espacio de direcciones l
ogico o virtual esta formado por zonas de
tama
no fijo denominadas paginas
Con el n
umero de pagina se obtiene una entrada en una tabla de
paginas, en donde hay una direcci
on base de marco de pagina
()
57 / 77
Paginaci
on
()
58 / 77
Paginaci
on
Paginacion: Ejemplo
El taman
no de pagina sera de 512 bytes
()
59 / 77
Paginaci
on
Paginacion: Ejemplo
()
60 / 77
Paginaci
on
Paginacion
I
I
A mayor tama
no de pagina mayor fragmentaci
on interna
A menor tama
no de pagina mayor gasto adicional en, p.e., tablas de
paginas
()
61 / 77
Paginaci
on
Paginacion
()
62 / 77
Paginaci
on
()
63 / 77
Paginaci
on
Paginacion
()
64 / 77
Paginaci
on
R
apido
Muy costoso (hacen falta muchos registros: impracticable)
Cambio de contexto lento
()
Lento: Cada vez que el proceso accede a memoria son necesarios dos
accesos: uno para acceder a la tabla de p
aginas para determinar a que
direcci
on hay que acceder y otro para acceder a dicha direcci
on
65 / 77
Paginaci
on
Paginacion
I
El algunos sistemas hay dos niveles de TLB (un core i7 tiene un TLB1
de 64 entradas y un TLB2 de 512 entradas)
()
66 / 77
Paginaci
on
()
67 / 77
Paginaci
on
Dos soluciones
I
I
Tabla de p
aginas multivivel (ver ejemplo en sistemas mixtos)
Tabla de p
aginas invertida
I
I
()
68 / 77
Sistemas mixtos
()
69 / 77
Sistemas mixtos
Sistemas mixtos
I
I
I
I
paginaci
on segmentada: arcaico, usado en el sistema 370 de IBM, se
segmentaba la tabla de paginas de un proceso para adecuarla a su
tama
no
paginaci
on en varios niveles
segmentaci
on paginada se paginan los segmentos
()
70 / 77
Sistemas mixtos
una direcci
on base de 32 bits
un lmite de 20 bits (que representa 32 bits de direccionamiento si la
granularidad es de una pagina)
()
71 / 77
Sistemas mixtos
()
72 / 77
Sistemas mixtos
()
73 / 77
Sistemas mixtos
()
74 / 77
Sistemas mixtos
()
75 / 77
Sistemas mixtos
()
76 / 77
Sistemas mixtos
()
77 / 77