Estrategias de Ajuste de Peticiones de Memoria.

 

  ¿Para qué sirve esta Simulación?

¿Hasta dónde puedo llegar?

¿Qué nos muestra la Simulación?

¿Cómo la hago funcionar?

  El Banco de Pruebas.

Comenzar a trabajar.

 

 

 


¿Para qué sirve esta Simulación?

La siguiente herramienta presenta una simulación creada con el objetivo de hacer entender al usuario los distintos algoritmos de ajuste de peticiones de memoria.
La herramienta es capaz de trabajar con tres de estos algoritmos: El del primer ajuste o FIRST FIT, el del mejor ajuste o BEST FIT y el del peor ajuste o WORST FIT.

Pretendemos que el usuario de esta herramienta, comprenda la base de funcionamiento de los algoritmos anteriores. Aconsejamos el uso de esta herramienta conjuntamente con la explicación teórica de los distintos algoritmos de ajuste de peticiones de memoria .

 


¿Hasta dónde puedo llegar?

En la herramienta se parte con cuatro procesos, que al arrancar la simulación, comenzarán a solicitar bloques de memoria. Estos procesos irán solicitando memoria según un turno rotatorio, es decir, van pidiendo de uno en uno y cuando termina su petición el último, comienza de nuevo el primero.

La herramienta dispone de una memoria de 256 palabras, las cuales podrán ser asignadas por bloques a los distintos procesos que la vayan necesitando.

Las solicitudes de bloques de memoria las harán al elemento que representa el sistema operativo. Este elemento será el que se encargará de intentar satisfacerlas desde la memoria.

Las distintas peticiones que realicen los procesos, aparecerán como un panel en el que se informará del proceso que ha realizado la petición y las palabras que desea adquirir.

Si el algoritmo que estamos utilizando es el del primer ajuste, la herramienta buscará el primer grupo de celdas en el que coja la petición realizada.

Si el algoritmo a utilizar es el del mejor ajuste, la herramienta buscará el menor grupo de celdas en el que coja la petición realizada.

Si por el contrario, el algoritmo a utilizar es el del peor ajuste, la herramienta buscará el mayor grupo de celdas libres en el que coja la petición realizada.
Si en cualquiera de los algoritmos anteriores no encuentra un grupo de celdas lo suficientemente amplio, mostrará un panel en el que se informará de este error.

Los procesos no solo se van a dedicar a realizar peticiones de celdas, en ocasiones (dato que podremos controlar desde uno de los parámetros de la herramienta) los procesos abandonarán grupos completos de celdas solicitadas con anterioridad.
Cuando un proceso decida soltar celdas, informará de este hecho mediante un panel que indicará el bloque de celdas que desea abandonar.

El resultado de soltar un bloque de memoria será, que las celdas previamente cogidas, quedarán de nuevo a disposición de los procesos.

La herramienta estará realizando peticiones, hasta que el usuario la detenga mediante el botón dedicado a este efecto.

Mientras que la herramienta esté funcionando, podremos variar cada uno de los parámetros que definen su comportamiento actual, como el algoritmo de ajuste a utilizar, el número máximo de celdas que se pueden solicitar o la probabilidad de que los procesos realicen peticiones.

 


¿Qué nos muestra la Simulación? 

El aspecto de la herramienta lo podemos ver en una instantánea tomada en pleno funcionamiento, la podemos observar en la ilustración 1, en ella se distinguen varios tipos de figuras, que serán las representantes de los diferentes elementos participantes en la simulación:

 

Ilustración 1 Instantánea de la Herramienta

 


¿Cómo la hago funcionar? 

La segunda parte de la interfaz gráfica, es la destinada a la interacción con el usuario, la que se encargará de obtener los parámetros según los cuales se ejecutara la simulación.

Esta zona se sitúa en la parte inferior de la pantalla mostrada de forma global en la Ilustración 1. Más claramente la podemos ver en la Ilustración 2.

Ilustración 2 Parámetros de la Herramienta

El botón Empezar, sirve para iniciar la herramienta con los datos que tengan los demás paramentos. Cuando se pulse el botón Parar, su leyenda variará y pasará a llamarse Continuar. Esto permitirá que cuando la simulación esté detenida podemos continuar su ejecución..

El botón Parar, sirve para detener en un momento dado la herramienta.
La leyenda del botón Empezar después de esto pasará a decir: "Continuar". Y pulsar este último va ha hacer que la herramienta continúe por donde se quedó.

El botón Reiniciar, sirve para hacer que la herramienta abandone el estado actual y vuelva al estado inicial.

El siguiente parámetro que podemos pasar a la herramienta es el de "Nº bloques:". Indica el número máximo de elementos que van a poder solicitar los elementos. En este caso es de 16, es decir los procesos solicitarán de 1 a 16 elementos. Acepta datos en un rango de 1 a 256.
El introducir un número incorrecto hará que tome un valor por defecto.

Después viene un parámetro que se denomina "Algorit:". Este parámetro contiene una lista con los algoritmos disponibles.
La lista se despliega pulsando sobre el triángulo negro de su parte derecha.

Los algoritmos disponibles son el First Fit (Primer Ajuste), Best Fit (Mejor Ajuste) y Worst Fit (Peor Ajuste).

El último parámetro que se puede pasar a la simulación ("P. Coger") es la probabilidad de que los procesos cojan o suelten memoria. Este dato viene dado en veces por cada 100.
Por defecto tiene un 50%. Puede tomar valores desde 0 a 99.

 


El Banco de Pruebas

 

Variando el parámetro Nº Bloques adecuadamente, podremos conseguir observar el comportamiento de los algoritmos en situaciones extremas. Para comprobar como funcionan los algoritmos ante una memoria muy fragmentada, primero la intentaremos fragmentar: Lo primero ha hacer será disminuir el parámetro anterior (para que haya muchas peticiones muy pequeñas), después incrementaremos la probabilidad de que los procesos realicen peticiones. En el momento en que la memoria este casi llena decrementamos la probabilidad de petición para que queden algunos bloques sueltos por memoria, y este es el momento de aumentar la el número de bloque a pedir.

Observaremos que, aunque la suma de bloques sueltos sea mayor que la petición realizada, los algoritmos no pueden encontrar un número de bloques contiguos en el que insertar la petición.

 

Otro cambio que podemos realizar, y con el que observaremos como se trabajan los distintos algoritmos en condiciones de fragmentación, es el llegar a la situación de fragmentación (como se ha indicado anteriormente), y en ese momento hacer cambios en el algoritmo de ajuste utilizado.

 


Comenzar a trabajar.

Desde aquí ya sí puedes empezar a trabajar con la herramienta.