43
GESTION DE MEMORIA

GESTION DE MEMORIA

  • Upload
    ianna

  • View
    32

  • Download
    0

Embed Size (px)

DESCRIPTION

GESTION DE MEMORIA. GESTION DE MEMORIA. - PowerPoint PPT Presentation

Citation preview

Page 1: GESTION DE MEMORIA

GESTION DE MEMORIA

Page 2: GESTION DE MEMORIA

GESTION DE MEMORIA La Gestión 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 Administración de Memoria, el cual es un dispositivo hardware que transforma las direcciones lógicas en físicas.

Page 3: GESTION DE MEMORIA

OBJETIVOS DE LA GESTION DE MEMORIA

Ofrece a cada proceso un espacio lógico propio.

Proporcionar protección entre los procesos

Permitir que los procesos compartan memoria

Maximizar el rendimiento del sistema

Page 4: GESTION DE MEMORIA

REQUISITOS DE LA GESTION DE MEMORIA

Reu

bica

ción

En un sistema multiprogramado la memoria se

encuentra compartida por

varios procesos, por lo

tanto, los procesos deben ser cargados y

descargados de memoria.

Pro

tecc

ión 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.

Com

part

ició

n En ciertas ocasiones, bajo la supervisión y

el control del sistema

operativo, pueden ser

provechosos que los

procesos puedan

compartir memoria.

Page 5: GESTION DE MEMORIA

REQUISITOS DE LA GESTION DE MEMORIA

Org

aniz

ació

n ló

gica

Tanto la memoria principal como la

secundaria presentan una organización física

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 lógica que

ellos presenten.

Org

aniz

ació

n fís

ica Debe ser parte de la

gestión de memoria, la organización del flujo

de información entre la memoria principal y la memoria secundaria.

Page 6: GESTION DE MEMORIA

TECNICAS DE GESTION DE MEMORIA

1. Paginación

2. Segmentación

3. Asignación Estáticas / Dinámicas

4. Memoria Virtual

5. Direccionamiento de Memorias

Page 7: GESTION DE MEMORIA

Consiste que la memoria principal se divida en un conjunto de

marcos de igual tamaño. Cada proceso se divide en páginas de igual

tamaño que los marcos. Un proceso se carga situando todas sus

páginas en marcos libres pero no necesariamente contiguos.

PAGINACIÓN

Page 8: GESTION DE MEMORIA

PAGINACIÓN

- La memoria física se divide en bloques de

amaño fijo que llamamos marcos.

- La memoria virtual se divide en bloques del mismo

tamaño llamados páginas.

- Los programas se dividen en páginas.

- Al ejecutar un proceso

se cargan sus páginas en los marcos.

Page 9: GESTION DE MEMORIA

PAGINACIÓN

Tablas de páginas

-Son tablas que contienen (para cada proceso) el número marco que corresponde a cada página virtual del proceso .

- Estructura de una entrada de la Tabla de Páginas:

Page 10: GESTION DE MEMORIA

-Tamaño de página viene definido por el Hardware y suele ser una potencia de 2 que varía entre 512 y 16M .

- Ej. simplificado: Direccionamiento de un espacio virtual de 64K, distribuido en 16 páginas de 4K:

PAGINACIÓN

Tablas de páginas

Page 11: GESTION DE MEMORIA

Cada entrada de la tabla de páginas, además del número de marco quecorresponde con esa página, contiene información adicional como la

siguiente:

- Información de protección: Es un conjunto de bits que especifican

que tipo de accesos están permitidos. Típicamente, se controla el acceso de lectura, de ejecución

y de escritura.

- Indicación de página válida: Es un bit que especifica si esa página

es válida, en el caso de que no lo sea, la información del número

de marco es irrelevante.

PAGINACIÓN

Page 12: GESTION DE MEMORIA

En la entrada de la tabla de páginas puede haber información adicional, tal como la siguiente:

- Indicación de página accedida. La MMU (Memory Management Unit o unidad de gestión de memoria) activa

este bit indicando cuando se accede a una dirección lógica que pertenece a esa página.

- Indicación de página modificada. La MMU activa este bit indicando cuando se escribe en una dirección lógica que

