Vous êtes sur la page 1sur 15

Gestin de Memoria (Manejo de Memoria

Principal y/o Secundaria)


La memoria es un conjunto de registros que sirven para almacenar informacin.
La memoria se puede clasificar segn:
1.
2.
3.
4.
5.
6.

Tecnologa de Manufactura
Ubicacin
Densidad
Mtodo de acceso
Velocidad
Costo

Capacidad vs Costo
La diferencia de estas memorias es el costo de las mismas segn su clasificacin y
velocidad para acceder a los registros, mientras ms veloces sean sern ms costosas y por
consiguiente sern de menor capacidad y mientras ms lentas sean sern de menor costo y
de mayor capacidad.

Memoria real
Memoria real o principal es el espacio donde se ejecutan los programas y procesos de una
computadora y es el espacio real que existe en memoria para que se ejecuten los procesos.
Por lo general el costo de esta memoria es ms alto que el de la memoria secundaria ya que
el acceso a los registros contenidos en ella es ms rpido, solo la memoria Cach es ms
rpida que esta, pero como anteriormente se mencion su costo es ms alto.

Jerarqua de memoria
El almacenamiento secundario es para ofrecer a las aplicaciones la ilusin de tener ms
memoria RAM de la que realmente existe en el sistema.
Ofrece a las aplicaciones la ilusin de que estn solas en el sistema y que pueden usar el
espacio de direcciones completo.

Gestor de Memoria
Los objetivos del Gestor de Memoria son:

Ofrecer a cada proceso un espacio Lgico Propio


Proporcionar proteccin entre los procesos
Permitir que los procesos compartan memoria
Dar soporte a las distintas regiones del proceso

Maximizar el rendimiento del sistema


Proporcionar a los procesos mapas de memoria muy grandes.

Espacio de direcciones Lgico y Fsico


Direcciones Fsicas: Son aquellas que referencias alguna posicin en Memoria Fsica
Direcciones Lgicas: Son las direcciones utilizadas por los procesos y que sufren una serie
de transformaciones, realizadas por el Procesador (La MMU), antes de convertirse en
direcciones fsicas.

Las direcciones lgicas son direcciones generadas por la CPU.

Ejemplo de espacio y direcciones lgico y Fsico

Traduccin de Direcciones

Cuando un proceso es asignado al estado de ejecucin, un registro base (en la CPU)


es cargado con la direccin fsica de inicio del proceso.
Un registro lmite es cargado con la direccin fsica de final.
Cuando una direccin relativa es encontrada es adicionada al registro base y es
comparada con el registro lmite.
Esto provee proteccin de Hardware.
Si est dentro del tamao del proceso de realiza la traduccin en caso contrario se
enva una interrupcin al SO.

Registro base: Establece la direccin fsica donde comienza el espacio de memoria del
proceso.
Registro lmite: Establece la direccin donde termina el espacio de memoria del proceso, en
relacin al registro base.

Ejemplo de Registro base y Registro Lmite:


Traduccin (IdProc, dir_lgica) dir_fsica

Intercambio
Un proceso puede continuamente modificar su estado, lo cual significa que puede pasar de
estar en memoria principal a estar en memoria secundaria y viceversa para continuar as
con su ejecucin a este proceso de retirada e incorporacin se le denomina Retirada o
Swapping.
El objetivo de este denominado Intercambio o Swapping es dar cabida a la ejecucin de
mas proceso de los que puede contener la memoria del sistema por lo cual el Intercambio o
Swapping consiste en: Trasladar el cdigo y los datos de un proceso de la memoria al
sistema de almacenamiento secundario para cargar un proceso previamente almacenado,
esto no permite a un proceso utilizar ms memoria RAM de la que realmente existe en el
sistema.

Ejemplo de Intercambio:

El lugar de almacenamiento temporal suele ser un espacio suficientemente grande como


para acomodar copias de las imgenes de memoria de todos los usuarios.

Las funciones de un intercambio son las siguientes:

Seleccin de los procesos para retirarlos de memoria


Seleccin de procesos para incorporarlos a memoria
Gestin y asignacin del espacio de Intercambio

Reubicacin

Existen dos tipos de reubicacin:


