PARTICIONES ESTÁTICAS
ASIGNACIÓN DE MEMORIA CON PARTICIONES ESTÁTICAS
Con particiones estáticas surgen dos dificultades:
- Un programa puede ser demasiado grande para caber en una partición, por lo tanto si el programa no se ha diseñado mediante superposición, simplemente no se puede ejecutar. De otro modo, podrían estar en memoria aquellos módulos del programa que se necesiten, pero se requeriría que estos módulos sean intercambiados a medida que la ejecución progresa.
- Se malgasta el espacio interno a cada partición cuando el bloque cargado es más pequeño, lo que se conoce como fragmentación interna. Es decir, cualquier proceso por pequeño que sea, ocuparía una partición completa.
ASIGNACIÓN DE MEMORIA CON PARTICIONES ESTÁTICAS
En este ejemplo, partimos de la memoria libre completamente en (a), luego se cargan "P1" [20 MB], (b), "P2" [14 MB] (c) y "P3" [18 MB] (d). Se libera "P2" (e) y se carga "P4" [8 MB] (f), se libera "P1" (g) y se carga nuevamente "P2" [14 MB] (h). Notemos como se van reestructurando las particiones en base al tamaño de los procesos que se van cargando, esto sucede por ser particiones dinámicas.
La asignación de memoria en un esquema con particiones dinámicas, consiste en determinar en qué hueco ubicar un nuevo proceso. Para esto existen tres algoritmos: mejor ajuste, primer ajuste o próximo ajuste.
- Mejor ajuste: consiste en ubicar el proceso en el espacio de memoria que más se ajuste a su tamaño.
- Primer ajuste: consiste en ubicar el proceso en el primer hueco disponible, recorriendo desde el inicio de la memoria, cuyo tamaño sea suficiente para el proceso.
- Próximo ajuste: consiste en ubicar el siguiente hueco disponible, que sea suficientemente grande, a partir de la última asignación de memoria.
Con particiones dinámicas surgen las siguientes dificultades:
- Producto de la entrada y salida de procesos en la memoria, se van generando porciones cada vez más pequeñas de la memoria sin utilizar, lo que se conoce como fragmentación externa.
- Para solucionar este problema se debe recurrir a la compactación de la memoria de manera de eliminar los espacios (huecos) entre procesos. Esto significa que los procesos deben ser reubicados en memoria en forma dinámica.
No hay comentarios:
Publicar un comentario