1. Introduccin
Los procesos necesitan de varios recursos para poder realizar sus instrucciones, como por
ejemplo la memoria real. Es necesario que el sistema operativo tenga un control sobre ella
pues esta asignar la memoria al proceso que lo necesite y lo requiera. Adems necesita
particionar de igual forma la memoria en espacios donde los procesos estarn
almacenados. En este laboratorio nos centraremos en las estrategias de colocacin que se
dan en particiones variables, puesto que estas estrategias se usan principalmente para
resolver el problema de la fragmentacin externa.
2. Conceptos
2.1 Particiones variables
A diferencia de las particiones fijas, las particiones variables como su mismo
nombre lo indica, varan en nmero y longitud. Inicialmente la memoria solo
contiene el S.O luego a cada proceso que llega se le asigna la memoria que
necesita exactamente.
2.2 Estrategias de colocacin
Son usadas para determinar dnde se va a ubicar el proceso dentro de la memoria
principal.
2.3 Estrategia de mejor ajuste
Consiste en asignarle al proceso el hueco con menor desperdicio interno, i.e, el
hueco el cual al serle asignado el proceso deja menos espacio sin utilizar. Su mayor
inconveniente es su orden de complejidad (orden lineal, O(n)) debido a que hay
que recorrer todo el mapa de bits o toda la lista de control (una posible solucin
sera usar una lista de control encadenada que mantenga los huecos ordenados por
tamao creciente). Otro problema es la fragmentacin externa, debido a que se
asigna el menor hueco posible, el espacio sobrante ser del menor tamao posible
lo que da lugar a huecos de tamao normalmente insuficiente para contener
programas.
2.4 Estrategia de primer ajuste
Consiste en asignar el primer hueco disponible que tenga un espacio suficiente para
almacenar el programa. La principal desventaja es el reiterado uso de las primeras
posiciones de memoria. Este ltimo inconveniente repercute negativamente en la
circuitera, debido a que se produce un mayor desgaste en dichas posiciones.
-1-
3. Experimentos
La lista de control de procesos es una array de int de 4 valores, que son:
0: Estado (Un valor de 0 significa libre, un valor de 1 ocupado)
1: Direccin inicial del bloque
2: Tamao (En ticks)
3: Pid del proceso al que est asignado
Inicializacin de la memoria
-2-
Primer ajuste
Siguiente ajuste
Mejor ajuste
-3-
-4-
4. Observaciones
En este laboratorio se implement usando el Lenguaje Java una simulacin de cmo
actan los algoritmos de colocacin de procesos en una memoria con particiones
variables. Observamos que cada algoritmo tiene distinta forma de asignar particiones a los
procesos que se alojarn dentro de la memoria. Cada uno con sus ventajas y desventajas
de acuerdo a un contexto determinado. Uno puede ser bueno en cierto caso pero otro no.
Asi tenemos problemas como bsquedas lineales que consumen mucho tiempo,
fragmentacin externa , entre otros.
-5-