Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Superior
de El Mante
Sistemas Operativos
Unidad III: Administracin de
memoria
ISC. Roberto Rangel Anguiano
Cd. Mante, Tamaulipas
A 30 de
Septiembre de 2013
Memoria
La memoria es un recurso importante
que se debe administrar con cuidado.
La parte del sistema operativo que
administra la jerarqua de memoria
se
denomina
administrador
de
memoria.
Programador
Idealmente,
lo
que
a
todo
programador le gustara es una
memoria infinitamente grande y
rpida que adems no sea voltil, es
decir, que no pierda su contenido
cuando
se
interrumpa
la
alimentacin elctrica.
OxFF
Programa de
usuario
Ncleo en RAM
Ncleo en ROM
OxFF
Sistema
Operativo en
RAM
Sistema
Operativo
Programa de
usuario
OxFF
Programa de
usuario
Programa de
usuario
BIOS
Controladores de
dispositivos en
ROM
Direccin del
registro limite
CPU
Registro
limite
Proteccin de la
Memoria
2.
d2
Proceso 2
d3
Proceso 3
Proceso n
d4
d1
Proceso 1
3.
dm
Direcciones
de
memoria
Gestin de Memoria
1. Reubicacin.
2. Proteccin.
3. Comparticin.
4. Organizacin lgica.
5. Organizacin fsica.
Proteccin,
organizacin fsica y lgica
Reubicacin
Comparticin
Memoria Principal
Particiones estticas
Organizacin de la memoria:
Ncleo del
S.O
512
512 k
512 k
512 k
512 k
512 k
256 K
320 k
512 k
512 k
512 k
Ncleo del
S.O
512
128 k
Asignacin
memoria:
de
procesos
la
576 k
768 k
1M
Particiones
estticas
Sistema
operativo
512
Proceso
A 128 K
Proces
oB
256 K
Proceso
C
640 K
512 k
Listo
s
512 k
512 k
384 k
512 k
512 k
Solicitud
para entrar
al sistemas
Termina
evento
Espera
evento
Listos
Suspendid
os
Interrupcin
de reloj
Interrupcin
de reloj
Bloquead
os
384 k
Memoria
Cuntos procesos
Pueden colocarse en
memoria secundaria?
Ejecuci
n
secundaria
512 k
512 k
256 k
1024 K
Bloqueado
s
Suspendid
os
Una vez introducido un proceso en una particin, permanece en ella hasta su finalizacin aunque se
encuentren libres otras particiones. Esto provoca una prdida de eficiencia
Particiones
estticas
Sistema
operativo
Procesos
nuevos
Procesos
nuevos
Sistema
operativo
Particiones
estticas
Procesos
nuevos
Sistema
operativo
512
128 k
Sistema
operativo
512
128 k
256 K
320 k
256 K
320 k
512 k
512 k
576 k
Procesos
nuevos
576 k
768 k
768 k
1M
1M
Memoria
RAM
Direccin relativa
Direccin real
CPU
Registro Base
(RB) 10000
Acumulador
(A)
100
Ejecucin de
la
instruccin
del proceso
MMU
RB + A
BCP
10000
0
100
Askdlkelirlekrlkerklerlkerlkerlk
ertlkertlertlertjlekrtlekrtlkertl
etjl
Askdlkelirlekrlkerklerlkerlkerlk
ertlkertlertlertjlekrtlekrtlkertl
etjl
Askdlkelirlekrlkerklerlkerlkerlk
ertlkertlertlertjlekrtlekrtlkertl
etjl
Askdlkelirlekrlkerklerlkerlkerlk
ertlkertlertlertjlekrtlekrtlkertl
etjl
10100
PROCESO
Informaci
n sobre
las
direccione
s reales
Pila
Proceso
Askdlkelirlekrlkerklerlkerlkerlk
ertlkertlertlertjlekrtlekrtlkertl
etjl
Askdlkelirlekrlkerklerlkerlkerlk
ertlkertlertlertjlekrtlekrtlkertl
etjl
Askdlkelirlekrlkerklerlkerlkerlk
ertlkertlertlertjlekrtlekrtlkertl
etjl
Askdlkelirlekrlkerklerlkerlkerlk
ertlkertlertlertjlekrtlekrtlkertl
etjl
Program
a
Datos
Particiones dinmicas
0
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
A
No hay espacio
F
B
C
A, F, C o E
Memoria
Virtual
Particiones dinmicas
0
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
A
F
B
C
Particiones dinmicas
A
Estrategias de colocacin
F
Libre/
ocupad
a
Id del
Proceso
Inicio
de la
partici
n
Fin de
la
partici
n
Listas enlazadas
La lista esta compuesta por los siguientes campos:
Bit que representa un proceso o una particin disponible.
Numero de bloque de inicio.
Numero de bloques utilizados.
Puntero al siguiente nodo en la lista.
Se divide la memoria en
bloques de cierto tamao y
se mantiene en memoria una
tabla donde cada bit se
utiliza para identificar un
bloque ocupado (1) o libre
(0).
Si las particiones son muy
pequeas se tendr un mapa
de bits muy grande y
viceversa.
Longitud
Inici
o
P
Ventajas:
La actualizacin de la lista enlazada es directa.
Desventaja:
La bsqueda del un hueco que pueda satisfacer la solicitud de memoria
para un proceso es lento. La solucin puede ser la creacin de dos listas
enlazadas, una para los procesos y otra para los espacios libres. Esto
provoca que se d mantenimiento a dos listas cuando un proceso termina
y cuando se otorga memoria a otro proceso.
A
0
Hueco o
proceso
H 5
B
3
P
1
8
C
6
1
4
2
0
2
6
2
9
P
56
K
Sistemas asociados
Consiste en tener la memoria inicialmente
como un gran espacio libre que se ir
particionando en mltiplos de potencia de 2
cada vez que un proceso haga la solicitud de
memoria.
1 MB
6
4
K
512 KB
256 KB
128 KB
6
4
K
6
4
K
128
K
6
4
K
128
K
6
4
K
6
4
K
6
4
K
128
K
6
4
K
6
4
K
128
K
6
4
K
6
4
K
128
K
6
4
K
128
K
6
4
K
6
4
K
6
4
K
128
K
B
256 K
256 K
256 K
512 K
256 K
512 K
1M
6
4
K
128
K
Imagen de un
Proceso en
Memoria
Principal
Bloque de
control de
Proceso
Cdigo
Suma
dor
Datos
lgica
Regis
tro
Base
Pila
Regis
tro
Lmite
Compara
dor
Interrupcin al Sistema
Operativo
La Unidad Manejadora de Memoria
(MMU) realiza la traduccin de las
direcciones relativas en direcciones
fsicas en la memoria principal.
Direcci
n
Absolut
a, fsica
o real
Para el intercambio de procesos
entre la memoria real y la memoria
virtual se requiere un mecanismo
que reubique los procesos sin perder
las referencias que se hacen dentro
de l. Los programas que emplean
direcciones relativas se cargan
mediante cargadores dinmicos
durante la ejecucin.
Memoria virtual
Paginacin
1.
Cada pgina
consiste en z
palabras
contiguas
Programa
XYZ
Palabra 0
1
1
2.
Un espacio de direcciones N de
un programa consiste de n
pginas (0,1,2,3n-1) (n*z
direcciones virtuales)
Pgina 0
0
0
1
1
1
1
0
0
1
1
1
1
1
1
1
1
1
0
1
1
0
0
1
1
1
2
1
1
1
3
0
0
1
4
1
1
1
5
1
1
1
6
1
1
palabra
Pgina 0
Marco 0
Programa
XYZ
Pgina n-1
Palabra z
Marco n-1
Pgina
Palabra 0
Pgina 1
Palabra z
Palabra 0
Palabra z
Palabra 1
Pgina n-1
Palabra z
La tcnica de paginacin
simple es similar a la
particin esttica.
Las diferencias estn en
que, con paginacin las
particiones son ms
pequeas, un programa
puede ocupar ms de una
particin y stas no tienen
por qu estar contiguas.
Pgina
Memoria
3.
0
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
0
1
2
3
4
5
6
7
8
9
1
0
1
1
2
1
3
1
4
(a) 15 pginas
libres
b) Carga del
proceso A
0
1
2
3
0
1
2
3
Tablas del
pginas del
Proceso A
0
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
A.0
A.1
A.2
A.3
0
1
2
----
A.0
A.1
A.2
A.3
0
1
2
3
4
5
6
7
8
9
1
0
1
1
2
1
3
1
4
B.0
B.1
B.2
c) Carga del
proceso B
Tablas del
pginas del
Proceso B
0
1
2
3
0
1
2
3
4
5
6
7
8
9
1
0
1
1
2
1
3
1
4
A.0
A.1
A.2
A.3
B.0
B.1
B.2
C.0
C.1
C.2
C.3
d) Carga del
proceso C
7
8
9
10
Tablas del
pginas del
Proceso C
A.0
A.1
A.2
A.3
C.0
C.1
C.2
C.3
e) Expulsin del
proceso B
0
1
2
3
4
4
5
6
11
12
Tablas del
pginas del
Proceso D
0
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4
A.0
A.1
A.2
A.3
D.0
D.1
D.2
C.0
C.1
C.2
C.3
D.3
D.4
f) Carga del
proceso D
13
14
Listas de
marcos libres
Una direccin virtual a es equivalente a una direccin dada como una dupla (p, d), en la cual p es
el nmero de la pgina y d el nmero de la palabra dentro de la pgina
Palabra de 16 bits
a =( p , d )
00000101110111
10
Pgina de
1024 bits = 1
K
Palabra 0
Pgina 0
Palabra z
Palabra 0
Marco 0
No. de pgina
de 6 bits
Pgina 1
Desplazamiento de 10 bits
Palabra z
Palabra 0
Palabra z
Palabra 1
Pgina n-1
Palabra z
0 0 0 0 0 1 0 1 1 1 0 1 1 1 1 0
00010
1
00011
1
0
00010
2
1
0
0 0 0 1 1 0 0 1 1 1 0 1 1 1 1 0
Memoria
Asociativa
En la prctica es necesario que la
mayora de los accesos a memoria no
impliquen una consulta a la tabla de
pginas, sino que nicamente requieran
el acceso a la posicin solicitada. Esto
se logra mediante el uso de una
memoria asociativa interna en la MMU
que mantiene informacin sobre las
ltimas pginas accedidas.
Esta memoria asociativa es considerada
memoria cache especial de alta
velocidad.
Pginas
compartida
s
Otra ventaja de la paginacin es la
posibilidad de compartir programas de
uso comn. Esta tcnica resulta
sumamente importante en un entorno de
tiempo compartido. Se pueden compartir
desde editores como compiladores,
ensambladores y sistemas de base de
datos. Para que sean compartibles, el
cdigo debe ser reentrante (no
automodificable), es decir, el cdigo es
slo de bsqueda o slo lectura.
Proce
soP1
ed1
ed1
ed1
Datos
1
Proce
soP2
ed1
Tabla de
Pginas
P1
ed1
ed1
Datos
1
Proce
soP3
ed1
ed1
ed1
Datos
1
Tabla de
Pginas
P2
0
1
2
3
ed1
ed2
5
6
ed3
Datos
2
8
9
Tabla de
Pginas
P3
Datos
1
Datos
3
1
0
Memoria virtual
Segmentacin
pila
subrutin
a
Segmento
3
Tabla de
smbolos
La segmentacin es un esquema de
administracin de la memoria que soporta
la visin que el usuario tiene de la misma.
Segmento
0
Segmento
4
Sqrt
nombre de segmento y un
desplazamiento.
Segmento
0
320
0
Segmento
3
Segmento
1
Segmento
2
Segmento
4
0
1
Lmit
e
1000
400
1400
6300
400
4300
3
4
1100
1000
3200
4700
430
0
470
0
Segmento
2
Programa
principal
140
0
240
Base
Tabla de
segmentos
570
0
630
0
670
0
Segmento
1
Memoria virtual
Segmentacin
La segmentacin simple siempre hace uso
de una tabla de segmentos para cada
Tabla de
segmentos
Limit
e
Base
CP
U
<
no
interrupcin
Memori
a
No. de
pgina
de 4 bits
Desplazamiento de 12 bits
0 0 0 1 0 0 1 0 1 1 1 1 0 0 0 0
0
1
0010111011
10
0111100111
10
0000010000000
000
0010000000100
000
Longitud
Base
Tabla de segmentos del proceso
0 0 1 0 0 0 1 1 0 0 0 1 0 0 0 0
Ventajas de la segmentacin
1.Generalmente, el programador no conoce realmente el