Reubicacin Esttica: es cuando un proceso que ha sido bajado a memoria secundaria al
ser cargado nuevamente ocupar el mismo lugar de memoria principal donde se encontrado
ubicado antes de ser bajado a memoria secundaria, aun cuando el rea de memoria principal
se encuentre ocupado este deber esperar para poderse colocar nuevamente.
Este esquema no ofrece muchas ventajas.

Reubicacin Dinmica: Cuando el proceso de sube a memoria principal puede ser


colocado en cualquier espacio de memoria libre.
En este caso es necesario realizar un reasignacin de direcciones cada vez que el programa
se ejecute. Este esquema resulta costoso por el hardware que se utiliza, as como aumenta el
tiempo de acceso a memoria.

Proteccin
* Para garantizar seguridad, el hardware puede trabajar con un par de registros base/lmite.
Ejemplo diagrama de proteccin:

* Registrar los derechos de acceso en la propia memoria

A cada direccin se le aade un nmero de bits para identificar al propietario


Problema: costoso
Mejora: Asociar estos bits a bloques de memoria fsica
Comprobacin: tiempo de ejecucin
SO => Clave maestra nica que le da acceso sin restricciones a todos los bloques
de memoria

Asignacin Contigua
Cuando hablamos de asignacin contigua significa que cada objeto lgico es colocado en
un conjunto de posiciones de memoria con direcciones estrictamente consecutivas.
Un espacio de memoria se divide generalmente en dos: una parte destinada para el Sistema
Operativo residente y otra destinada a proceso del usuario; tal como se ve en la siguiente
figura:

Ejemplo grfico de Asignacin Contigua:

Existen dos tipos de manejo:

Asignacin con una sola particin.


En este caso, en el espacio correspondiente a los procesos de usuario se carga un solo
proceso a la vez; estos procesos se los conoce como procesos transitorios.
El sistema operativo gasta poco tiempo y esfuerzo en gestionar la memoria de este modo.
Bsicamente el SO necesita llevar la cuenta de las posiciones primera y ltima disponibles
para la asignacin de procesos transitorios.
Cuando un proceso transitorio termina, el SO puede cargar otro para que se ejecute. El SO
debe asegurarse que el tamao de la imagen de procesos a cargar est dentro de los lmites
de la memoria disponible, caso contrario se no se puede cargar el proceso.
El proceso anuncia su terminacin y transfiere el control al SO invocando el servicio
TERMINAR (EXIT) o su equivalente; en cuyo momento puede cargarse otro proceso que
est esperando.
Un monitor monoproceso raramente soporta proteccin entre procesos de usuario, ya que
en cada momento slo permite que haya un nico proceso residente en memoria. Sin
embargo es deseable proteger el cdigo del sistema operativo para que no sea deteriorado
por el proceso transitorio en ejecucin, sino est protegido, el sistema puede caerse
frecuentemente y necesitar ser arrancado de nuevo cuando se ejecutan programas de
usuario sin depurar.
Este tipo de asignacin fue usada en PCs basadas en DOS.

Asignacin con mltiples particiones


La tcnica anterior permita la ejecucin de un solo proceso de usuario a la vez. Sin
embargo, lo que se requiere generalmente es que existan varios procesos en memoria.

Uno de los esquemas consiste en dividir la memoria en varias particiones de tamao fijo,
ubicando un proceso en cada particin.
La divisin puede realizarse de manera esttica y dinmica.

Asignacin de memoria particionada de forma Esttica


Se divide a la memoria principal en un conjunto de regiones no sobrepuestas llamadas
particiones. Las particiones se efectan en algn momento antes de ejecutar los programas
de usuario y desde ah las particiones permanecen fijas.
El nmero de particiones distintas representan un lmite superior al nmero de procesos
activos en el sistema. A este valor se le puede denominar grado de multiprogramacin.
Principios de Operacin:

Cualquier proceso cuyo tamao sea menor o igual que el tamao de una particin
puede ser cargado.
Si todas las particiones estn ocupadas, el Sistema Operativo puede intercambiar un
proceso fuera de una particin

