Está en la página 1de 28

Instituto Tecnolgico

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.

Administracin de la memoria en los sistemas


monoprogramados
Tres formas de organizacin de la memoria RAM, con un sistema operativo y un proceso
de usuario. Todo el programa es cargado a memoria para su ejecucin
PC de IBM

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

Administracin de la memoria en los sistemas


multiprogramados

Los problemas que aparecen en los


sistemas multiprogramados y/o
multiusuarios son:
1.

2.

La proteccin de las zonas de


memoria ocupadas por los procesos,
mxime en sistemas multiusuario
donde los procesos pueden
pertenecer a distintos usuarios.

d2

Proceso 2
d3

Proceso 3

Proceso n

d4

El momento de escribir un programa


no se sabe en qu zona de memoria
se ubicar, siendo posible que durante
la vida de un proceso ste cambie
varias veces de lugar.

d1

Proceso 1

3.

Llevar un recuento de las zonas de


memoria ocupadas por los procesos.
Qu proceso ocupa cual espacio?.

Ncleo del S.O


512

dm

Direcciones
de
memoria

Gestin de Memoria

Los requisitos que se intentan satisfacer en la gestin de la


memoria en los sistemas donde se emplea la multiprogramacin
o los sistemas multiusuarios son:
Memoria Virtual

1. Reubicacin.
2. Proteccin.
3. Comparticin.
4. Organizacin lgica.
5. Organizacin fsica.

Proteccin,
organizacin fsica y lgica

Reubicacin
Comparticin

Memoria Principal

Asignacin de memoria contigua

Particiones estticas
Organizacin de la memoria:
Ncleo del
S.O
512

512 k

La memoria se divide en regiones con


lmites fijos, con dos alternativas:
1. particiones igual tamao o
2. particiones de diferentes tamaos.

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

Se pueden tener dos esquemas de


asignacin de memoria en particiones
estticas utilizando colas de procesos:
1. Colas de planificacin para cada
particin.
2. Una cola de planificacin para la
memoria (mayor eficiencia)

576 k
768 k
1M

Asignacin de memoria contigua

Particiones
estticas

Los trabajos se traducan mediante compiladores y ensambladores


absolutos, para ejecutarse en una particin especfica
Proceso
del S.O.
128 K

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

Asignacin de memoria contigua

Particiones
estticas
Sistema
operativo

Procesos
nuevos

Algunas colas estarn


saturadas por procesos que
tienen un tamao similar a la
particin mientras que otras
estarn vacas o semivacas.

Procesos
nuevos

Cuando un proceso se introduce en una particin, lo ms probable es que su tamao


no sea el mismo (es decir, sea algo menor) que el de la particin. Esto origina un
problema de desperdicio de memoria conocido como fragmentacin interna.

Sistema
operativo

Asignacin de memoria contigua

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

Se minimiza la particin interna porque cada proceso es


asignado a la particin ms pequea. Para ello se
supone que se conoce el tamao de la cantidad de
memoria que ocupa un proceso lo cual no siempre es
cierto.

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

Enviado por el BUS


La traduccin de las direcciones virtuales
a reales es implementada por una
Unidad de Manejo de Memoria (MMU).

Asignacin de memoria contigua

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

Pasar temporalmente un proceso para dar


oportunidad a un nuevo proceso para ejecutarse

Memoria
Virtual

Asignacin de memoria contigua

Particiones dinmicas
0
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
1
3
1
4

A
F

El continuo ingreso y salida de los


procesos producen huecos en la memoria
demasiado pequeos para que un proceso
pueda colocarse. A este tipo de
fragmentacin se le conoce como
fragmentacin externa.

B
C

La recuperacin de los huecos de memoria


puede llevarse a cabo por medio de la tcnica
de compactacin donde los espacios disponibles
de memoria son colocados en la parte inferior y
los procesos en la parte superior. Sin embargo,
este proceso es demasiado lento y posiblemente
no justifique el consumo de recursos, debido a
que el sistema debe estar inactivo para poder
realizar la compactacin.

Asignacin de memoria contigua

Particiones dinmicas
A

Estrategias de colocacin
F

Primer ajuste. Primera particin de memoria que


se encuentre libre.

Mejor ajuste. Busca y asigna la particin de


