Actualizado el 21 de Marzo del 2018 (Publicado el 23 de Febrero del 2018)
595 visualizaciones desde el 23 de Febrero del 2018
690,6 KB
53 paginas
Creado hace 9a (01/01/2015)
Sistemas
Opera,vos
Tema
4.
Memoria
© 1998-2015 José Miguel Santos – Alexis Quesada – Francisco Santana –
Belén Esteban
Contenidos
n Conceptos
básicos
n Ges.ón
de
memoria
con.gua
n Segmentación
n Paginación
2
Ges,ón
de
la
memoria
Antecedentes
n La
memoria
9sica
es
un
conjunto
de
celdas
referenciables
por
medio
de
una
dirección
lineal
(p.ej.
de
la
00000h
a
la
FFFFFh)
n Para
que
un
programa
se
ejecute,
su
código
y
sus
datos
necesitan
estar
cargados
en
memoria
(al
menos
en
parte)
n En
un
sistema
mul.tarea,
la
memoria
ha
de
repar.rse
entre
los
diferentes
procesos
3
Ges,ón
de
la
memoria
Antecedentes
(2)
n Las
ru.nas
del
sistema
opera.vo
también
deberán
residir
en
memoria,
en
todo
o
en
parte
n Puede
ser
que
la
memoria
principal
no
tenga
capacidad
suficiente
para
todos
los
procesos
que
quieren
ejecutarse
4
Ges,ón
de
la
memoria:
obje,vos
n Rendimiento:
q Aprovechar
al
máximo
la
memoria
disponible
q Conseguir
tener
cargados
en
memoria
varios
procesos…
y
que
el
sistema
no
se
venga
abajo
q Que
un
programa
no
necesite
estar
totalmente
cargado
en
memoria
para
poder
ejecutarse
à
apoyarse
en
la
memoria
secundaria,
si
es
preciso
n Protección
y
compar,ción:
q Proteger
al
SO
de
accesos
indebidos
q Proteger
el
espacio
de
memoria
de
cada
proceso
q Permi.r
que
varios
procesos
puedan
compar.r
zonas
de
memoria
(para
comunicación,
o
para
reu.lizar
código
o
datos)
5
Ges,ón
de
la
memoria:
cues,ones
crí,cas
n Reubicación:
facilitar
que
un
programa
pueda
residir
en
cualquier
zona
de
la
memoria
9sica.
n Fragmentación:
ojo
a
los
huecos
que
van
quedando
a
medida
que
se
asignan
y
liberan
zonas
de
memoria.
n Tiempo
de
acceso:
ojo
al
impacto
de
los
mecanismos
de
ges.ón
en
el
.empo
neto
de
acceso
a
memoria.
6
Ciclo
de
vida
de
un
programa
mistring.o
modulo.o
mistring.o
otros
objetos
y
bibliotecas
libm.soo
pthread.so
libc.so
bibliotecas
dinámicas
programa
fuente
compilador
módulo
objeto
enlazador
compilación
programa
ejecutable
cargador
carga
programa
y
datos
binarios
en
memoria
HARDWARE
ejecución
7
Espacios
de
direcciones
Fichero fuente
(hola.c)
#include<stdio.h>
main()
{
int
cont;
...
cont++
...
}
Fichero ejecutable
(hola)
Memoria lógica del
proceso
Memoria física
cabecera
código
datos
inicializados
código
datos
inicializados
Otros datos
heap
inicializados
Otros datos
Proceso
código
datos
heap
pila
Espacio de direcciones
simbólicas
pila
Espacio de direcciones numéricas
8
Conversión
de
direcciones:
reubicación
n El
compilador
traduce
direcciones
de
memoria
simbólicas
a
direcciones
binarias.
n Si
las
direcciones
binarias
son
absolutas,
el
programa
sólo
se
puede
ejecutar
en
una
zona
fija
de
la
memoria:
no
es
reubicable.
n Esto
es
una
grave
limitación.
9
Conversión
de
direcciones:
reubicación
(2)
n Nos
interesa
que
el
compilador
no
genere
direcciones
defini.vas,
sino
direcciones
provisionales,
reubicables.
Cuando
se
sepa
dónde
van
a
residir
el
código
y
los
datos,
se
conver.rán
a
direcciones
absolutas.
n ¿
En
qué
momento
(etapa)
se
realiza
esta
reubicación
?
q Carga
(enlazador
o
cargador)
à
Reubicación
está.ca
q Ejecución
(hardware)
à
Reubicación
dinámica
10
Reubicación
dinámica:
ejemplo
mínimo
(registro
base)
CPU
dir. lógica
1234
+
80000
registro base
MMU
dir. física
81234
memoria
11
Reubicación
dinámica:
direcciones
lógicas/direcciones
Lsicas
n Dirección
lógica
o
virtual:
la
generada
por
la
CPU.
n Dirección
Lsica:
la
que
llega
al
chip
de
memoria.
n Unidad
de
manejo
de
memoria
(MMU):
el
disposi.vo
que
traduce
direcciones
lógicas
a
9sicas.
12
Enlace
dinámico
/
carga
dinámica
n Postergar
la
carga
en
memoria
de
un
módulo
de
código
hasta
que
se
ejecute
por
primera
vez.
q Windows:
DLL
(dynamic
link
libraries)
q Unix:
shared
libraries
n La
DLL
se
carga
en
memoria
cuando
algún
proceso
llama
a
una
de
sus
ru.nas.
Las
llamadas
a
sus
funciones
se
efectúan
a
través
de
una
tabla
de
punteros.
n Código
compar.do
à
si
varios
procesos
emplean
la
biblioteca
dinámica,
sólo
se
man.ene
una
copia
de
ella
en
memoria.
n El
SO
revisa
las
DLL
que
están
en
memoria
pero
que
nadie
referencia.
13
Intercambio
(swapping)
n Si
un
proceso
lleva
mucho
.empo
bloqueado,
su
espacio
de
memoria
está
desperdiciado.
Idea:
se
vuelca
su
imagen
de
la
memoria
al
disco
(swap
out).
Ese
espacio
queda
disponible
para
otros.
n
n Cuando
se
decide
reanudar
el
proceso,
se
recupera
su
imagen
del
disco
(swap
in).
sistema operativo
memoria
para usuarios
P1
P2
14
Intercambio
(swapping)
(2)
n Historia:
fue
una
forma
de
conseguir
mul.programación
cuando
había
muy
poca
RAM
q Caso
extremo:
sólo
un
proceso
en
memoria;
en
cada
cambio
de
contexto
se
realiza
un
intercambio
con
disco.
n Problema:
.empo
inver.do
en
el
intercambio
n Soluciones:
q Mientras
se
intercambia
un
proceso,
otros
procesos
pueden
seguir
ejecutándose
en
otras
zonas
de
memoria.
q Usar
varias
áreas
de
intercambio
en
diferentes
disposi.vos
9sicos
(se
pueden
hacer
varias
transferencias
simultáneas).
15
Par,ciones
múl,ples
(años
50/60)
n par,ciones
de
tamaño
fijo
(MFT)
–
preestablecidas
en
el
arranque
del
n par,ciones
de
tamaño
variable
(MVT)
–
evolución
del
MFT
-‐
lista
MVT
Memoria física
SO
16
SO
dinámica
de
huecos
libres
MFT
Memoria física
Memoria física
SO
Partición 1
Partición 2
Partición 3
Partición 4
SO
Partición 1
Partición 2
Partición 3
Partición 4
Memoria
con,gua:
protección
n Pareja
de
registros
base
y
límite
CPU
dir. lógica
1234
5000
80000
límite
base
<
sí
+
no
excepción
MMU
dir. física
81234
memoria
17
Memoria
con,gua:
estructuras
de
datos
n Tabla
de
descripción
de
par.ciones
(TDP)
–
indica
qué
proceso
posee
cada
par.ción
n El
S.O.
ges.onará
una
lista
de
huecos
libres
en
memoria
y
seleccionará
qué
procesos
pueden
cargarse
en
memoria
para
ejecutarse
n Primi.vas
internas
de
pedir
y
liberar
memoria
18
Polí,cas
de
asignación
de
memoria
n Disponemos
de
un
conjunto
de
huecos
libres
n Cada
hueco
tendrá
un
tamaño
variable
n ¿Qué
hueco
damos
ante
una
pe.ción?
q Primer
hueco
(first-‐fit)
–
recorremos
la
lista
y
damos
el
primer
hueco
mayor
o
igual
que
lo
solicitado
q Siguiente
hueco
(next-‐fit)
–
igual
que
first-‐fit,
pero
se
busca
a
par.r
de
donde
se
encontró
el
úl.mo
hueco
libre
q Mejor
hueco
(best-‐fit)
–
buscamos
el
hueco
que
deje
menor
resto
libre
n
q Peor
hueco
(worst-‐fit)
–
siempre
usamos
el
hueco
más
grande
las
polí.cas
de
“primer
hueco”
y
“mejor
hueco”
son
similares
en
rendimiento;
y
mejores
que
la
de
“peor
hueco”
y
“siguiente
hueco”
19
Fragmentación
externa
/
compactación
n A
medida
que
se
van
asignando
y
liberando
huecos,
van
quedando
zonas
pequeñas
que
no
sirven
para
nada.
n Posible
solución
à
compactación
n Sólo
es
viable
si
se
usa
reubicación
dinámica
(cambian
los
espacios
9sicos
de
los
procesos)
n La
compactación
puede
consumir
mucho
.empo
n Otra
est
Comentarios de: Sistemas Operativos - Tema 4. Memoria (0)
No hay comentarios