La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Capítulo 7 Gestión de memoria.

Presentaciones similares


Presentación del tema: "Capítulo 7 Gestión de memoria."— Transcripción de la presentación:

1 Capítulo 7 Gestión de memoria

2 Gestión de memoria Subdivisión de la memoria para hacer sitio a varios procesos. Hace falta repartir eficientemente la memoria para introducir tantos procesos como sea posible.

3 Requisitos de la gestión de memoria
Reubicación: El programador no conoce qué otros programas residirán en la memoria en el momento de la ejecución. 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). Se deben traducir las referencias a la memoria encontradas en el código del programa a las direcciones físicas reales.

4 Figura 7.1. Requisitos de dirección para un proceso.
Información de control del proceso Bloque de control de proceso Punto de entrada al programa Instrucción de bifurcación Programa Direcciones ascendentes Referencia de datos Datos Cima actual de pila Pila Figura Requisitos de dirección para un proceso.

5 Requisitos de la 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.

6 Requisitos de la gestión de memoria
Compartimiento: Permite el acceso de varios procesos a la misma zona de la memoria principal. Es mejor permitir a cada proceso (persona) que acceda a la misma copia del programa, en lugar de tener cada uno su propia copia aparte.

7 Requisitos de la gestión de memoria
Organización lógica: La mayoría de los programas se organizan en módulos. Los módulos pueden escribirse y compilarse independientemente. Pueden otorgarse distintos grados de protección (sólo lectura, sólo ejecución) a los módulos. Compartir módulos.

8 Requisitos de la gestión de memoria
Organización física: La memoria disponible para un programa y sus datos puede ser insuficiente: La superposición permite que varios módulos sean asignados a la misma región de memoria. El programador no conoce cuánto espacio habrá disponible.

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

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

11 (a) Particiones de igual tamaño (a) Particiones de distinto tamaño
Sistema operativo 8M Sistema operativo 8M 2M 8M 4M 6M 8M 8M 8M 8M 8M 12M 8M 8M 16M 8M (a) Particiones de igual tamaño (a) Particiones de distinto tamaño Figura Ejemplo de partición estática en una memoria de 64Mb.

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

13 Figura 7.3. Asignación de memoria en partición estática.
Sistema operativo Sistema operativo Procesos nuevos Procesos nuevos (a) Una cola de procesos por partición (b) Cola única de procesos Figura Asignación de memoria en partición estática.

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

15 Figura 7.4. Efectos de la partición dinámica.
Sistema operativo 8M Sistema operativo Sistema operativo Sistema operativo Proceso 1 20M Proceso 1 20M Proceso 1 20M 14M 14M 56M Proceso 2 Proceso 2 36M 22M Proceso 3 18M 4M (a) (b) (c) (d) Figura Efectos de la partición dinámica.

16 Figura 7.4. Efectos de la partición dinámica.
Sistema operativo Sistema operativo Sistema operativo Sistema operativo Proceso 2 14M Proceso 1 20M Proceso 1 20M 20M 6M Proceso 4 8M Proceso 4 8M Proceso 4 8M 14M 6M 6M 6M Proceso 3 18M Proceso 3 18M Proceso 3 18M Proceso 3 18M 4M 4M 4M 4M (e) (f) (g) (h) Figura Efectos de la partición dinámica.

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

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

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

20 8M 8M 12M 12M Primer ajuste 22M 6M Mejor ajuste Último bloque asignado (14K) 18M 2M 8M 8M 6M 6M Bloque asignado 14M Bloque libre 14M Siguiente ajuste 36M 20M (a) Antes (b) Después Figura Ejemplo de una configuración de memoria antes y después de asignar un bloque de 16 Mbytes.

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

22 Figura 7.6. Ejemplo del sistema de colegas.
1 bloque de 1 megabyte Solicitud de 100K Solicitud de 240K Solicitud de 64K Solicitud de 256K Liberación de B Liberación de A Solicitud de 75K Liberación de C Liberación de E Liberación de D Figura Ejemplo del sistema de colegas.

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

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

25 Direcciones Dirección lógica: Dirección relativa: Dirección física:
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.

26 Figura 7.8. Soporte de hardware para la reubicación.
Dirección relativa Bloque de control de proceso Registro base Programa Sumador Dirección absoluta Registro límite Comparador Datos Interrupción al sistema operativo Pila Imagen de un proceso en la memoria principal Figura Soporte de hardware para la reubicación.

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

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

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

30 (a) Quince marcos libres
Número de marco Memoria principal Memoria principal Memoria principal (a) Quince marcos libres (b) Carga del proceso A (c) Carga del proceso B Figura Asignación de páginas de procesos a marcos libres.

31 (e) Descarga del proceso B
Memoria principal Memoria principal Memoria principal (d) Carga del proceso C (e) Descarga del proceso B (f) Carga del proceso D Figura Asignación de páginas de procesos a marcos libres.

32 Page Tables for Example
Tablas de páginas Lista de marcos libres Tabla de páginas del proceso B Tabla de páginas del proceso A Tabla de páginas del proceso C Tabla de páginas del proceso D Figura Estructuras de datos para el ejemplo de la Figura 7.9 en el instante de tiempo (f).

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


Descargar ppt "Capítulo 7 Gestión de memoria."

Presentaciones similares


Anuncios Google