49
Arquitectura de Computadores, SO Gestión de memoria

Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

Arquitectura de

Computadores, SO Gestión de memoria

Page 2: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 2 Gestión de Memoria

Contenido

• Introducción

• Funciones del sistema de gestión de memoria

• Modelo de memoria de un proceso

• Evolución de los sistemas de gestión de memoria – Gestión de la memoria con particiones fijas

– Gestión de la memoria con particiones variables

– Paginación

– Segmentación

• Memoria virtual – Políticas de sustitución de páginas

Page 3: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 3 Gestión de Memoria

Arquitectura Von Neumann

Page 4: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 4 Gestión de Memoria

Jerarquía de memoria

La jerarquización de la memoria es un intento de aumentar el rendimiento de los computadores

Para ello se aprovechan los avances tecnológicos en el diseño de memorias y la localidad de los programas

Memorias rápidas: tienen un coste elevado y una capacidad pequeña

Memorias lentas: son baratas y tienen una capacidad alta

CD-ROM - Cintas

Discos magnéticos

Memoria principal

Caché externa L2

Caché on-chip L1

Registros internos

del procesador Mayor rapidez

menor tamaño y

mayor precio

Menor rapidez

mayor tamaño y

menor precio

Page 5: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 5 Gestión de Memoria

Memoria Principal

La memoria es una amplia tabla de celdas, cada una de las cuales con su propia dirección

Tanto el tamaño de la tabla (memoria), como el de las celdas, dependen de cada arquitectura concreta

Para que los programas puedan ser ejecutados es necesario que estén cargados en memoria principal

La información que es necesario almacenar de modo permanente se guarda en dispositivos de almacenamiento secundarios también conocidos como memoria secundaria

Memoria

BF

33

C0 F0B50012

F0B50011

F0B50013

Page 6: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 6 Gestión de Memoria

Funciones del gestor de memoria

• Los objetivos del sistema de g.m. son: – Conocer el estado de una localización de memoria – Subdividir la memoria para hacer sitio a varios procesos. – Proteger las zonas de memoria de los procesos – Mapear/Trasladar direcciones logicas a dir. físicas – Hace falta repartir eficientemente la memoria para

introducir tantos procesos como sea posible. – Cargar programas en MP para su ejecución. – Proporcionar memoria a los procesos cuando la soliciten

y liberarla cuando se requiera. – Las rutinas del sistema operativo también deberán residir

en memoria.

Page 7: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 7 Gestión de Memoria

• Gestión de memoria: Objetivos

– Conseguir que varios procesos puedan ejecutarse de forma concurrente

• Evitar los conflictos de uso entre procesos • Proteger al sistema operativo • Aprovechar eficazmente el espacio disponible:

– Minimizar la memoria desaprovechada » Evitar fragmentación » Memoria ocupada por varias copias de un mismo objeto

• Carga parcial de programas sin perjudicar el rendimiento: – Tiempo de acceso a memoria

• Un gestor de memoria ideal debería:

• Minimizar la memoria desaprovechada

• Tener una complejidad temporal mínima (Ejecutarse rápido o suponer poca sobrecarga)

• Proporcionar una buena protección y una compartición flexible

Administración de Memoria

Page 8: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 8 Gestión de Memoria

• Ciclo de vida de un programa

Administración de Memoria

Page 9: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 9 Gestión de Memoria

Modelo de memoria de un proceso

• Un proceso está formado por una serie de regiones.

• Región: zona contigua del espacio de direcciones de un proceso con las mismas propiedades.

• Tipos de regiones básicos: – Texto: código – Datos – Pila

Page 10: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 10 Gestión de Memoria

Crear mapa desde ejecutable

Cabecera

Fichero EjecutableNúmero mágico

Contador de programa inicial

Tabla de secciones

Código

Datos con valor inicial

Tabla de símbolos

....................

. . . . . . . . . . . . . . . .

0

1000

5000

8000

Secciones

Mapa de memoria

Código

Datos con valor inicial

0

4000

5000Datos sin valor inicial

PilaArgumentos del programa

“0”

Page 11: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 11 Gestión de Memoria

Page 12: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

Reubicación y protección

Page 13: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 13 Gestión de Memoria

Direcciones

Dirección lógica:

La generada por la CPU

Es una referencia a una posición de memoria independiente de la asignación actual de datos a la memoria.

Se debe hacer una traducción a una dirección física.

El dispositivo que traduce direcciones virtuales a físicas se llama unidad de manejo de memoria (MMU, en inglés)

Dirección física:

la que llega al chip de memoria

La dirección absoluta o la posición real en la memoria

principal.

Page 14: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 14 Gestión de Memoria

Reubicación

• En un sistema multiprogramado es imposible conocer en tiempo de compilación y montaje qué direcciones ocupará un proceso en memoria

• Solución: emplear direcciones lógicas

Page 15: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 15 Gestión de Memoria

– El programador no conoce qué otros programas residirán en la memoria en el momento de la ejecución de su programa. Generalmente, tampoco conoce en que zona de memoria se colocará su programa

– Mientras que se está ejecutando el programa, puede que se descargue en el disco y que vuelva a la memoria principal, pero en una ubicación distinta a la anterior (reubicación) Un programa debe poder moverse por la memoria a consecuencia de intercambios

– Se deben traducir las referencias a la memoria encontradas en el código del programa a las direcciones físicas reales.

– El compilador traduce direcciones de memoria simbólicas a direcciones binarias.

Administración de Memoria

Page 16: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 16 Gestión de Memoria

• Reubicación:

– Reubicación estática

• Se lleva a cabo durante la carga del programa • Se emplea direccionamiento indirecto a partir de la dirección de

carga del programa • El programa no se mueve después de la carga

– Reubicación dinámica

• Se lleva a cabo durante la ejecución el programa • El direccionamiento se realiza dinámicamente a medida que se

van produciendo las referencias a memoria • El programa se puede desplazar en cualquier instante

Administración de Memoria

Page 17: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 17 Gestión de Memoria

• Vinculación de Direcciones

– Compilación: si en el momento de la compilación se sabe en qué parte de la memoria va a residir el proceso, es posible generar código absoluto.

– Carga: Si al compilar el programa no se sabe en qué parte de la memoria va a residir el proceso, el compilador deberá generar código reubicable. En este caso la vinculación final se efectuará en el momento de la carga

– Ejecución: Si durante la ejecución los procesos cambian de segmento, la vinculación hay que realizarla durante la ejecución.

Administración de Memoria

Page 18: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 20 Gestión de Memoria

Reubicación y protección

• Memoria física vs. memoria lógica

– De igual manera que un computador

dispone de una memoria física (o memoria primaria), podemos considerar que cada proceso tiene su memoria lógica.

• Memoria lógica: es el espacio o rango de

direcciones de un proceso:

» con su comienzo en la dirección 0

» independiente de la memoria física de un

computador determinado.

Page 19: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 21 Gestión de Memoria

Reubicación hardware

• Hardware encargado de traducción

• El S.O. se encarga de: – Almacena por cada proceso su función de traducción – Especifica al hardware qué función aplicar para cada

proceso

• Programa se carga en memoria sin modificar

• Para el ejemplo anterior:

LOAD R1, #1000LOAD R2, #2000LOAD R3, /1500LOAD R4, [R1]STORE R4, [R2]INC R1INC R2DEC R3JNZ /12.................

Memoria

10000100041000810012100161002010024100281003210036..........

Procesador

R. Instrucción

HW traducción

LOAD R3, /1500

1150010000

+1500

PC

8

Page 20: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 22 Gestión de Memoria

Reubicacion

Page 21: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 23 Gestión de Memoria

Dirección relativa

Dirección

absoluta

Interrupción al

sistema operativo

Registro base

Registro límite

Sumador

Comparador

Programa

Datos

Pila

Bloque de control de proceso

Imagen de un proceso

en la memoria principal

Soporte de hardware para la reubicación.

Page 22: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 24 Gestión de Memoria

Registros utilizados durante la ejecución

Registro base:

Se carga con la dirección en la memoria principal del proceso.

Registro límite:

Indica la posición final del programa.

Estos valores deben asignarse cuando se

carga el programa y cuando se carga el

proceso.

Page 23: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 25 Gestión de Memoria

Registros utilizados durante la ejecución

Se añade el valor del registro base a la dirección relativa para obtener una dirección absoluta.

La dirección obtenida se compara con el valor

del registro límite.

Si la dirección no está dentro de los límites, se

generará una interrupción en el sistema

operativo.

Page 24: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 26 Gestión de Memoria

MMU

• La Unidad de Manejo de Memoria (MMU)‏

• los procesos emiten siempre direcciones lógicas • La memoria recibe siempre direcciones físicas • La MMU (Memory Management Unit) es un circuito de

soporte que se intercala entre la CPU y la memoria que realiza la traducción de direcciones lógicas a direcciones físicas – La traducción de direcciones se realiza en función de unas