Un programa puede ser demasiado grande para caber en una particin. El programador
debe entonces disear el programa con soporte para overlays (uso de la memoria principal
es ineficiente).
Un programa, cualquiera sea su tamao ocupa una particin entera. Esto es llamado
fragmentacin interna. El esquema de particiones no iguales disminuye el problema pero
no lo elimina.
Tabla de descripcin de particiones
El Sistema Operativo maneja una estructura en la cual se seala que partes de la memoria
estn disponibles y cules ocupadas; sta estructura se conoce como TDP (Tabla de
Descripcin de Particiones).

Ejemplo grfico de tabla de descripcin de particiones:

Las particiones se asignan a procesos nuevos y a procesos que han sido suspendidos y
retirados de memoria y nuevamente estn activos.
Puesto que en algn momento dado existe un conjunto de espacios libres o huecos de
diferentes tamaos dispersos en memoria. De ah surge un problema, como asignar
memoria a un proceso de tamao n a partir de una lista de huecos libres. Esto se puede
resolver a travs de los siguientes algoritmos:

Primer ajuste: asignar el primer hueco que tenga el tamao suficiente.


Mejor ajuste: asignar el hueco ms pequeo que tenga tamao suficiente.
Peor ajuste: asignar el hueco ms grande.

Ejemplo algoritmos de ajuste: A partir del siguiente mapa de memoria, debemos ubicar
el Pn= 70Kb utilizando los tres algoritmos mencionados

Primer Ajuste
Ajuste

Mejor Ajuste

Peor

Existen situaciones que impiden que se pueda asignar memoria a un proceso, las ms
comunes son:
1) Ninguna particin es suficientemente grande para acomodar el nuevo proceso.
2) Todas las particiones estn asignadas.
3) Algunas particiones estn libres, pero ninguna de ellas es lo suficientemente grande
para acomodar el proceso.

Asignacin de memoria particionada de forma Dinmica


El nmero de particiones y su tamao es variable, las cuales son creadas dinmicamente
para que se acomoden a las necesidades de cada proceso solicitante.
Cuando un proceso termine o sea retirado de memoria el gestor de memoria puede devolver
el espacio vacante al fondo de reas de memoria libres a partir del cual se efectan las
asignaciones de particiones.
El gestor de memoria puede continuar creando y asignando particiones a procesos
solicitantes hasta que agote toda la memoria fsica o alcance el mximo grado de
multiprogramacin permitido.
Principios de Operacin:

Cuando se le pide que carge una imagen de proceso, el mdulo de gestin de


memoria del SO intenta crear una particin adecuada para asignar al proceso
solicitante.
Para lo cual se debe localizar un rea libre contigua de memoria que sea igual o
mayor que el tamao del proceso, si se encuentra un rea libre adecuada.
El SO fabrica una particin a partir de ella para conseguir un ajuste exacto a las
necesidades del proceso, el trozo restante de memoria libre, es devuelto al fondo de
la memoria libre para ser usado posteriormente por el mdulo asignacin.
La particin se crea introduciendo su base, tamao y estado (ASIGNADA) en la
TDP.

* Si no es posible asignarle un rea libre adecuada, el SO devuelve una indicacin


de error.

* Cuando un proceso termina o es retirado de memoria, el SO devuelve el espacio


de la particin al fondo de la memoria libre e invalida la entrada correspondiente a
la TDP.

* Cuando una particin es creada se le atribuyen direccin, tamao y base los


cuales permanecen inalterados hasta que exista la particin.

* Las reas libres de memoria se producen al terminar de usar particiones y con los
restos generados por la creacin de particiones.

* Para la creacin y asignacin de particiones el SO debe llevar la cuenta de las


direcciones iniciales y el tamao de cada rea libre de memoria.

A continuacin se citan el proceso de creacin de las particiones:

* El sistema es inicializado declarando como libre toda la memoria disponible para


asignacin dinmica y marcando como no USADA todas las entradas de la TDP.

*La lista de espacio libre contiene una sola entrada: toda la memoria disponible
formando un solo bloque contiguo. Desde ese momento, la creacin de una
particin P de tamao P_TAMAO se efecta as:

Buscar en la lista de memoria libre un rea libre L, tal que L_TAMAO


P_TAMAO, en caso de no encontrar ninguna se termina con un error.

