Sei sulla pagina 1di 43

GESTION DE MEMORIA

GESTION DE MEMORIA
La Gestin de Memoria es una
tarea realizada por el Sistema
Operativo de un computador que
consiste en cargar y descargar
procesos en memoria principal para
que sean ejecutados. Para ello el
S.O. gestiona lo que se conoce como
MMU o Unidad de Administracin de
Memoria, el cual es un dispositivo
hardware
que
transforma
las
direcciones lgicas en fsicas.

OBJETIVOS DE LA GESTION DE
MEMORIA
Ofrece a cada proceso un espacio lgico
propio.
Proporcionar proteccin entre los procesos
Permitir que los procesos compartan memoria

Maximizar el rendimiento del sistema

REQUISITOS DE LA GESTION DE
MEMORIA
En
En ciertas
ocasiones, bajo
la supervisin y
el control del
sistema
operativo,
pueden ser
provechosos
que los
procesos
puedan
compartir
memoria.

Comparticin

Es un sistema
con
multiprogramaci
n es necesario
proteger al
sistema
operativo y a los
otros procesos
de posibles
accesos que se
puedan realizar
a sus espacios
de direcciones.

Proteccin

Reubicacin

En un sistema
multiprogramad
o la memoria se
encuentra
compartida por
varios
procesos, por lo
tanto, los
procesos deben
ser cargados y
descargados de
memoria.

REQUISITOS DE LA GESTION DE
MEMORIA
Debe ser parte de la
gestin de memoria, la
organizacin del flujo
de informacin entre la
memoria principal y la
memoria secundaria.

Organizacin fsica

Organizacin lgica

Tanto la memoria
principal como la
secundaria presentan
una organizacin fsica
similar, como un
espacio de direcciones
lineal y unidimensional.
Debe existir una cierta
correspondencia entre
el S.O. y el hardware
al tratar los datos y los
programas de los
usuarios de acuerdo a
la estructura lgica que
ellos presenten.

TECNICAS DE GESTION DE MEMORIA

1. Paginacin
2. Segmentacin
3. Asignacin Estticas / Dinmicas
4. Memoria Virtual
5. Direccionamiento de Memorias

PAGINACIN
Consiste que la memoria principal se divida en un conjunto de
marcos de igual tamao. Cada proceso se divide en pginas de igual
tamao que los marcos. Un proceso se carga situando todas sus
pginas en marcos libres pero no necesariamente contiguos.

PAGINACIN
- La memoria fsica se
divide en bloques de
amao fijo que llamamos
marcos.
- La memoria virtual se
divide en bloques del mismo
tamao llamados pginas.
- Los programas se
dividen en pginas.
- Al ejecutar un proceso
se cargan sus pginas en
los marcos.

PAGINACIN
Tablas de pginas
-Son tablas que contienen (para cada proceso) el nmero marco que
corresponde a cada pgina virtual del proceso .
- Estructura de una entrada de la Tabla de Pginas:

PAGINACIN
Tablas de pginas
-Tamao de pgina viene definido por el Hardware y suele ser una potencia de 2
que vara entre 512 y 16M .
- Ej. simplificado: Direccionamiento de un espacio virtual de 64K, distribuido en
16 pginas de 4K:

PAGINACIN
Cada entrada de la tabla de pginas, adems del nmero de marco que
corresponde con esa pgina, contiene informacin adicional como la
siguiente:
- Informacin de proteccin:
Es un conjunto de bits que especifican
que tipo de accesos estn
permitidos. Tpicamente, se controla
el acceso de lectura, de ejecucin
y de escritura.
- Indicacin de pgina vlida:
Es un bit que especifica si esa pgina
es vlida, en el caso de que no
lo sea, la informacin del nmero
de marco es irrelevante.

PAGINACIN
En la entrada de la tabla de pginas puede haber informacin adicional, tal como
la siguiente:
- Indicacin de pgina accedida.
La MMU (Memory Management Unit o unidad de gestin de memoria) activa
este bit indicando cuando se accede a una direccin lgica que pertenece a esa
pgina.
- Indicacin de pgina modificada.
La MMU activa este bit indicando cuando se escribe en una direccin lgica que
pertenece a esa pgina.
- Desactivacin de cache.
Este bit indica que no debe usarse, la cache de la memoria principal para
acelerar el acceso a las direcciones de esta pgina.

