Está en la página 1de 5

Unidad 3.

ADMINISTRACION DE MEMORIA

Administración de la Memoria

La parte del sistema operativo que administra la memoria se llama administrador de la memoria. Para
ello existen diferentes esquemas de administración de memoria desde los más simples hasta los más
elaborados entre los cuales se ubican:

· Administración de la memoria sin intercambio o paginación.

Los sistemas de administración de memoria se pueden clasificar en dos tipos. Los que desplazan los
procesos de la memoria principal al disco y viceversa durante la ejecución (intercambio y paginación) y
aquellos que no.

· Monopogramación sin intercambio o paginación.

Es en forma secuencial pues solo se tiene un objeto en memoria en cada instante, el usuario carga toda
la memoria con un programa, esto implica que cada proceso debe contener controladores de dispositivo
para cada uno de los dispositivos E/S que utilice.

· Multiprogramación y uso de la memoria.

La multiprogramación facilita la programación de una aplicación al dividirla en dos o más procesos. La


mayoría de los procesos tardan cierto tiempo en la espera de datos de dispositivos E/S.

· Multiprogramación con particiones fijas.

El objetivo en todo esto es tener más de un proceso en memoria a la vez, solución posible sería dividir la
memoria en n partes al inicio de una sesión de uso de la máquina, pero aún así se obtiene el desperdicio
de particiones grandes con una tarea pequeña, la respuesta puede ser tener particiones pequeñas
también. Las tareas que van llegando se forman hasta que una partición adecuada está disponible, en
cuyo momento la tarea se carga en esa partición y se ejecuta hasta terminar.

· Intercambio

En un sistema por lotes la organización de la memoria en particiones fijas es adecuado pero en un


ambiente multiusuario la situación es distinta con el tiempo compartido, ya que existen más usuarios de
los que puede albergar la memoria, por lo que es conveniente albergar el exceso de los procesos en
disco., por supuesto para ser ejecutados estos procesos deben ser trasladados a la memoria principal. Al
traslado de procesos de disco a memoria y viceversa se le llama intercambio.

· Multiprogramación con particiones variables.

Mediante un algoritmo de administración de memoria las particiones variables varían de forma


dinámica durante el uso de la máquina, evitando desperdicio de memoria
3.1 POLITICA Y FILOSOFIA

Filosofía:

La memoria principal puede ser considerada como un arreglo lineal de localidades de almacenamiento
de un byte de tamaño. Cada localidad de almacenamiento tiene asignada una dirección que la identifica.

Una de las funciones básicas que debe implementar un SO es la Administración de la Memoria para
tener un control sobre los lugares donde están almacenados los procesos y datos que actualmente se
están utilizando.

Sea cual sea es esquema de organización del almacenamiento que se adopte para un sistema
específico, es necesario decidir que estrategias se deben utilizar para obtener un rendimiento
óptimo .las estrategias de administración del almacenamiento determinan el comportamiento
de la administración de memoria.

Los programas y datos necesitan estar en el almacenamiento principal para ser ejecutados o para poder
hacer referencia de ellos. Los que no se necesitan de inmediato pueden guardarse en el
almacenamiento secundario.

Unix permite procesos múltiples y en un proceso puede generar otro fácilmente. La planificación del
procesador usa un algoritmo basado en prioridades. La administración de memoria es un algoritmo de
regiones variables con intercambios. Inicialmente los algoritmos realizados se eligieron por sencillez, no
por velocidad ni complejidad. El desarrollo inicial se hizo bajo un espacio muy pequeño de memoria.

Los recursos de memoria totales eran insuficientes para justificar algoritmos complejos, por lo que UNIX
intercambiaba el contenido en memoria de los procesos.

POLÍTICAS.

FIFO: Los procesos se despachan de acuerdo a su tiempo de llega a la cola de procesos listos, si un
proceso llega al procesador sale hasta que termine. La política FIFO actualmente no se usa como el
esquema principal de un sistema, pero si por ejemplo cuando se usa una política de prioridades y hay
procesos con la misma prioridad, a estos se les podría aplicar FIFO.

Round Robin: Los procesos se despachan en la forma que lo hace el FIFO, pero se les asigna una
cantidad limitada de tiempo (CUANTUM) en el procesador, si no termina en ese lapso se manda al final
de la lista de procesos listos.

SJF (Shortest job first - Prioridad del trabajo más corto): Se ejecuta primero el proceso en espera que
tiene el menor tiempo estimado. SJF favorece a los procesos cortos, ya que los largos podrían llegar a
rezagarse mucho tiempo e incluso nunca ejecutarse.
SRT (Sortest remaining time scheduling – Tiempo restante más corto): En SJF una vez que un proceso
comienza su ejecución continua hasta terminar. En SRT, un proceso en ejecución puede ser desposeído
por uno nuevo de menor tiempo de ejecución.

HRN: (highest response ratio next – Prioridad de la tasa de respuesta más alta): Política no apropiativa
que corrige el retraso excesivo de procesos grandes que produce el SJF, para así no caer en un
favoritismo excesivo por los procesos cortos, lo logra usando una formula basada en el tiempo de espera
y el tiempo de servicio, con lo cual la prioridad de cada trabajo no solo está en función del tiempo de
servicio sino también del tiempo que ha esperado para ser atendido.

3.2 MEMORIA REAL

La memoria real o principal es en donde son ejecutados 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 esta memoria
es de mayor costo que la memoria secundaria, pero el acceso a la información contenida en ella es de
más rápido acceso. Solo la memoria cache es más rápida que la principal, pero su costo es a su vez
mayor.