memoria que mejor se ajuste al
tamao del proceso tratando de
dejar libre la menor cantidad de
memoria
Peor ajuste.

Se busca y asigna la particin de


mayor tamao para dejar libre la
mayor cantidad de memoria para
que pueda colocarse otro proceso
en ella.

Administracin de memoria particiones estticas


Cmo se lleva el control de la memoria que se encuentra
disponible y aquella que esta ocupada?
Particin esttica.
Es suficiente con guardar en una tabla la
informacin sobre la particin que est libre o
que est ocupada y qu proceso se encuentra
en ella, as como la direcciones de comienzo y
fin de la particin.

Tabla de administracin de la memoria


No. de
partici
n

Libre/
ocupad
a

Id del
Proceso

Inicio
de la
partici
n

Fin de
la
partici
n

Particin dinmica pueden ser


implementada por
1. Mapa de bits.
2. Listas enlazadas.
3. Sistema de los asociados.

Administracin de memoria particiones dinmicas


Mapas de bits

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

Administracin de memoria particiones dinmicas

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

Soporte del Hardware para la


Direccin
reubicacin.
Relativa o
Acumula
dor

Imagen de un
Proceso en
Memoria
Principal
Bloque de
control de
Proceso
Cdigo

Suma
dor

Datos

Memory Management Unit

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

Los ordenadores modernos normalmente tienen un


tamao de palabra de 16, 32 64 bits.
1

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.

el espacio de memoria consiste


de m marcos de paginas (0,z,2z,
,(m-1)z)(m*z posiciones)

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

Direccin lgica de bits

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

Direccin fsica de 16 bits

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

Un espacio de direcciones lgicas es una


coleccin de segmentos. Cada segmento

Sqrt

tiene un nombre y una longitud.

desplazamiento dentro del segmento. Por

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

lo tanto, el usuario especifica cada


direccin mediante dos cantidades: un

430
0
470
0

Segmento
2

Las direcciones especifican tanto el


nombre del segmento como el

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

proceso y una tabla de segmentos en la


memoria principal. La tabla de segmentos

para un proceso contiene la direccin fsica


s

de comienzo del segmento y la longitud

Limit
e

Base

mxima de ste (como medida de


proteccin, para evitar referencias a
segmentos que no corresponda).

CP
U
<
no
interrupcin

Memori
a

Direccin lgica de 16 bits

En forma anloga a la paginacin, el


proceso de traduccin de direcciones en la
segmentacin, consiste en los siguientes
pasos:
1. Extraer el nmero de segmentos de los n
bits ms significativos de la direccin
lgica.
2. Emplear el nmero de segmentos como
ndice en la tabla de segmentos del
proceso para obtener la direccin fsica
de comienzo del segmento.
3. Comparar el desplazamiento expresado
en los m bits menos significativos de la
direccin lgica con la longitud del
segmento, si es mayor, la direccin no es
vlida.
4. La direccin fsica buscada es la suma
de la direccin fsica del inicio del
segmento ms el desplazamiento.

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

Cuando un proceso se introduce en memoria, se cargan


todos sus segmentos en regiones de memoria libres y se
crea la tabla de segmentos.

Ventajas de la segmentacin
1.Generalmente, el programador no conoce realmente el

tamao que utilizar una estructura de datos, luego si


sta tiene asignado un segmento podr ser expandido
o reducido segn sus necesidades.
2.Los programas pueden ser compilados de manera
independiente aunque sean mdulos de otros
programas.
3.Varios procesos pueden compartir segmentos, por si
desean compartir datos.
4.Se pueden proteger los programas o datos asignando
privilegios de acceso a los segmentos.

Combinacin entre paginacin y segmentacin

Las combinaciones entre paginacin y segmentacin


son las siguientes:
1.Memoria no segmentada y no paginacin: La direccin
virtual es la misma que la direccin fsica.
2.Memoria paginada no segmentada: La memoria es un
espacio de direcciones paginado.
3.Memoria segmentada no paginada: La memoria es un
conjunto de direcciones lgicas.
4.Memoria segmentada paginada: La segmentacin
define particiones lgicas de memoria y la paginacin
gestiona la asignacin de memoria dentro de las
particiones.

También podría gustarte