Está en la página 1de 10

GESTION DE

MEMORIA
Fecha: 24/02/2020

Pedro Rojas
INDICE
Memoria
Estrategias
Esquemas
Referencias
MEMORIA
La organización y administración de memoria real ha sido uno de los factores
que más ha influenciado en el diseño de un sistema operativo. Memoria y
almacenamiento se han usado como sinónimos, lo importante es diferenciar
entre almacenamiento (memoria) principal o secundaria (disco).

También es importante diferenciar memoria real de memoria


virtual.

Los datos y programas deben estar en memoria principal para poder ser
ejecutados.

Justificación

Un proceso necesita memoria para ejecutar programas


código del programa
datos estáticos y dinámicos

El Gestor de Memoria pretende optimizar el uso de la memoria principal


disponible
Sistema operativo residente
Memoria principal disponible para ejecutar procesos
El rendimiento global del sistema mejora si se pueden ejecutar varios
procesos concurrentemente.
El método a utilizar depende principalmente del hardware
disponible.

Jerarquía de memorias (niveles de almacenamiento)


CPU (Registros) *** Cache*** Memoria Principal*** Dispositivo
E/S
Mayor Velocidad Menor

El uso de distintos niveles genera overhead debido a la necesidad de mover


datos entre los diferentes ellos.

Estrategias de Administración de Memoria

Traer: (próxima pieza de programa o datos a colocar en memoria principal).


Se atiende al que lo demande, se investiga sobre cómo atender
anticipadamente.
Colocar: ¿en qué parte de la memoria coloco los datos o el programa?
Reemplazar: ¿a cuál programa saco para darle paso a otro?

Ciclo de ejecución de una instrucción


Busca la instrucción en memoria principal
Decodifica la instrucción y se buscan los operandos en memoria
Ejecuta la instrucción
Almacena el resultado en memoria principal
Espacios de memoria lógicos y físicos
Dirección lógica
La dirección generada por la CPU durante la ejecución del programa
Llamada también dirección virtual
Dirección física
La usada realmente en el Registro de Direcciones de Memoria

Métodos de Gestión de Memoria

1. Métodos de asignación de direcciones contiguas para todo el


proceso.
**Asignación de partición única
.Sistema operativo o núcleo
*Vector de interrupción se asigna en direcciones bajas
*El sistema ocupa las direcciones bajas
.Un solo proceso de usuario activo (ocupan direcciones
altas)
**Memoria particionada (Multiprogramación con particiones fijas y
dinámicas)
.Sistemas multiproceso
2. Métodos de asignación de memoria no contigua.

Descripción de cada uno:


1. Métodos de asignación de direcciones contiguas para todo el
proceso.
(Memoria Real)

Método de asignación de partición única (fija)


Registros base y límite
BASE (recolocación): contiene la dirección física más
baja
LÍMITE: contiene la dirección lógica más alta
Hace falta protección de memoria
El gestor de memoria comprueba antes de ejecutar
Si se carga otro proceso se le asigna toda la memoria libre restante
Problema: ¿Si el SO cambia de tamaño?
Hay que reubicar el proceso de usuario
0 Sistema
Operativo
A
B Usuario
C No utilizado

Donde A, B y C son direcciones físicas. Entre 0 y A está ubicado el SO.


Entre A y B está un programa de usuario. Entre B y C existe un espacio no
utilizado.

Luego surge lo que se conoce como Solapamientos (overlays)


Técnica que permite ejecutar un programa que sea mayor que la memoria
principal disponible.
Se basa en mantener en memoria solo las instrucciones y datos que se
necesitan en cada momento.
No hace falta soporte del SO. Hace falta programar el traductor y el montador
Hace falta un programador experto para agrupar instrucciones y datos en
conjuntos adecuados

Solo se usó con hardware limitado (micros 86, 286). En otros casos, técnicas
automáticas de memoria virtual.
1. Carga la fase de inicialización y ejecuta.
2. Carga la fase de procesamiento y ejecuta.
3. Carga la fase de salida y ejecuta.

Memoria particionada
Es una de las soluciones más sencillas para asignar memoria en un sistema
de multiprogramación.
Se divide la memoria en secciones del mismo o diferente tamaño.
Se intenta ejecutar tantos programas como sea posible para utilizar la CPU
cuanto se pueda.
El particionamiento elegido puede ser:
Estático (fija): no cambia desde la generación del sistema

Carga dinámica

Se trata de no perder tiempo cargando código que luego no se ejecuta


Al empezar solo se carga el programa principal.
Las subrutinas no se cargan hasta que son llamadas.
Solo hace falta tener una tabla de rutinas cargadas y una forma especial
de llamarlas
No hace falta un SO especial, solo un cargador reubicable (relocalización).
El espacio en memoria está reservado para el proceso, pero no se utiliza
siempre.

Enlace dinámico
Se trata de no reservar espacio para las subrutinas hasta el momento de la
ejecución.
Cada llamada lleva asociada un código para localizar la dirección de la
rutina en memoria.
Ese código se sustituye por la dirección de la rutina una vez cargada.
Consume menos memoria y menos disco.
Solo hay una copia de la biblioteca en memoria
El código del programa no incluye el de las bibliotecas
Se pueden tener varias versiones de la misma biblioteca
Bibliotecas Compartidas
Necesita que el SO compruebe que no se vulnera la protección de memoria.

Intercambio de Trabajos (swapping) <Transición a la virtualidad>


Un proceso puede dejar temporalmente la memoria y volver después para
continuar su ejecución.

Por ejemplo, en sistemas de multiprogramación:

Cuando se acaba su quantum de tiempo de un proceso se vuelca en disco


Mientras se ejecuta otro proceso
Hace falta que la rodaja de tiempo sea grande
Terán, Nieves, Supuestos y Giménez serán traídos y llevados a memoria auxiliar
tantas veces antes de su culminación, dependiendo del quantum.
Sacar(swapped out),
traer (swapped in).

Swapping es el precursor de la memoria virtual.


REFERENCIAS
Boscán Nestor. 1990. Notas de Sistemas Operativos. UNISYS
Tenenbaum, Andrew. 2003. Sistemas Operativos Modernos. Prentice Hall
Carretero, Jesús. García, Félix. Anasagasti, Pedro. Pérez, Fernando. 2007.
Sistemas Operativos, una visión aplicada.McGraw-Hill
Casillas, Arantza. Iglesias, Luis. 2007. Sistemas Operativos, ejercicios resueltos.
Prentice Hall
Stallings, William. 2007. Sistemas Operativos, aspectos internos y principios de
diseño. Prentice Hall
Dhamdhere, D. 2008. Sistemas Operativos, un enfoque basado en conceptos.
McGraw-Hill
Silberschatz. Galvin. Gagne. 2006. Fundamentos de Sistemas Operativos.
McGraw-Hill

También podría gustarte