Paginacin

Ventaja / Desventaja

No tiene fragmentacin
externa

Hay una pequea


cantidad de
fragmentacin interna

SEGMENTACIN
Es un esquema de manejo de memoria mediante el cual
la estructura del programa refleja su divisin lgica;
llevndose a cabo una agrupacin lgica de la informacin
en bloques de tamao variable denominados segmentos.

CARACTERISTICAS
- Los bloques de un proceso (cdigo, datos, pila, DLLs, etc.) pueden estar
situados en reas de memoria no contiguas.
- Suministra reubicacin dinmica.
- Proteccin y uso compartido.
- Cada segmento empieza en una direccin virtual fija (reubicacin).
- Las direcciones en estos sistemas tienen dos componentes: nmero de
segmento y offset.
- Los segmentos pueden tener tamaos diferentes.En el 80x86: mov eax,
ds:esi.
- Para localizar el dato: selector DS y desplazamiento SI

OBJETIVOS
Enlace dinmico
entre
segmentos

Modularidad de
programas

Objetivos Alcanzados
con la segmentacin

Estructuras de
datos de largo
variable

Comparticin

Proteccin

COMPARTICIN DE SEGMENTOS
Una de las ventajas de la segmentacin sobre la paginacin es que se trata
ms de un hecho lgico que fsico.
En un sistema de segmentacin, una vez que un segmento ha sido declarado
como compartido, entonces las estructuras que lo integran pueden cambiar de
tamao.
Lo anterior no cambia el hecho lgico de que residen en un segmento
compartido.
Dos procesos pueden compartir un segmento con solo tener entradas en sus
tablas generales que apunten al mismo segmento del almacenamiento primario.

BLOQUES
- No necesitan ser de igual tamao.
- Los bloques separados no necesitan
ser adyacentes.
-

Deben

estar

compuestos

de

posiciones contiguas de almacenamiento.

Sin embargo se complica la proteccin


de bloques de memoria de un proceso de
usuario.
Es ms difcil limitar el rango de acceso
de cualquier programa.

VENTAJAS
Compila mdulos
separados.
Comparte los
segmentos.

Conoce las
unidades lgicas

Modificacin de
los cambios dentro
de un modulo

Los segmentos
crecen
dinmicamente

Define
segmentos que
aun no existan

DESVENTAJAS
- Hay un incremento en los costos de hardware y de software para llevar a
cabo la implantacin, as como un mayor consumo de recursos: memoria, tiempo
de CPU, etc.
- Debido a que los segmentos tienen un tamao variable se pueden presentar
problemas de fragmentacin externas, lo que puede ameritar un plan de
reubicacin de segmentos en memoria principal.
- Se complica el manejo de memoria virtual, ya que los discos almacenan la
informacin en bloques de tamaos fijos, mientras los segmentos son de tamao
variable. Esto hace necesaria la existencia de mecanismos ms costosos que los
existentes para paginacin.

DESVENTAJAS
- Permite que los segmentos varen de tamao, puede ser necesarios
planes de reubicacin a nivel de los discos, si los segmentos son devueltos a
dicho dispositivo; lo que conlleva a nuevos costos.
- No se puede garantizar, que al salir un segmento de la memoria, este
pueda ser trado fcilmente de nuevo, ya que ser necesario encontrar
nuevamente un rea de memoria libre ajustada a su tamao.
- La comparticin de segmentos permite ahorrar memoria, pero requiere de
mecanismos adicionales de hardware y software.
Estas desventajas bien pueden ser minimizadas por la SegmentacinPaginada, sin embargo esta tambin tiene desventajas y ventajas.

ASIGNACIONES ESTTICAS
Se basa en una gran reserva de memoria donde se van asignando los
elementos del programa de forma contigua; a diferencia de la asignacin
esttica, se encuentra la asignacin dinmica asigna una direccin base a
cada elemento a partir de la cual se va configurando la estructura de
datos. Y la tercera tenemos la asignacin mixta la cual es una combinacin
de las dos anteriores para aprovechar sus ventajas realizando una
asignacin esttica-dinmica.

