Está en la página 1de 27

Universidad Nacional del Centro del Per

Ingeniera de Sistemas

SISTEMAS OPERATIVOS
Gestin de Memoria

Ing. Jaime Suasnbar Terrel

Almacenamiento

Gestin del

Silberchatz

Gestin de la
Memoria
Gestin de la
Memoria Virtual
Gestin del sistema
de archivos

Temas:
Introduccin
Memoria
Objetivos
Organizacin fsica de la memoria.
Organizacin Lgica de la Memoria.
Procesos y la memoria.
Memoria virtual.

El Administrador de Memoria
Requisitos del administrador de memoria.
Tcnicas de Administracin de Memoria
Particionamiento
Paginacin y Segmentacin Simple

Introduccin
Memoria
Es un dispositivo electrnico con capacidad de almacenamiento.

Introduccin
Memoria
Cada vez, ms memoria, ms barata y ocupa menos:
1982
16KB
50.00 $.
1985
1MB
50.00 $.
PC
1991
8MB
60.00 $.
128MB
1998
64MB
80.00 $.
512MB
2002
256MB
70.00 $.
1GB
2005
512MB
69.50 $.
4GB
Sin embargo,

SIEMPRE AMPLIANDO !

PseudoPC
Victory (Unix)
10.90 $.
15.70 $.
30.90 $.
80.90 $.
Ley de Parkinson

512K, 640K, 1M, 4M, 8M, 16M, 32M, 64M, 128M, 512M, 1G, 4G
MSDOS
Windows XP?

Win95
70MB

WinNT Win00/03/Vista
/7
120MB
???MB

Introduccin
Objetivos
Memoria: Recurso escaso y compartido (Multiprogramacin)
Poca memoria para los muchos procesos que quieren ejecutarse
P1
P2

P4
Memoria
Principal

P5
P6

P3
Gestin eficiente
OBJETIVOS
Proteger
Compartir
Organizacin eficiente
Reubicacin de procesos

Cach
Principal
Secundaria

lineal

segmentada

Introduccin (Proceso en memoria?)


Program principal;
var
Vector1: array [0..$FFF] of byte := (23,43,,53);
Vector2: array [0..$4FF] of byte;
begin
...
if Vector1[0] = Vector2[0]
then Subrutina;
Programa
...
Objeto n
end.
$5000
$5030
$5036
$503A
$503E
$5200
$9000
$A000

cmp $9000,$A000
bnz $503E
bsr $5200

(codigo de subrutina)

(valores de vector1)

(valores de vector2)

Programa
Fuente 1
Compilador
Programa
Objeto 2

Programa
Objeto 1

Enlazador

archivo
Ejecutable
Cargador

Cdigo mquina

Memoria

Proceso

Organizacin Fsica de la Memoria

Registros de la CPU
Cache
Nivel 1
Nivel 2
RAM
Memoria Fsica
Memoria Virtual
Hard Disk
Drive
Flash Memory

Almacenamiento
Temporal o
de acceso aleatorio

Almacenamiento
Permanente

Direcciones Virtuales y Fsicas


Direcciones virtuales o lgicas
Un programa maquina es un
conjunto ordenado de
instrucciones en cdigo mquina,
que encajaran en n palabras de
memoria, pudiendo numerarse
correlativamente del 0 a la n-1.

Direcciones Fsicas
Son las direcciones reales de la MP
donde se cargan el programa

Direccin Base
Los programas se cargan en la MP a
partir de una determinada posicin
de memoria.

Se puede transformar fcilmente


una direccin virtual a fsica:
Df=DB+dv
Para todo 0<dv<n-1

Transformaciones de direcciones virtuales a


fsicas
Se realiza con ayuda de
un registro base (que se
carga previamente con la
direccin base) que se
encuentra en el
procesador en un circuito
MMU Unidad de Gestin
de Memoria.
Antiguamente haba que
hacerlo por software
pero los procesadores lo
hacen fsicamente.

Tipos de Gestin de Memoria


Monoprogramacin
Cada programa se ejecuta de manera independiente

Multiprogramacin
Particiones estticas
Particiones dinmicas
Segmentacin
Paginacin
Memoria Virtual