tablas que, en general, denominaremos mapas de memoria. – Los mapas de memoria mantienen información que

relaciona la memoria lógica de un proceso con la memoria física

– El mapa de memoria de un proceso lo elabora el sistema operativo cuando asigna memoria al proceso al ponerlo en ejecución.

Page 25: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 27 Gestión de Memoria

MMU

Page 26: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 29 Gestión de Memoria

Reubicación software

• Traducción de direcciones durante carga del programa

• Programa en memoria distinto del ejecutable

• Desventajas: – No asegura protección – No permite mover programa en tiempo de ejecución

Page 27: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 30 Gestión de Memoria

Protección

El código de un proceso no puede hacer referencia a posiciones de memoria de otros procesos sin permiso.

Es imposible comprobar las direcciones absolutas de los programas, puesto que se desconoce la ubicación de un programa en la memoria principal.

Debe comprobarse durante la ejecución:

– El sistema operativo no puede anticiparse a todas las referencias a

la memoria que hará un programa.

– El Hardware del procesador debe poseer la capacidad de proteger

los accesos a memoria

Page 28: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 31 Gestión de Memoria

Protección

• Monoprogramación: Protección del SO

• Multiprogramación: Además procesos entre sí

• Traducción debe crear espacios disjuntos

• Necesario validar todas las direcciones que genera el programa – La detección debe realizarla el hardware del

procesador – El tratamiento lo hace el SO (envía KILL al proceso)‏

Page 29: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

Asignación de memoria a procesos

Page 30: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 33 Gestión de Memoria

Asignación de memoria

– La memoria física puede ser asignada a los procesos siguiendo diversas técnicas:

• Asignación contigua: el espacio de direcciones lógicas de un proceso se mapea sobre una única zona (partición) de la memoria física: las direcciones de memoria son contiguas. – Simple

– Particionada » Particiones fijas

» Particiones variables

• Asignación dispersa: La memoria lógica se divide en fragmentos (páginas, segmentos), que se mapean sobre zonas de la memoria física no contiguas: el espacio de direcciones físicas de un proceso consta de varias zonas no contiguas: – Paginación.

– Segmentación

Page 31: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 34 Gestión de Memoria

Asignación de memoria

Un sólo proceso Monitor

Particiones Fijas Intercambio/Reubicación

Particiones Variables primero en ajustarse...

Paginación Segmentación Pag./Seg.

Memoria Virtual

Varios procesos Multiprogramación

Sistemas de Gestión de Memoria

Fragmentación Interna

Fragmentación Externa

Políticas de sustitución: FIFO,óptimo, LRU,Reloj,...

Page 32: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 35 Gestión de Memoria

Asignacion de memoria

Contigua Dispersa

Page 33: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 36 Gestión de Memoria

Asignación Contigua Simple

Una unica Partición por proceso: Valido si el sistema

no es multiprogramado

El usuario controla

toda la MP

S.O La MP se

reparte entre

el usuario y el

SO

•La memoria está toda asignada al proceso.

•Los programas consiguen memoria al ser planificados

•Toda la memoria se libera al acabar el programa

Page 34: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 37 Gestión de Memoria

Asignación Contigua particionada

La memoria se divide en particiones cada una de las cuales

se asigna a un programa

Pueden ser de diferente tamaño . En ambos casos un proceso cualquiera debe cargarse entero en una de las particiones.

•Hace falta conocer el estado (asignado o no) de cada partición y su tamaño.

•La selección de programa para residir en memoria es efectuada por el

planificador y se hace por particiones completas no ocupadas si son de

suficiente tamaño.

•La liberación, asímismo es por particiones completas.

Page 35: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 38 Gestión de Memoria

Particiones Fijas

• Se divide la memoria disponible en particiones fijas (al arrancar el sistema)‏

• Cada proceso se asigna a una UNICA partición

OS 8M

8M

8M

8M

8M

OS 8M

4M

8M

8M

12M

Igual Tamaño Distinto

Page 36: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 39 Gestión de Memoria

Particiones fijas

• Particiones de tamaño fijo:

– Cualquier proceso cuyo tamaño sea menor o igual que el tamaño de la partición puede cargarse en cualquier partición libre.

– Si todas las particiones están ocupadas, el sistema operativo puede sacar un proceso de una partición.

– Un programa puede que no se ajuste a una partición. Hay que diseñar los programas para que quepan en una particion

Page 37: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 40 Gestión de Memoria

Sistema operativo

8M

Sistema operativo

8M

(a) Particiones de igual tamaño (a) Particiones de distinto tamaño

