iii - gestiÓn de memoria. almacenamiento real introducción memoria=almacenamiento memoria...

Post on 10-Jan-2015

27 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

III - GESTIÓN DE MEMORIA

ALMACENAMIENTO REAL

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.

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?

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 ?

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.

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

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.

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.

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.

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:

continuación

Usuario

No usado

Sistema operativo

0

a

b

c

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

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.

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.

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.

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.

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.

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.

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…

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.

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.

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.

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

Huecos

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

consume muchos recursos.

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.

top related