Particiones Estticas
La memoria se divide en cierto nmero de
particiones o zonas, cada una de las cuales
contendr un proceso.
La direccin base de cada proceso es la direccin
de inicio de cada particin.
El tamao de las particiones (que puede ser no
uniforme) es un parmetro del SO
Ejemplo: memoria de 2MB con particiones de 256KB

El SO mantiene una tabla de particiones


(procesos) en la que cada fila corresponde a una
particin, conteniendo informacin como:
Id Proceso, si esta libre o no, estado, direccin del
BCP

Para transformar las direcciones virtuales a fsicas


en cada acceso de memoria la MMU consulta la
tabla de particiones para saber la particin en
que se encuentra el proceso y calcular su
direccin base.

Particiones Dinmicas
Los programas son introducidos
por el SO inicialmente en
posiciones consecutivas de
memoria, no existiendo por
tanto particiones predefinidas.

Particiones Dinmicas
Gestin
Tabla de procesos, cada lnea
contiene id proceso, DB, cap que
ocupa, estado, direccin de su BCP,
etc.
Tabla de fragmentos libres
El planificador de trabajos,
consultando esta tabla, introduce a
la MP los programas que quepan en
los fragmentos libres; y actualiza las
dos tablas.

Para transformar las direcciones


virtuales a fsicas en cada
acceso de memoria, la MMU
consulta la tabla de procesos
para obtener la direccin base.

Reubicacin de procesos
Cuando acaba un proceso deja un fragmento libre que solo puede
ser ocupado por otro de igual o menor capacidad. Al ir acabando
de ejecutarse los programas. El Nro de fragmentos libres crecer,
llegando en que el porcentaje de memoria aprovechado es muy
reducido.

El problema se
resuelve haciendo una
compactacin que
agrupa todos los
fragmentos,
reubicando los
programas en
ejecucin.

Segmentacin
La memoria se aprovecha mejor cuanto ms pequeos fuesen los
procesos o hebras o unidades a almacenar en ella.
Un proceso est compuesto por unidades que denominamos
segmentos:
Segmentos de cdigo (programa y sub programas en leng maquina)
Segmentos de pila
Segmentos de datos (conjunto de datos, vectores etc.)

La gestin de memoria con segmentacin consisten en considerar


como unidades de almacenamiento segmentos, en lugar de procesos o
hebras.
La segmentacin permite que ciertos procesos pueda compartir cdigo
(rutinas) o datos comunes sin necesidad de estar duplicados en MP
(segmentos reentrantes).

Gestin de la segmentacin
La gestin la realiza el SO, como son las particiones dinmicas, solo que cada
particin en vez de corresponder a un programa completo, corresponde a un
segmento.
El SO mantiene, por cada proceso, una tabla de segmentos donde especifica su
capacidad y la direccin base de cada segmento.
En la tabla de procesos hay un
campo que indica la posicin de
memoria donde se encuentra su
tabla de segmentos.

Para transformar las direcciones


virtuales a fsicas en cada acceso
de memoria la MMU consulta la
tabla de segmentos para ver si la
direccin sobrepasa el lmite y para
obtener la direccin base
correspondiente.

Paginacin
Los programas se consideran divididos en
zonas consecutivas (pginas).
Cada pgina es de tamao fijo, preestablecido
como parmetro del SO (512b a 64kb por lo
general)
Se identifican dentro del programa, con

La MP se estructura en marcos de pgina de


igual capacidad que las pginas del
programa.
Cada marco se identifica con un nmero
correlativo
Si el tamao de la MP fuese 1MB, y el tamao de
marco 4kb, habra 256 marcos de pgina (del 00 al
FF).

Gestin de la paginacin
El fundamento de la paginacin
est en que no es necesario que el
programa completo se almacene
en posiciones consecutivas de
memoria.
Las pginas se almacenan en
marcos de pginas libres,
independientemente de que
estn o no contiguos.

El SO mantiene por cada


proceso una tabla de pginas
que indican el marco de pagina
donde se encuentra cada
pgina del proceso.

Direcciones virtuales y fsicas en paginacin


