gestión de memoria introducción asignación de espacio contiguo asignación estática de memoria...

26

Upload: isabel-fuentes-torregrosa

Post on 23-Jan-2016

254 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada
Page 2: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada

Gestión de Memoria IntroducciónAsignación de espacio contiguo

Asignación estática de memoria particionadaAsignación dinámica de memoria particionadaProtección y uso compartido

Asignación de espacio no contiguoSegmentaciónPaginaciónSegmentación con paginación

Gestión de memoria virtual IntroducciónPaginación por demandaAlgoritmos de reemplazo de páginasAlgoritmos de asignación de marcos de página

Page 3: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada
Page 4: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada

AntecedentesUn programa debe cargarse en memoria desde

disco y colocarse dentro de un proceso para que se ejecute

La memoria principal y los registros son los únicos dispositivos de almacenamiento a los que puede acceder la CPU directamente

El acceso a registro es muy rápido; supone un ciclo de CPU (o menos)

El acceso a memoria principal puede durar varios ciclos

Las memorias caché se colocan entre la memoria principal y la CPU para acelerar el acceso a la información

Page 5: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada

La memoria es un recurso escaso, y para aprovecharla bien hay que administrarla bien

jerarquía de memoria. Pentium típico:

1. Caché de nivel 1: 8 KB empaquetados dentro del chip; por lo mismo, la velocidad de acceso es de unos pocos nanosegundos.

2. Caché de nivel 2: 256 a 512 KB, 12-20 ns, U$20/MB3. Memoria RAM: 8 a 32 MB, 70ns, U$2.5/MB4. Disco duro. Para almacenamiento estable, y también

para extender la RAM de manera virtual. 4GB, 8ms, U$0.08/MB.

5. Cinta. 1 a 40 GB. U$0.01/MB.

Page 6: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada
Page 7: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada

Mono-programación

•La forma más simple de administrar memoria es ejecutando sólo un programa a la vez,

compartiendo la memoria con el sistema operativo. Por ejemplo, MS-DOS.

• Cuando usuario digita un comando, el sistema operativo carga el programa

correspondiente en la memoria, y lo ejecuta. Cuando el programa termina, el sistema

operativo solicita un nuevo comando y carga el nuevo programa en la memoria,

sobrescribiendo el anterior.

Page 8: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada

• La forma más simple de obtener multiprogramación

es dividiendo la memoria en n particiones fijas, de

tamaños no necesariamente iguales, como lo hacía

el IBM 360 en la década del 60.

• Puede haber una cola de trabajos por partición, o

bien una sola cola general.

Page 9: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada

• En el primer caso, cuando llega un trabajo, se pone en la

cola de la partición más pequeña en la que todavía quepa el

trabajo.

• Si llegan muchos trabajos pequeños podría pasar que,

mientras las colas para las particiones chicas están llenas,

las particiones grandes quedan sin uso.

• En el caso de una sola cola, cada vez que un programa

termina y se libera una partición, se escoge un trabajo de la

cola general. ¿Cómo escoger?

Page 10: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada
Page 11: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada

Vinculación de DireccionesLa vinculación de instrucciones y datos a direcciones

de memoria puede realizarse en tres etapas diferentesCompilación: Si se conoce a priori la posición

que va a ocupar un proceso en la memoria se puede generar código absoluto con referencias absolutas a memoria; si cambia la posición del proceso hay que recompilar el código

Carga: Si no se conoce la posición del proceso en memoria en tiempo de compilación se debe generar código reubicable

Ejecución: Si el proceso puede cambiar de posición durante su ejecución la vinculación se retrasa hasta el momento de ejecución. Necesita soporte hardware para el mapeo de direcciones (ej., registros base y límite)

Page 12: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada

Espacio de Direcciones Físicas y LógicasEl concepto de espacio de direcciones lógicas

vinculado a un espacio de direcciones físicas separado es crucial para una buena gestión de memoriaDirección lógica – es la dirección que genera el

proceso; también se conoce como dirección virtualDirección física – dirección que percibe la

unidad de memoriaLas direcciones lógicas y físicas son iguales en los

esquemas de vinculación en tiempo de compilación y de carga; pero difieren en el esquema de vinculación en tiempo de ejecución

Page 13: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada

Registros Base y LímiteUn par de registros base y límite definen el

espacio de direcciones lógicas

Page 14: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada

Unidad de Gestión de Memoria (MMU)La MMU (Memory-Management Unit) es un

dispositivo hardware que transforma las direcciones virtuales en físicas

Con la MMU el valor del registro de reubicación (registro base) es añadido a cada dirección generada por un proceso de usuario en el momento en que es enviada a la memoria

El programa de usuario trabaja con direcciones lógicas; nunca ve las direcciones físicas reales

Page 15: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada
Page 16: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada

Intercambio Un proceso puede ser retirado temporalmente de la memoria a

algún almacenado auxiliar; más tarde será incorporado de nuevo a la memoria para que continúe su ejecución

Almacenamiento auxiliar – disco rápido con capacidad suficiente para albergar copias de imágenes de memoria para todos los usuarios; debe proporcionar acceso directo a estas imágenes de la memoria

