Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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.
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
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
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
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.
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.
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.
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
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
Direccionamiento
Indirecto
Direccionamiento
Relativo Es la parte
contiene
direccin
el
direccin de la instruccin
nmero
del
N.
En
operando
memoria
se
la
encuentra
Direccionamiento
Indexado
para
permitir
direccionamiento
indexado,
denominado
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
operando
operando.
sino
el
mismo
ya
no
se
hace