memoria - sistemas operativos - utn

32
Gestión de memoria Gestión de memoria

Upload: overflow87

Post on 11-Jan-2016

31 views

Category:

Documents


4 download

DESCRIPTION

Guía de Memoria, Sistemas OperativosUniversidad Tecnologica Nacional

TRANSCRIPT

Page 1: Memoria - Sistemas Operativos - UTN

Gestión de memoriaGestión de memoria

Page 2: Memoria - Sistemas Operativos - UTN

Gestión de memoriaGestión de memoria

• Consiste en la subdivisión de la memoria

para incorporar varios procesos que

compitan por el uso de la CPU.

• Es necesario repartir eficientemente la

memoria para introducir tantos procesos

como sea posible.

Page 3: Memoria - Sistemas Operativos - UTN

Requisitos de la gestión de memoriaRequisitos de la gestión de memoria

Reubicación

o Cuando Proceso suspendido es reingresado a memoria, puede que ubicación distinta a la anterior (reubicación).

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

Page 4: Memoria - Sistemas Operativos - UTN

Requisitos de la gestión de Requisitos de la gestión de memoriamemoria

ProtecciónProtección

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

o Antes de que un proceso acceda a buscar una instrucción o un dato debe comprobarse si tiene el acceso permitido

Page 5: Memoria - Sistemas Operativos - UTN

Requisitos de la gestión de memoriaRequisitos de la gestión de memoria

o CompartimientoCompartimiento:

o Permite el acceso de varios procesos a la misma zona de la memoria principal.

o Es mejor permitir a cada proceso que acceda a la misma copia del programa, en lugar de tener cada uno su propia copia aparte.

Page 6: Memoria - Sistemas Operativos - UTN

Requisitos de la gestión de memoriaRequisitos de la gestión de memoria

Organización lógicaOrganización lógica:o La mayoría de los programas se organizan

en módulos.o Los módulos pueden escribirse y

compilarse independientemente.o Pueden otorgarse distintos grados de

protección (sólo lectura, sólo ejecución) a los módulos.

o Compartir módulos.

Page 7: Memoria - Sistemas Operativos - UTN

Requisitos de la gestión de memoriaRequisitos de la gestión de memoria

Organización físicaOrganización física:

o La memoria disponible para un programa y sus datos puede ser insuficiente:

oLa superposición permite que varios módulos sean asignados a la misma región de memoria.

o El programador no conoce cuánto espacio habrá disponible.

Page 8: Memoria - Sistemas Operativos - UTN

Particiones estáticas

• Particiones de igual tamaño:– 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. El programador debe diseñar el programa mediante superposiciones.

Page 9: Memoria - Sistemas Operativos - UTN

Particiones estáticas

• 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.

Page 10: Memoria - Sistemas Operativos - UTN

Sistema operativo

8M

Sistema operativo

8M

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

Figura 7.2. Ejemplo de partición estática en una memoria de 64Mb.

8M

8M

8M

8M

8M

8M

8M

2M

4M

6M

8M

8M

12M

16M

Page 11: Memoria - Sistemas Operativos - UTN

Algoritmo de ubicación con particiones

• 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 12: Memoria - Sistemas Operativos - UTN

Sistema

operativo

Sistema

operativo

Procesos

nuevosProcesos

nuevos

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

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

Page 13: Memoria - Sistemas Operativos - UTN

Particiones dinámicas

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

• 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 usar la compactación para desplazar los procesos que estén contiguos, de forma que toda la memoria libre quede junta en un bloque.

Page 14: Memoria - Sistemas Operativos - UTN

Sistema

operativo

Sistema

operativo

Sistema

operativo

Sistema

operativo

Proceso 1 Proceso 1Proceso 1

Proceso 2 Proceso 2

Proceso 3

Figura 7.4. Efectos de la partición dinámica.

8M

56M

20M 20M 20M

36M

14M 14M

22M 18M

4M

(a) (b) (c) (d)

Page 15: Memoria - Sistemas Operativos - UTN

Figura 7.4. Efectos de la partición dinámica.

Sistema

operativo

Sistema

operativo

Sistema

operativo

Sistema

operativo

Proceso 1 Proceso 1

Proceso 3 Proceso 3Proceso 3Proceso 3

Proceso 4 Proceso 4Proceso 4

Proceso 220M20M 20M

14M

18M

4M

8M

6M

18M

4M 4M

18M

6M

8M 8M

6M

6M

18M

14M

4M

(e) (f) (g) (h)

Page 16: Memoria - Sistemas Operativos - UTN

Algoritmo de ubicación con particiones dinámicas

• El sistema operativo debe decidir qué bloque libre se tiene que asignar al proceso.

• Algoritmo del mejor ajuste (best-fit):– Elige el bloque de tamaño más próximo al