Roll out, roll in – variante del intercambio usada para algoritmos de planificación basados en prioridad; un proceso de baja prioridad es retirado de memoria para que otro con mayor prioridad pueda ser cargado y ejecutado

La mayor parte del tiempo de intercambio es tiempo de transferencia; el tiempo de transferencia total es directamente proporcional a la cantidad de memoria intercambiada

En muchos sistemas (ej. UNIX, Linux, y Windows) se pueden encontrar versiones modificadas del intercambio

El SO mantiene una cola de listos para los procesos intercambiados que pueden ejecutarse

Page 17: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada

Vista Esquemática del Intercambio

Page 18: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada
Page 19: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada

Asignación de Espacio ContiguoLa memoria principal se encuentra dividida en dos partes:

SO residente (kernel), normalmente en posiciones bajas de la memoria junto al vector de interrupciones

Zona para los procesos de usuario, normalmente en posiciones altas de la memoria

La zona para procesos de usuarios se encuentra dividida a su vez en varias particiones que se asignarán a los procesos Particionamiento estático: las particiones se

establecen en el momento de arranque del SO y permanecen fijas durante todo el tiempo

Particionamiento dinámico: las particiones cambian de acuerdo a los requisitos de los procesos

Page 20: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada

Asignación Estática de Memoria ParticionadaAsignación estática con múltiples particiones

Hueco – bloque de memoria disponible; hay huecos de diversos tamaños repartidos por toda la memoria

Cuando llega un proceso se le asigna un hueco lo suficientemente grande para que quepa

El SO mantiene información sobre:a) particiones asignadas b) particiones libres (huecos)

SO

P5

P8

P2

SO

P5

P2

SO

P5

P2

P9P8 sale P9 entra

P10 intenta entrar

SO

P5

P2

P9

Page 21: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada

Asignación Estática de Memoria Particionada

Primer ajuste (First-fit): Se asigna el primer hueco lo suficientemente grande

Mejor ajuste (Best-fit): Se asigna el hueco más pequeño que es lo suficientemente grande; hay que buscar en la lista entera de huecos (salvo si está ordenada por tamaño)Desperdicia el menor espacio posible

Hay varias formas de satisfacer una solicitud de tamaño n partiendo de una lista de huecos

Page 22: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada

Protección con Asignación EstáticaLos registros de reubicación se usan para proteger

los procesos de usuario unos de otros y del código y datos del SOEl registro base contiene la dirección física más

baja a la que puede acceder el procesoEl registro límite contiene el tamaño de la zona de

memoria accesible por el proceso – las direcciones lógicas deben ser menores que el registro límite

La compartición de memoria entre procesos no es sencillaLos procesos no pueden compartir memoria

directamente debido a la protecciónUna solución consiste en implicar al SO en la

compartición de memoria

Page 23: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada
Page 24: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada

Asignación Dinámica de Memoria ParticionadaAhora el tamaño y ubicación de las particiones no es fijo sino que

cambia a lo largo del tiempoCuando llega un proceso se le asigna memoria de un hueco lo

suficientemente grande para que quepaCon el espacio sobrante del hueco se crea una nueva partición libre

(hueco)En este tipo de asignación las consideraciones de protección son las

mismas que en la asignación estáticaLa compartición se puede conseguir mediante solapamiento de

particionesSO

P5

P8

P2

SO

P5

P2

SO

P5

P2

P9P8 sale P9 entra P10 entra

SO

P5

P9

P2

P10

Page 25: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada

Asignación Dinámica de MemoriaPrimer ajuste (First-fit): Se asigna el primer

hueco lo suficientemente grandeMejor ajuste (Best-fit): Se asigna el hueco

más pequeño que es lo suficientemente grande; hay que buscar en la lista entera de huecos (salvo si está ordenada por tamaño)Da lugar al hueco más pequeño

Peor ajuste (Worst-fit): Se asigna el hueco más grande; hay que buscar en la lista completa de huecos (salvo si está ordenada por tamaño)Da lugar al hueco más grande

Hay varias formas de satisfacer una solicitud de tamaño n partiendo de una lista de huecos

Los métodos de primer y mejor ajuste son mejores que el peor ajuste en términos de velocidad y aprovechamiento de la memoria

Page 26: Gestión de Memoria Introducción Asignación de espacio contiguo Asignación estática de memoria particionada Asignación dinámica de memoria particionada

FragmentaciónFragmentación Externa – hay suficiente memoria libre

para satisfacer una petición, pero esa memoria no es contigua

Fragmentación Interna – la memoria asignada puede ser ligeramente mayor que la solicitada; esta diferencia de tamaño se encuentra en la partición pero no es usada

La fragmentación externa se puede reducir por medio de la compactaciónMover las particiones de memoria asignadas para

colocar toda la memoria libre en un bloque contiguoEs posible sólo si la vinculación es en tiempo de

ejecución (reubicación dinámica)Hay problemas con la E/S

Fijar la posición en memoria de los procesos que hacen E/S

Hacer E/S sólo en buffers del SO