III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria...

33
III - GESTIÓN DE MEMORIA

Transcript of III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria...

Page 1: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

III - GESTIÓN DE MEMORIA

Page 2: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

ALMACENAMIENTO REAL

Page 3: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

Introducción

Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos en memoria principal. Memoria principal más cara que la

memoria secundaria. Cuando no se trabajaba con memoria

virtual la MP era todo lo que se tenía. MP recurso caro.

Page 4: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

Organización del almacenamiento Es la forma de considerar la MP:

¿Se debe permitir o no varios usuarios al mismo tiempo?

¿Cómo se divide el espacio entre los distintos procesos?

¿La división es estática o dinámica? ¿Todos los bloques son del mismo tamaño

o no? ¿Los trabajos se ejecutan en cualquier

partición/bloque o en alguno determinado? ¿Un trabajo debe ocupar bloques contiguos

de memoria o no?

Page 5: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

Administración del almacenamiento

Las estrategias de administración del almacenamiento determinan el comportamiento de una organización cuando se siguen diferentes políticas: Cuándo se toma un nuevo proceso para

colocarlo en la memoria ?: se toma un programa cuando llega o se trata de anticipar ?

En qué lugar del almacenamiento principal se coloca un programa a ejecutar ?

Cómo se manejan los espacios libres en memoria entre diferentes programas ? Se busca maximizarlos o minimizarlos ?

Si al colocar un proceso en MP se debe quitar otro, cuál es el que sale ?

Page 6: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

Jerarquía del almacenamiento Antes la memoria era un recurso más escaso

y se calculaba su necesidad con sumo cuidado.

De todos modos, el problema de administrar correctamente la memoria sigue vigente, debido a que las aplicaciones son más ambiciosas.

Los medios de almacenamiento se combinan en distintos niveles.

En cada nivel tenemos distinto precio/unidad, y distinta velocidad de acceso y distinta capacidad.

Page 7: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

continuación

Almacenamiento secundario

Almacenamiento primario

Memoria caché La CPU puedeacceder DirectamenteAl almacenamiento primario y a la memoriacaché

Los programas y datos se deben Pasar primero a la MP para que la CPU pueda Referirse a ellos

Aumenta la velocidad de acceso al almacenamiento

Aumenta el costo de almacenamiento por bit

Disminuye la capacidad de almacenamiento

Page 8: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

Estrategias de administración del almacenamiento

Estrategias de: Obtención: Determinan cuándo debe

obtenerse información de MS y transferirla a MP.

Colocación: Dónde se coloca la información que está entrando en MP.

Reemplazo: Qué información que está en MP sale para dejar lugar a la nueva información entrante.

Page 9: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

Estrategias de obtención

Determinan cuándo debe obtenerse el siguiente programa a alojar en MP.

La más común es la obtención por demanda: un programa (o parte, o datos) son transferidos a MP en el momento que se hace referencia al mismo.

La obtención anticipada busca traer anticipadamente código o datos a MP de modo que ya estén disponibles en el momento en que son necesarios. Esto mejoraría la performance, aunque predecir qué traer no es para nada simple.

Page 10: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

Asignación de almacenamiento contiguo y no contiguo Almacenamiento contiguo: un programa debe

ocupar un único bloque contiguo de localidades de memoria.

Un almacenamiento no contiguo recién se tornó necesario cuando se intentó realizar multiprogramación con particiones variables de memoria.

En asignación de almacenamiento no contiguo se divide un programa en varios bloques o segmentos, que se colocan en memoria en posiciones que no tienen por qué ser adyacentes.

Aparece la necesidad de gestionar los huecos en memoria.

Page 11: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

Asignación de almacenamiento contiguo para un usuario único.

El usuario es único en el sistema, entonces es dueño de todos los recursos del mismo.

Así, la memoria debe dividirse solamente entre el usuario y el sistema operativo, bajo un esquema como sigue:

Page 12: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

continuación

Usuario

No usado