3.2.2.- Administración de la memoria con mapas de bits

Este tipo de administración divide la memoria en unidades de asignación, las cuales pueden ser tan
pequeñas como unas cuantas palabras o tan grandes como varios kilobytes. A cada unidad de asignación
le corresponde un bit en el mapa de bits, el cual toma el valor de 0 si la unidad está libre y 1 si está
ocupada (o viceversa). La figura 6 muestra una parte de la memoria y su correspondiente mapa de bits.

3.2.3.- Administración de la memoria con listas ligadas

Otra forma de mantener un registro de la memoria es mediante una lista ligada de los segmentos de
memoria asignados o libres, en donde un segmento puede ser un proceso o un hueco entre dos
procesos. La memoria de la figura 7(a) está mostrada como una lista ligada de segmentos en la figura
7(b). Cada entrada de la lista especifica un hueco (H) o un proceso (P), la dirección donde comienza, su
longitud y un apuntador a la siguiente entrada.

3.2.4.- Asignación del hueco de intercambio

En algunos sistemas, cuando el proceso se encuentra en la memoria, no hay un hueco en el disco


asignado a él. Cuando deba intercambiarse, se deberá asignar un hueco para él en el área de
intercambio del disco. Los algoritmos para la administración del hueco de intercambio son los mismos
que se utilizan para la administración de la memoria principal.
3.3 ORGANIZACION DE MEMORIA VIRTUAL

Almacenamiento virtual significa la capacidad de direccionar un espacio de almacenamiento mucho


mayor que el disponible en el almacenamiento primario de determinado sistema de computación.

Esta tecnología apareció en 1960 en la Universidad de Manchester (Inglaterra), en el sistema “Atlas”.

La ilusión de la memoria virtual está soportada por el mecanismo de traducción de memoria, junto con
una gran cantidad de almacenamiento rápido en disco duro. Así en cualquier momento el espacio de
direcciones virtual hace un seguimiento de tal forma que una pequeña parte de él, está en memoria real
y el resto almacenado en el disco, y puede ser referenciado fácilmente.

Debido a que sólo la parte de memoria virtual que está almacenada en la memoria principal, es
accesible a la CPU, según un programa va ejecutándose, la proximidad de referencias a memoria cambia,
necesitando que algunas partes de la memoria virtual se traigan a la memoria principal desde el disco,
mientras que otras ya ejecutadas, se pueden volver a depositar en el disco (archivos de paginación).

 Los métodos más comunes de implementación son mediante:

• Técnicas de paginación.

• Técnicas de segmentación.

• Una combinación de ambas técnicas.

3.4 ADMINISTRACION DE MEMORIA VIRTUAL


Las diferentes organizaciones de almacenamiento virtual generalmente implementadas son [7, Deptel]:

 Paginación.

 Segmentación.

 Segmentación y paginación.

Las estrategias para la administración de sistemas de almacenamiento virtual condicionan la conducta


de los sistemas de almacenamiento virtual que operan según esas estrategias.
Se consideran las siguientes estrategias:

“Estrategias de búsqueda”:

- Tratan de los casos en que una página o segmento deben ser traídos del almacenamiento secundario al
primario.
- Las estrategias de “búsqueda por demanda” esperan a que se haga referencia a una página o
segmento por un proceso antes de traerlos al almacenamiento primario.
- Los esquemas de “búsqueda anticipada” intentan determinar por adelantado a qué páginas o
segmentos hará referencia un proceso para traerlos al almacenamiento primario antes de ser
explícitamente referenciados.

 “Estrategias de colocación”:

o Tratan del lugar del almacenamiento primario donde se colocará una nueva página o segmento.
o Los sistemas toman las decisiones de colocación de una forma trivial ya que una nueva página puede
ser colocada dentro de cualquier marco de página disponible.

 “Estrategias de reposición”:

o Tratan de la decisión de cuál página o segmento desplazar para hacer sitio a una nueva página o
segmento cuando el almacenamiento primario está completamente comprometido.
Es similar a lo visto para la paginación introduciendo el concepto de swapping. Los procesos residen en
el disco y al ser ejecutados deben ser cargados en memoria. Cuando un proceso va a ser ejecutado, el
mismo es swappeado a memoria, utilizando lazy swapping. El lazy swapping nunca trae paginas a
memoria si no van a ser ejecutadas. Se necesita determinar si un pagina esta en memoria o en disco, por
lo cual se utiliza el bit de válido / inválido de la tabla de páginas. Si el bit = 1 la página es valida y esta
cargada en memoria si es 0 la página es inválida y no esta cargada en memoria (esta en disco).

Cuando un proceso intenta acceder a una página que no esta cargada en memoria ocurre un page fault
(tomo de página). El procedimiento para manejar un page fault es el siguiente:

1. Verificar si la referencia a la pagina es valida (se utiliza una tabla interna (generalmente llevada en
PCB) donde se indica las paginas validas.

2. Si la referencia no es valida, se cancela la ejecución del proceso.

3. Encontrar un frame disponible para cargarla (la página esta en disco)(por ejemplo de la free frame list)

4. Solicitar operación de I/O para leer la página de disco cargarla en el frame obtenido.

5. Modificar la tabla interna y la tabla de paginas para que ahora esta pagina figure como que esta en
memoria.

6. Continuar con la ejecución del proceso en la instrucción en la que fue interrumpido.

También podría gustarte