ASIGNACIONES ESTTICAS

Ejemplo de una particin esttica en una memoria de 64 MB

ASIGNACIN DE MEMORIA EN
PARTICIN ESTTICA

ASIGNACIONES ESTTICAS
Descripcin
La memoria
principal se
divide en un
conjunto de
particiones
estticas,
durante la
generacin del
sistema.
Un proceso se
puede cargar en
una particin de
igual o mayor
tamao.

Ventajas
Sencilla de
implementar,
poca
sobrecarga del
sistema
operativo.

Desventajas
Empleo
ineficiente de la
memoria debido
a la
fragmentacin
interna.
El nmero de
procesos
activos es fijo.

Asignaciones Dinmicas
Es una asignacin a una direccin base de cada elemento a partir
de la cual se va configurando la estructura de datos; a diferencia de la
asignacin dinmica, se encuentra la asignacin esttica, la cual se
basa en una gran reserva de memoria donde se van asignando los
elementos del programa de forma contigua. Luego tenemos la
asignacin mixta la cual es una combinacin de las dos anteriores para
aprovechar sus ventajas realizando una asignacin esttica-dinmica.

EFECTOS DE LAS ASIGNACIONES


DINMICAS

Asignacin de memoria con particiones


dinmicas
Consiste en determinar en qu hueco ubicar un nuevo proceso. Para esto
existen tres algoritmos: mejor ajuste, primer ajuste o prximo ajuste.
- Mejor ajuste: consiste en ubicar el proceso en el espacio de memoria que
ms se ajuste a su tamao.
- Primer ajuste: consiste en ubicar el proceso en el primer hueco disponible,
recorriendo desde el inicio de la memoria, cuyo tamao sea suficiente para el
proceso.
- Prximo ajuste: consiste en ubicar el siguiente hueco disponible, que sea
suficientemente grande, a partir de la ltima asignacin de memoria.

Asignaciones Dinmicas

No hay
fragmentacin
interna.
Uso ms
eficiente de la
memoria
principal.

De
sve
nta
jas

Ve
nta
jas

Las particiones
se crean
dinmicamente,
de forma que
cada proceso se
carga en una
particin de su
mismo tamao.

Uso ineficiente
del procesador
debido a la
compactacin
para
contrarrestar la
fragmentacin
externa.

De
scr
ipc
in

MEMORIA VIRTUAL
Es una tcnica para proporcionar la simulacin de un espacio de
memoria mucho mayor que la memoria fsica de una mquina. Esta
"ilusin" permite que los programas se hagan sin tener en cuenta el
tamao exacto de la memoria fsica.
El espacio de direcciones virtual, est mapeado de tal forma que
una pequea parte de l, est en memoria real y el resto
almacenado en el disco.

DESCRIPCIN
- Se refiere a la capacidad de obtener acceso a direcciones
de un espacio de memoria mucho mayor que el que dispone la
memoria principal.
- Los mtodos ms comunes para implementar la memoria
virtual son la paginacin y la segmentacin.
- En un sistema de memoria virtual las direcciones generadas
por los programas en ejecucin (direcciones virtuales) no son
necesariamente

las

(direcciones reales).

disponibles

en

la

memoria

principal

DESCRIPCIN
- Los procesos hacen referencia a direcciones virtuales, estos
se deben ejecutar en la memoria real.
- Es preciso establecer una correspondencia entre las
direcciones virtuales y las reales durante la ejecucin de un
proceso. Tal correspondencia se realiza mediante mecanismos de
traduccin dinmica de direcciones.
- Las direcciones contiguas en la memoria virtual de un
proceso, no son necesariamente contiguas en la memoria real.

NIVELES DE ALMACENAMIENTO
Un espacio de direcciones virtuales es mayor que el espacio de
direcciones reales.

UNIDADES DE MEDIDA DE MEMORIA


1 Byte = 8 bits
1 K = 1024 Bytes
1 Mega = 1024 Kbytes
1 Giga = 1024 MBytes
1 Tera = 1024 GBytes
1 Peta = 1024 TBytes