Ejemplo de partición fija en una memoria de 64Mb.

8M

8M

8M

8M

8M

8M

8M

2M

4M

6M

8M

8M

12M

16M

Page 38: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 41 Gestión de Memoria

Particiones fijas

• El uso de la memoria principal es ineficiente. Cualquier programa, sin importar lo pequeño que sea, ocupará una partición completa. Este fenómeno se denomina fragmentación interna. (Se debe a la diferencia de tamaño entre la partición de memoria y el objeto residente dentro de ella)‏

Page 39: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 42 Gestión de Memoria

Algoritmo de ubicación en particiones fijas

• Particiones de igual tamaño:

– Puesto que todas las particiones son de igual tamaño, no importa la partición que se use.

• Particiones de distintos tamaños:

– Pueden asignar cada proceso a la partición más pequeña en la que quepa.

– Hace falta una cola para cada partición.

– Los procesos están asignados de forma que se minimiza la memoria desaprovechada dentro de cada partición.

Page 40: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 43 Gestión de Memoria

Sistema

operativo

Sistema

operativo

Procesos

nuevos Procesos

nuevos

(a) Una cola de procesos por partición (b) Cola única de procesos

Asignación de memoria en partición estática.

Page 41: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 44 Gestión de Memoria

Particiones dinámicas

• Las particiones son variables en número y longitud.

• Al contrario que en las fijas, en las estrategias de particiones

dinámicas, éstas se ajustan al tamaño de los programas, por lo cual

se crean durante el procesamiento.

• Al proceso se le asigna exactamente tanta memoria como necesite.

• Finalmente, hay varios huecos en la memoria. Este fenómeno se

denomina fragmentación externa, (Se debe al desaprovechamiento

de memoria entre particiones)‏

• Se debe usar la compactación para desplazar los procesos que estén

contiguos, de forma que toda la memoria libre quede junta en un

bloque. Este mecanismo no se utiliza, se utilizan las listas

encadenadas y los algoritmos de asignacion

Page 42: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 45 Gestión de Memoria

• Algoritmo del primer ajuste (first-fit):

– Es más rápido.

– Puede tener varios procesos cargados en el extremo inicial de la memoria que es necesario recorrer cuando se intente encontrar un bloque libre.

Algoritmo de ubicación con particiones dinámicas

Page 43: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 46 Gestión de Memoria

• Algoritmo del siguiente ajuste (next-fit):

– Lleva frecuentemente a la asignación de un bloque de memoria de la última ubicación, donde se encuentra el bloque más grande.

– El bloque de memoria más grande se divide en fragmentos pequeños.

– Hará falta la compactación para obtener un bloque de memoria grande al final del espacio de memoria.

Algoritmo de ubicación con particiones dinámicas

Page 44: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 47 Gestión de Memoria

Último bloque

asignado (14K)‏

Primer ajuste

Mejor ajuste

Bloque asignado

Bloque libre

Siguiente ajuste

(a) Antes (b) Después

Ejemplo de una configuración de memoria antes y después de asignar

un bloque de 16 Mbytes.

8M 8M

12M 12M

22M

18M

8M 8M

6M 6M

6M

2M

14M

36M

14M

20M

Page 45: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 48 Gestión de Memoria

Algoritmo de ubicación

6M

8M

2M

7M

5M

Donde guardo este proceso?

ultimo bloque alojado

Mejor encaje

Primer encaje

Siguiente encaje

Page 46: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 49 Gestión de Memoria

Problemas asignación particionada

Page 47: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 50 Gestión de Memoria

Problemas asignacion particionada

Solucion: Compactacion

Page 48: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 51 Gestión de Memoria

Problemas

• Todas las estrategias vistas hasta ahora: – Asignación contigua de memoria: Si dos direcciones

lógicas son contiguas, sus equivalentes direcciones físicas también

– Problemas de fragmentación: interna y externa

• Solución: – Asignación no consecutiva de la memoria

– Paginación: páginas

– Segmentación: segmentos

Page 49: Arquitectura de Computadores, SO - UMHumh2812.edu.umh.es/wp-content/uploads/sites/510/2013/02/... · 2014-11-17 · Es imposible comprobar las direcciones absolutas de los programas,

DSO 2014 52 Gestión de Memoria

Siguiente tema: Memoria Virtual

• Este tema podemos verlo en: – A. Silberschatz Tema 8 – W. Stallings

• Tema 7: 7.3, 7.4 • Tema 8: 8.1.

– A. Tanenbaum Tema 4: 4.3