pertenece a esa página.

- Desactivación de cache. Este bit indica que no debe usarse, la cache de la memoria principal para

acelerar el acceso a las direcciones de esta página.

PAGINACIÓN

Page 13: GESTION DE MEMORIA

Ventaja / Desventaja

No tiene fragmentación externa

Hay una pequeña cantidad de

fragmentación interna

Paginación

Page 14: GESTION DE MEMORIA

SEGMENTACIÓN

Es un esquema de manejo de memoria mediante el cual

la estructura del programa refleja su división lógica;

llevándose a cabo una agrupación lógica de la información

en bloques de tamaño variable denominados segmentos.

Page 15: GESTION DE MEMORIA

- Los bloques de un proceso (código, datos, pila, DLLs, etc.) pueden estar

situados en áreas de memoria no contiguas.

- Suministra reubicación dinámica.

- Protección y uso compartido.

- Cada segmento empieza en una dirección virtual fija (reubicación).

- Las direcciones en estos sistemas tienen dos componentes: número de

segmento y offset.

- Los segmentos pueden tener tamaños diferentes.En el 80x86: mov eax,

ds:esi.

- Para localizar el dato: selector DS y desplazamiento SI

CARACTERISTICAS

Page 16: GESTION DE MEMORIA

OBJETIVOS

Objetivos Alcanzados con la segmentación

Modularidad de programas

Estructuras de datos de largo

variable

Compartición

Enlace dinámico entre

segmentos

Protección

Page 17: GESTION DE MEMORIA

Una de las ventajas de la segmentación sobre la paginación es que se trata

más de un hecho lógico que físico.

En un sistema de segmentación, una vez que un segmento ha sido declarado

como compartido, entonces las estructuras que lo integran pueden cambiar de

tamaño.

Lo anterior no cambia el hecho lógico 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.

COMPARTICIÓN DE SEGMENTOS

Page 18: GESTION DE MEMORIA

- No necesitan ser de igual tamaño.

- Los bloques separados no necesitan

ser adyacentes.

- Deben estar compuestos de

posiciones contiguas de almacenamiento.

Sin embargo se complica la protección

de bloques de memoria de un proceso de

usuario.

Es más difícil limitar el rango de

acceso de cualquier programa.

BLOQUES

Page 19: GESTION DE MEMORIA

Conoce las unidades lógicas

Compila módulos separados.

Modificación de los cambios dentro de un

modulo

Comparte los segmentos.

Los segmentos crecen

dinámicamente

Define segmentos que aun no existan

VENTAJAS

Page 20: GESTION DE MEMORIA

- Hay un incremento en los costos de hardware y de software para llevar a

cabo la implantación, así como un mayor consumo de recursos: memoria, tiempo

de CPU, etc.

- Debido a que los segmentos tienen un tamaño variable se pueden presentar

problemas de fragmentación externas, lo que puede ameritar un plan de

reubicación de segmentos en memoria principal.

- Se complica el manejo de memoria virtual, ya que los discos almacenan la

información en bloques de tamaños fijos, mientras los segmentos son de tamaño

variable. Esto hace necesaria la existencia de mecanismos más costosos que los

existentes para paginación.

DESVENTAJAS

Page 21: GESTION DE MEMORIA

- Permite que los segmentos varíen de tamaño, puede ser necesarios

planes de reubicación 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 traído fácilmente de nuevo, ya que será necesario encontrar

nuevamente un área de memoria libre ajustada a su tamaño.

- La compartición de segmentos permite ahorrar memoria, pero requiere de

mecanismos adicionales de hardware y software.

Estas desventajas bien pueden ser minimizadas por la Segmentación-

Paginada, sin embargo esta también tiene desventajas y ventajas.

DESVENTAJAS

Page 22: GESTION DE MEMORIA

Se basa en una gran reserva de memoria donde se van asignando los

elementos del programa de forma contigua; a diferencia de la asignación

estática, se encuentra la asignación dinámica asigna una dirección base a

cada elemento a partir de la cual se va configurando la estructura de

datos. Y la tercera tenemos la asignación mixta la cual es una