Sistema operativo

0

a

b

c

Esquema de asignación de almacenamiento contiguo con un único usuario

Page 13: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

continuación

El tamaño de los programas está limitado por la cantidad de memoria principal.

Es posible ejecutar programas mayores que MP por medio de superposiciones.

En este caso en la memoria se ubican: Sistema operativo Código y datos que permanecen en MP

durante toda la ejecución. Área de superposición, donde se

cargan/descargan las distintas fases: iniciación, procesamiento, salida, p/ej.

Page 14: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

continuación

La superposición manual permite trabajar con más memoria que la que realmente se dispone.

Complica la programación, ya que hay que planificar con cuidado el manejo de la memoria.

Al usar técnicas de superposición los programas son difíciles de modificar y poco portables.

Page 15: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

Protección de memoria en sistemas de usuario único El usuario tiene todo el control sobre MP. Problema: Cómo se protege el SO para que no sea

destruido por programas de usuario ? Si un programa de usuario se desvía podría

destruir el SO, y a veces incluso esto no se notaría sino hasta mucho después, con efectos potencialmente gravísimos.

Para proteger al sistema operativo del usuario, se trabaja con un registros de límites integrado a la CPU.

Con cada acceso a una dirección de memoria se chequea la validez de la misma frente al contenido de este registro de límites.

Page 16: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

Registro de límites

Registrolímite

CPU

a

Usuario

No usado

Sistema operativo

0

a

b

c

Para todas las direcciones generadas por el programa se verifica que no sean menores que a.

Page 17: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

Multiprogramación con particiones fijas Aún al usar sistemas de procesamiento

por lotes, se siguen desperdiciando muchos recursos de cómputo.

Un programa consume CPU hasta que necesita una E/S y en caso de un solo usuario, se desperdiciaba CPU mientras se esperaba por esta operación “lenta”.

Multiprogramación: varios procesos de usuario compiten simultáneamente por los recursos del sistema. Así, si un programa libera CPU otro puede tomarla.

Page 18: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

continuación

Para lograr la multiprogramación, varios trabajos deben residir al mismo tiempo en MP.

Se requiere de una memoria mayor que en el caso de usuario único, pero se usa mucho mejor la CPU.

Page 19: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

continuación

Hay dos alternativas: Multiprogramación con particiones fijas,

traducción y carga absolutas. Multiprogramación con particiones fijas,

traducción y carga con reubicación. El modo elegido condiciona

herramientas como compiladores…

Page 20: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.
Page 21: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.
Page 22: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.
Page 23: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

Protección del almacenamiento Hay que manejar varios registros de

límites. Así, se guardan los límites superior e

inferior de cada partición de usuario.

Page 24: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.
Page 25: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

Un problema

El gran problema (que aparece en todos los casos de almacenamiento) son los HUECOS.

Esta fragmentación del espacio libre a veces no permite satisfacer demandas de usuarios cuando hay memoria libre pero muy fragmentada.

Page 26: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

Multiprogramación con particiones variables

Sólo analizamos los casos de asignación contigua.

A continuación se muestra un ejemplo de cómo se van atendiendo estos pedidos.

Page 27: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.
Page 28: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

Huecos

A continuación se muestra un ejemplo en que aparecen huecos al trabajar con particiones variables.

También se muestra la condensación de huecos

Page 29: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.
Page 30: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

Huecos

Ejemplo de compactación de huecos. La compactación es un proceso que

consume muchos recursos.

Page 31: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.
Page 32: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.

Estrategias de colocación

Sirven para determinar en qué lugar de MP se deben colocar los programas y datos entrantes. Estrategia del mejor ajuste Estrategia del peor ajuste Estrategia del primer ajuste

A continuación se muestra un ejemplo de cada caso.

Page 33: III - GESTIÓN DE MEMORIA. ALMACENAMIENTO REAL Introducción Memoria=Almacenamiento Memoria primaria=RAM Memoria real=Memoria primaria Programa y datos.