Cap07
Gestión de memoria
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.
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.
– Se deben traducir lasreferencias a la
memoria encontradas en el código del
programa a las direcciones físicas reales.
– 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).
Información
de control
del proceso
Punto
de entrada
al programa
Bloque de control de proceso
Programa
Instrucción
debifurcación
Direcciones
ascendentes
Referencia
de datos
Datos
Cima actual
de pila
Pila
Figura 7.1. Requisitos de dirección para un proceso.
Requisitos de la gestión de
memoria
• Protección:
– 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 nopuede anticiparse a
todas las referencias a la memoria que hará un
programa.
Requisitos de la gestión de
memoria
• Compartimiento:
– El código de un proceso no puede hacer referencia a posiciones de memoria de otros procesos sin permiso.
– Permite el acceso de varios prÇ
– Ç-ocesos a la misma zona de la memoria principal.
– Es mejor permitir a cada proceso (persona) que acceda a la misma copiadel programa, en lugar de tener cada
uno su propia copia aparte.
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.
Requisitos de la gestión dememoria
• 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.
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 puedecargarse 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.
Particiones estáticas
• El uso de la memoria principal es
ineficiente. Cualquier programa, sin
importar lo pequeño que sea, ocupará
unapartición completa. Este fenómeno
se denomina fragmentación interna.
Sistema operativo
8M
Sistema operativo
8M
2M
8M
8M
4M
6M
8M
8M
8M
8M
12M
8M
8M
16M
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.
Algoritmo de ubicación con
particiones
• Particiones de igual tamaño:
– Puesto que todas lasparticiones 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.
Sistema
operativo
Sistema
operativo
Procesos
nuevos
Procesos
nuevos
(a)Una cola de procesos por partición
Figura 7.3. Asignación de memoria en partición estática.
(b) Cola única de procesos
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...
Regístrate para leer el documento completo.