combinación de las dos anteriores para aprovechar sus ventajas

realizando una asignación estática-dinámica.

ASIGNACIONES ESTÁTICAS

Page 23: GESTION DE MEMORIA

Ejemplo de una partición estática en una memoria de 64 MB

ASIGNACIONES ESTÁTICAS

Page 24: GESTION DE MEMORIA

ASIGNACIÓN DE MEMORIA ENPARTICIÓN ESTÁTICA

Page 25: GESTION DE MEMORIA

Descripción

• La memoria principal se divide en un conjunto de particiones estáticas, durante la

generación del sistema.

• Un proceso se puede cargar en una partición de

igual o mayor tamaño.

Ventajas

• Sencilla de implementar,

poca sobrecarga del

sistema operativo.

Desventajas

• Empleo ineficiente de la memoria debido

a la fragmentación

interna.• El número de

procesos activos es fijo.

ASIGNACIONES ESTÁTICAS

Page 26: GESTION DE MEMORIA

Es una asignación a una dirección base de cada elemento a partir

de la cual se va configurando la estructura de datos; a diferencia de la

asignación dinámica, se encuentra la asignación estática, la cual se

basa en una gran reserva de memoria donde se van asignando los

elementos del programa de forma contigua. Luego tenemos la

asignación mixta la cual es una combinación de las dos anteriores para

aprovechar sus ventajas realizando una asignación estática-dinámica.

Asignaciones Dinámicas

Page 27: GESTION DE MEMORIA

EFECTOS DE LAS ASIGNACIONES DINÁMICAS

Page 28: GESTION DE MEMORIA

Consiste en determinar en qué hueco ubicar un nuevo proceso. Para esto

existen tres algoritmos: mejor ajuste, primer ajuste o próximo ajuste.

- Mejor ajuste: consiste en ubicar el proceso en el espacio de memoria que

más se ajuste a su tamaño.

- Primer ajuste: consiste en ubicar el proceso en el primer hueco disponible,

recorriendo desde el inicio de la memoria, cuyo tamaño sea suficiente para el

proceso.

- Próximo ajuste: consiste en ubicar el siguiente hueco disponible, que sea

suficientemente grande, a partir de la última asignación de memoria.

Asignación de memoria con particiones dinámicas

Page 29: GESTION DE MEMORIA

Descripción

• Las particiones se crean

dinámicamente, de forma que

cada proceso se carga en una

partición de su mismo tamaño.

Ventajas

• No hay fragmentación

interna.

• Uso más eficiente de la

memoria principal.

Desventajas

• Uso ineficiente del procesador

debido a la compactación

para contrarrestar la fragmentación

externa.

Asignaciones Dinámicas

Page 30: GESTION DE MEMORIA

MEMORIA VIRTUAL

Es una técnica para proporcionar la simulación de un espacio de

memoria mucho mayor que la memoria física de una máquina. Esta

"ilusión" permite que los programas se hagan sin tener en cuenta el

tamaño exacto de la memoria física.

El espacio de direcciones virtual, está mapeado de tal forma que

una pequeña parte de él, está en memoria real y el resto

almacenado en el disco.

Page 31: GESTION DE MEMORIA

- 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 métodos más comunes para implementar la memoria

virtual son la paginación y la segmentación.

- En un sistema de memoria virtual las direcciones generadas

por los programas en ejecución (direcciones virtuales) no son

necesariamente las disponibles en la memoria principal

(direcciones reales).

DESCRIPCIÓN

Page 32: GESTION DE MEMORIA

DESCRIPCIÓN

- 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 ejecución de un

proceso. Tal correspondencia se realiza mediante mecanismos de

traducción dinámica de direcciones.

- Las direcciones contiguas en la memoria virtual de un

proceso, no son necesariamente contiguas en la memoria real.

Page 33: GESTION DE MEMORIA

Un espacio de direcciones virtuales es mayor que el espacio de

direcciones reales.

NIVELES DE ALMACENAMIENTO

1 Byte = 8 bits

1 K = 1024 Bytes

1 Mega = 1024 Kbytes

1 Giga = 1024 MBytes