Calcular DIFE=L_TAMAO P_TAMAO. Si DIFE c; donde c es una


constante (pequea), asignar entonces el rea libre entera para crear la particin P
haciendo P_TAMAO= L_TAMAO y P_BASE=L_BASE, ajustando los enlaces
de los bloques adyacentes en la lista de memoria libre.

Si DIFE > c; entonces asignar espacio a la particin P en el bloque L, haciendo


P_BASE= L_BASE, en donde L_BASE= P_BASE + P_TAMAO, y
L_TAMAO= L_TAMAO P_TAMAO.

Encontrar una entrada no utilizada en la TDP y anotar en ella la base (P_BASE) y el


tamao (P_TAMAO). Cambiar el estado a asignada.

Anotar el nmero de entrada en la TDP en el bloque de control del proceso, T, para


el cual se est creando la particin P.

Los Algoritmos ms habituales para la seleccin de un rea libre de memoria en la


creacin de una particin son:
* Primer Ajuste y su variante, siguiente ajuste.
* Mejor Ajuste.
* Peor Ajuste.

Siguiente ajuste
El siguiente ajuste es una modificacin del primer ajuste en donde el puntero a lista de
memoria libre se guarda despus de una asignacin y se utiliza para comenzar a partir de l
bsqueda de la asignacin siguiente; en donde la siguiente bsqueda contina en donde se
qued la ltima, en vez de comenzar siempre desde el principio de la lista de memoria libre.
El primer ajuste y el mejor ajuste se encuentran entre los algoritmos ms populares para
asignacin dinmica de memoria; as el primer ajuste recorre la mitad de la lista de
memoria libre entera siendo ms rpido pero no minimiza la memoria desaprovechada para

una asignacin determinada; en cambio el mejor ajuste es ms lento y tiende a producir


bloques de restos libres pequeos que puedan resultar demasiado pequeos para
asignaciones posteriores.
Las particiones pueden terminarse despus de un intercambio o tras la finalizacin del
proceso R de la siguiente forma:
UPasar el bloque del control de R para localizar la entrada en TDP, TDP[BCP[R]], que
describe la particin P que va a ser anulada.
Si el proceso R va a ser retirado de memoria, copiar su imagen en tiempo de ejecucin
desde la particin P al lugar designado en el archivo de intercambio.
HHacer que el puntero [BCP[R]], a la particin asignada tome el valor de NINGUNA.
DDevolver P a la lista de memoria libre, e integrarla con las reas libres vecinas si es
posible.
IInvalidar la entrada en TDP que describe la particin anulada.
La integracin de reas libres adyacentes cuando se devuelven bloques libres es un mtodo
normalmente utilizado para reducir la fragmentacin, y consecutivamente la cantidad de
memoria desaprovechada.
La compactacin de memoria es utilizada para solucionar la memoria fragmentada, la cual
consiste en reubicar algunas o todas las particiones en un extremo de la memoria y as
combinar los huecos en un rea libre grande. La compactacin puede realizarse siempre que
sea posible o slo cuando sea necesaria.
Existen dos clases de traslados de las particiones: selectivo y global.

Glosario
MMU

La unidad de manejo de memoria (MMU) es parte del procesador. Sus


funciones son:

Convertir las direcciones lgicas emitidas por los procesos en direcciones fsicas.

Comprobar que la conversin se puede realizar. La direccin lgica podra no tener


una direccin fsica asociada. Por ejemplo, la pgina correspondiente a una
direccin se puede haber trasladado a una zona de almacenamiento secundario
temporalmente.

Comprobar que el proceso que intenta acceder a una cierta direccin de memoria
tiene permisos para ello.

La MMU se inicializa para cada proceso del sistema. Esto permite que cada proceso
pueda usar el rango completo de direcciones lgicas (memoria virtual), ya que las
conversiones de estas direcciones sern distintas para cada proceso.

Universidad Mariano Glvez de


Guatemala
Facultad de Ingeniera
Nombre: Josu David Tujal Garca
No. Can: 3090-08-17089

Gestin de Memoria
(Manejo de Memoria Principal y/o Secunaria)

Cuso: Estructura de Datos


Catedrtico: Atilio Maltez

Vous aimerez peut-être aussi