solicitado. – Proporciona en general los peores resultados. – Puesto que este algoritmo busca el hueco más

pequeño para el proceso, garantiza que el fragmento que se deja es lo más pequeño posible y, por lo tanto, se debe compactar más frecuentemente.

Page 17: Memoria - Sistemas Operativos - UTN

Algoritmo de ubicación con particiones dinámicas

• 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.

Page 18: Memoria - Sistemas Operativos - UTN

Algoritmo de ubicación con particiones dinámicas

• 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.

Page 19: Memoria - Sistemas Operativos - UTN

Último bloque asignado (14K)

Primer ajuste

Mejor ajuste

Bloque asignado

Bloque libre

Siguiente ajuste

(a) Antes (b) Después

Figura 7.5. 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 20: Memoria - Sistemas Operativos - UTN

Sistema de colegas

• El espacio entero disponible para la asignación se trata como un solo bloque de tamaño 2U.

• Si se hace una solicitud de tamaño s tal que 2U-1 < s <= 2U, entonces el bloque entero se asigna:– En otro caso, el bloque se divide en dos

colegas de igual tamaño. – Este proceso continúa hasta que el bloque más

pequeño sea mayor o igual que s generándose.

Page 21: Memoria - Sistemas Operativos - UTN

1 bloque de 1 megabyte

Solicitud de 100K

Solicitud de 240K

Solicitud de 64K

Solicitud de 256K

Solicitud de 75K

Liberación de B

Liberación de A

Liberación de C

Liberación de E

Liberación de D

Figura 7.6. Ejemplo del sistema de colegas.

Page 22: Memoria - Sistemas Operativos - UTN

Figura 7.7. Representación en árbol del sistema de colegas.

Page 23: Memoria - Sistemas Operativos - UTN

Reubicación

• Cuando el proceso se carga en la memoria, se determina la ubicación real (absoluta) de la memoria.

• Un proceso puede ocupar diferentes particiones, lo que significa diferentes posiciones absolutas de la memoria durante su ejecución (a partir de la carga).

• La compactación también hará que un programa ocupe una partición distinta, lo que significa que las ubicaciones absolutas de la memoria cambien.

Page 24: Memoria - Sistemas Operativos - UTN

Direcciones

• Dirección lógica:

– 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.

• Dirección relativa:

– La dirección se expresa como una posición relativa a algún punto conocido.

• Dirección física:

– La dirección absoluta o la posición real en la memoria principal.

Page 25: Memoria - Sistemas Operativos - UTN

Dirección relativa

Direcciónabsoluta

Interrupción al sistema operativo

Registro base

Registro límite

Sumador

Comparador

Programa

Datos

Pila

Bloque de control de proceso

Imagen de un procesoen la memoria

principal

Figura 7.8. Soporte de hardware para la reubicación.

Page 26: Memoria - Sistemas Operativos - UTN

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 27: Memoria - Sistemas Operativos - UTN

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 28: Memoria - Sistemas Operativos - UTN

Paginación• La memoria principal se encuentra dividida en

trozos iguales de tamaño fijo y cada proceso en pequeños trozos de tamaño fijo.

• Los trozos del proceso se denominan páginas y los trozos libres de memoria se denominan marcos.

• El sistema operativo mantiene una tabla de páginas para cada proceso:– Muestra la posición del marco de cada página

del proceso. – La dirección de la memoria consta de un

número de página y de un desplazamiento dentro de la página.

Page 29: Memoria - Sistemas Operativos - UTN

Memoria principal Memoria principal Memoria principalNúmero de marco

(a) Quince marcos libres (b) Carga del proceso A (c) Carga del proceso B

Figura 7.9. Asignación de páginas de procesos a marcos libres.

Page 30: Memoria - Sistemas Operativos - UTN

Memoria principal Memoria principalMemoria principal

(d) Carga del proceso C (e) Descarga del proceso B (f) Carga del proceso D

Figura 7.9. Asignación de páginas de procesos a marcos libres.

Page 31: Memoria - Sistemas Operativos - UTN

Page Tables for ExampleTablas de páginas

Tabla de

páginas del

proceso A

Tabla de

páginas del

proceso B

Tabla de

páginas del

proceso CTabla de

páginas del

proceso D

Lista de

marcos

libres

Figura 7.10. Estructuras de datos para el ejemplo de la Figura 7.9 en el instante de tiempo (f).

Page 32: Memoria - Sistemas Operativos - UTN

Segmentación

• No es necesario que todos los segmentos de todos los programas tengan la misma longitud.

• Existe una longitud máxima de segmento.• Un dirección lógica segmentada consta de

dos partes, un número de segmento y un desplazamiento.

• Como consecuencia del empleo de segmentos de distinto tamaño, la segmentación resulta similar a la partición dinámica.