Recordemos que una cifra HEX corresponde a 4 bits. Con h cifras se direccionan
m=24*h palabras.
Programas direcciones virtuales
Si una direccin virtual tiene nv bits, el programa puede tener una capacidad mxima de
Cpx=2nv
Una direccin virtual puede considerarse formada por el nmero de pgina (ndp bits mas
significativos) y un desplazamiento dentro de la pgina (nbd bits menos significativos). Se
verifica:
Nv=nbp+nbd
N mximo de pginas que puede tener el programa Npx=2nbp
Capacidad de la pgina Cpag=2nbd palabras

Memoria principaldirecciones fsicas.


Si una direccin fsica tiene nf bits, la capacidad mxima posible de la memoria ser Cmpx=2nf
Una direccin fsica puede considerarse formada por marco de pgina (nbm bits ms
significativos) y un desplazamiento en el marco de pgina (nbd bits menos significativos). Se
verifica que:
Nf=nbm+nbd
N mximo de pginas que puede tener el programa Nmpx=2nbm
Capacidad de la pgina Cpag=2nbd palabras

Obtencin de la direccin fsica a partir de la


direccin virtual
Las posiciones relativas (desplazamientos)
dentro de cada una de las pginas se
mantienen al pasarlas a memoria principal.
En consecuencia para pasar una direccin
virtual a fsica basta con cambiar el cdigo de la
pgina por el cdigo del marco de pgina.
Para hacer este cambio la MMU consulta la
tabla de pginas, donde vienen las
correspondencias.

En definitiva, para obtener la direccin fsica


es suficiente con concatenar el cdigo del
marco de pgina con el desplazamiento.
Recuerde que en el caso de particiones y
segmentacin haba que realizar una suma;
ahora slo hay que concatenar, lo cual es mucho
mas rpido y fcil que una suma.

Obtencin de la direccin fsica a partir de la


direccin virtual
Las posiciones relativas (desplazamientos)
dentro de cada una de las pginas se
mantienen al pasarlas a memoria principal.
En consecuencia para pasar una direccin
virtual a fsica basta con cambiar el cdigo de la
pgina por el cdigo del marco de pgina.
Para hacer este cambio la MMU consulta la
tabla de pginas, donde vienen las
correspondencias.

En definitiva, para obtener la direccin fsica


es suficiente con concatenar el cdigo del
marco de pgina con el desplazamiento.
Recuerde que en el caso de particiones y
segmentacin haba que realizar una suma;
ahora slo hay que concatener, lo cual es
mucho mas rpido y fcil que una suma.

Ejercicio
Considere un sistema de gestin de memoria esttica. El sistema
operativo ocupa la primera posicin que tiene un tamao de 10k;
el resto de la memoria esta dividido en particiones cuyas
caractersticas se muestran en la tabla A. el algoritmo de
ubicacin asigna a cada proceso la particin ms pequea que
quepa. En la tabla B se puede observar la cantidad de memoria
que requiere cada proceso. Realice la distribucin grficamente y
hallar el total de fragmentacin interna.
Tabla A
Tabla B

Ejercicio
Nuestro sistema operativo sigue un esquema con particiones
dinmicas. La memoria tiene un tamao de 64k de los cuales 10k
estn siendo ocupados por el sistema operativo. Al sistema llegan
cinco proceso cuayos tamaos se encuentran en la tabla A. Se
pide representar grficamente la asignacin de los procesos en
memoria.
Proceso

Tamao

Llegada

Duracin

8K

14K

18K

6K

14K

Ejercicio
Estamos trabajando con un sistema operativo que emplea una
gestin de memoria paginada. Cada pagina tiene un tamao de
2048 posiciones (o bytes). La memoria fsica disponible para los
procesos es de 8Mb. Primero llega un proceso que necesita
31566 posiciones de memoria cuando se carga en memoria y
despus llega otro proceso que consume 18432 posiciones
cuando se carga en memoria. Hallar la fragmentacin interna por
cada proceso y el total.

BIBLIOGRAFIA
Sistemas Operativos, 2da Edicin (1997) William Stallings,
Prentice Hall
Espaa
Sistemas Operativos, conceptos fundamentales , 3ra. Edicin
(1994) A. Silberschatz, J. Peterson, P. Galvin, Addison-Wesley
Publishing Company USA
Sistemas Operativos, 2da Edicin (1993), H. M. Deitel, AddisonWesley Publishing Company
USA

Fin
Ing. Jaime Suasnabar Terrel

También podría gustarte