CORRESPONDENCIA DE BLOQUES
- Los mecanismos de traduccin dinmica de direcciones deben
mantener mapas de correspondencias de traduccin de direcciones.
- Las correspondencias se establecen a nivel de bloques de igual
tamao o de diferente tamao.
- Las direcciones son bidimensionales.
- Cada proceso tiene su propia tabla de correspondencias de
bloques.

ESTUDIO DE LA MEMORIA VIRTUAL


Posicin de memoria: Unidad elemental de almacenamiento
de una memoria. En un microcomputador cada posicin de
memoria almacena 8 bits (1 Byte), cuya combinacin codifica el
dato que almacena (generalmente 1 carcter).
Direccin de memoria: Nombre o referencia que tiene cada
Posicin de memoria.

VENTAJAS
- Los programas se pueden ejecutar por partes, la memoria
lgica puede ser mayor que la real disponible.
- Puesto que cada programa ocupa menos memoria real, se
puede elevar el ndice de multiprogramacin y, por tanto, la
eficiencia del sistema.
- Al cargar menos cantidad de cada programa se necesitan
menos operaciones de entrada y salida para las operaciones de
carga e intercambio de los mismos.

VENTAJAS
- Permite gestionar ms eficientemente la memoria fsica.
Cualquier espacio libre, incluso una nica pgina, puede ser
aprovechado para cargar un nuevo programa y comenzar a
ejecutarlo. Por otra parte, si una pgina de un programa no hace
referencia durante la ejecucin, no habr que cargarla.
- La independencia de los programas con respecto a la
mquina es completa. Adems del direccionamiento virtual que
aporta la paginacin, la cantidad de memoria fsica disponible
para ejecutar el programa slo es relevante para la velocidad de
ejecucin del programa.

Direccionamiento de
MemoriaEs un identificador

nico

para

una

ubicacin de la memoria con las cuales un CPU


u otros dispositivos puede almacenar, modificar
o recuperar datos de la misma.
Tanto la memoria fsica como la memoria
virtual emplean direccionamiento o direcciones de
memoria para acceder a sus datos. En la memoria
fsica, la direccin accede a la memoria RAM real
(los chips RAM incorporados a la placa madre), y la
direccin de memoria virtual hace referencia a un
espacio del disco duro que simula memoria RAM (el
archivo de paginacin).

Modos de direccionamiento

Directo

Indirecto

Relativo

Indexado

Registro
Indirecto

Inmediato

Inherente

Direccionamiento
Directo

La instruccin contiene la
direccin de la posicin de

La direccin contiene no la
direccin donde se encuentra el

memoria donde se encuentra el


operando

operando, sino la direccin donde


se encuentra la direccin del
operando.

Direccionamiento
Indirecto

Direccionamiento
Relativo Es la parte
contiene
direccin

el

direccin de la instruccin

nmero

del

N.

En

operando

memoria

se

la

encuentra

sumando el numero N al nmero del contador


del programa.

Direccionamiento
Indexado

Es la parte direccin de la instruccin contiene un nmero N que puede

ser positivo o negativo. Sin embargo para utilizar el direccionamiento


indexado, el computador debe estar equipado con un registro especial
empleado

para

permitir

direccionamiento

indexado,

denominado

naturalmente registro ndice. La posicin de memoria donde se localiza el


operando se encuentra mediante la suma I + N.

Registro Indirecto
Este registro contiene la direccin de memoria del
operando. Una instruccin que invoque realmente
direccionamiento de registro indirecto, no tiene bits
significativos en su parte direccin. En lugar de ello,
la instruccin completa se incluye en los bits
asignados a la parte de operacin de la instruccin.

Direccionamiento
Inmediato

Es la parte de direccin de la

instruccin, contiene no la direccin


del

operando

operando.

sino

el

mismo

Direccionamiento Es una direccin que es parte de


Inherente
una instruccin se refiere a una
posicin de memoria. Cuando una
instruccin indica una fuente o un
destino de datos y no se direcciona
especficamente,

ya

no

se

hace

referencia a la posicin de memoria,


se dice que la instruccin tiene una
direccin inherente.

Potrebbero piacerti anche