1 Tera = 1024 GBytes

1 Peta = 1024 TBytes

UNIDADES DE MEDIDA DE MEMORIA

Page 34: GESTION DE MEMORIA

- Los mecanismos de traducción dinámica de direcciones deben

mantener mapas de correspondencias de traducción de direcciones.

- Las correspondencias se establecen a nivel de bloques de igual

tamaño o de diferente tamaño.

- Las direcciones son bidimensionales.

- Cada proceso tiene su propia tabla de correspondencias de

bloques.

CORRESPONDENCIA DE BLOQUES

Page 35: GESTION DE MEMORIA

Posición de memoria: Unidad elemental de almacenamiento

de una memoria. En un microcomputador cada posición de

memoria almacena 8 bits (1 Byte), cuya combinación codifica el

dato que almacena (generalmente 1 carácter).

Dirección de memoria: Nombre o referencia que tiene cada

Posición de memoria.

ESTUDIO DE LA MEMORIA VIRTUAL

Page 36: GESTION DE MEMORIA

- Los programas se pueden ejecutar por partes, la memoria

lógica puede ser mayor que la real disponible.

- Puesto que cada programa ocupa menos memoria real, se

puede elevar el índice de multiprogramación 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

Page 37: GESTION DE MEMORIA

- Permite gestionar más eficientemente la memoria física.

Cualquier espacio libre, incluso una única página, puede ser

aprovechado para cargar un nuevo programa y comenzar a

ejecutarlo. Por otra parte, si una página de un programa no hace

referencia durante la ejecución, no habrá que cargarla.

- La independencia de los programas con respecto a la

máquina es completa. Además del direccionamiento virtual que

aporta la paginación, la cantidad de memoria física disponible

para ejecutar el programa sólo es relevante para la velocidad de

ejecución del programa.

VENTAJAS

Page 38: GESTION DE MEMORIA

Direccionamiento de Memoria

Es un identificador único para una ubicación de la

memoria con las cuales un CPU u otros dispositivos puede

almacenar, modificar o recuperar datos de la misma.

Tanto la memoria física como la memoria virtual

emplean direccionamiento o direcciones de memoria para

acceder a sus datos. En la memoria física, la dirección accede a

la memoria RAM real (los chips RAM incorporados a la placa

madre), y la dirección de memoria virtual hace referencia a un

espacio del disco duro que simula memoria RAM (el archivo de

paginación).

Page 39: GESTION DE MEMORIA

Directo Indirecto

Relativo Indexado

Registro Indirecto Inmediato

Inherente

Modos de direccionamiento

Page 40: GESTION DE MEMORIA

Direccionamiento Directo

La instrucción contiene la dirección de

la posición de memoria donde se

encuentra el operando

Direccionamiento Indirecto

La dirección contiene no la dirección

donde se encuentra el operando, sino la

dirección donde se encuentra la dirección

del operando.

Page 41: GESTION DE MEMORIA

Direccionamiento Relativo

Es la parte dirección de la instrucción contiene el

número N. En memoria la dirección del operando se

encuentra sumando el numero N al número del contador

del programa.

Direccionamiento Indexado

Es la parte dirección de la instrucción contiene un número 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, y

denominado naturalmente registro índice. La posición de memoria donde se localiza el

operando se encuentra mediante la suma I + N.

Page 42: GESTION DE MEMORIA

Registro Indirecto

Este registro contiene la dirección de memoria del operando.

Una instrucción que invoque realmente direccionamiento de

registro indirecto, no tiene bits significativos en su parte dirección.

En lugar de ello, la instrucción completa se incluye en los bits

asignados a la parte de operación de la instrucción.

Direccionamiento Inmediato

Es la parte de dirección de la instrucción,

contiene no la dirección del operando sino el

mismo operando.

Page 43: GESTION DE MEMORIA

Direccionamiento Inherente Es una dirección que es parte de una

instrucción se refiere a una posición de

memoria. Cuando una instrucción indica una

fuente o un destino de datos y no se direcciona

específicamente, ya no se hace referencia a la

posición de memoria, se dice que la instrucción

tiene una dirección inherente.