Transformación de Direcciones de Memoria en un Sistema con Paginación.

 

  ¿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 herramienta simula como se transforman direcciones de memoria en un sistema operativo que administra la memoria mediante un sistema de paginación.

Pretendemos que el usuario de esta herramienta, comprenda base de funcionamiento del algoritmo de transformación de direcciones utilizado en el sistema anterior. Aconsejamos el uso de esta herramienta, junto con la explicación teórica de los sistemas de administración de memoria por paginación.

 

 


¿Hasta dónde puedo llegar?

La herramienta es capaz de simular un sistema que trabaje con programas que son capaces de direccionar un máximo de 16 paginas. Por lo tanto, dispondrá de una tabla de paginas con 16 entradas.

En esta tabla de páginas, encontraremos una correspondencia entre las paginas que es capaz de direccionar el proceso propietario y las páginas físicas existentes en disco.

El sistema que simulamos tiene una capacidad de 256 páginas reales en memoria física, así es que, el conjunto de páginas que tiene el proceso (las que aparecen en la tabla de páginas) en realidad, estará mapeado sobre estas las 256 páginas de memoria física.

Para acelerar el proceso, la herramienta dispondrá de una memoria asociativa. Esta memoria asociativa será capaz de almacenar hasta cuatro direcciones de las que se encuentren en la tabla de páginas.

Teniendo en cuenta lo anteriormente aclarado, el proceso de transformación de una dirección solicitada por un proceso, hasta conseguir la dirección real sobre la memoria física va a ser el siguiente: La dirección que solicita el proceso está compuesta por dos partes: un número de pagina (que como hemos dicho estará entre 0 y 15) y un desplazamiento (en palabras) dentro de esta página.
Esta dirección ha de transformarse en la dirección de una página de memoria física y el desplazamiento a partir de esta. Entonces el procedimiento de calculo de la dirección real será el siguiente:

  1. Un proceso solicita el contenido de una celda de memoria al sistema operativo. Para ello, aporta el número de página (el proceso solo es capaz de direccionar 16 páginas, entonces la petición estará entre 0 y 15) en la que se encuentra su petición y un desplazamiento a partir de la dirección de comienzo de esta pagina.
  2. El sistema operativo intentará satisfacer la petición desde la memoria asociativa. Buscará una entrada con la página solicitada en esta memoria. Si la encuentra, formará la dirección real (física) con el número de página real más el desplazamiento solicitado y concluirá el proceso.
  3. Si la petición no puede ser satisfecha desde la memoria asociativa, el sistema operativo procederá a buscarla en la tabla de páginas (la tabla esta indizada, de manera que por ejemplo, la dirección real de la página 3 está en la celda 3). Cuando la encuentre, tomará la página real en la que se encuentra y compondrá la dirección real a partir de la entrada en la tabla y el desplazamiento solicitado. El proceso transformación concluirá, y podremos seguir creando solicitudes.

La herramienta va a mostrar una serie de estadísticas en cuanto al acierto de las peticiones que podemos resolver desde la memoria asociativa. Nos mostrará datos sobre el número total de peticiones, el número de aciertos y el porcentaje en tantos por cien que representan estos aciertos.

El usuario podrá determinar que grupo de celdas de la tabla de paginas estarán en la memoria asociativa.
Las celdas de la tabla de paginas están hechas cuatro grupos (de la 0 a la 3, de la 4 a la 7, de la 8 a la 11 y de la 12 a la 15), cualquiera de estos grupos puede entrar en la memoria asociativa. Por hacer más parecido el funcionamiento a la realidad, los cuatro grupos de celdas tienen una probabilidad de petición asignada. Así, las celdas de la 12 a la 15 tienen un 7% de probabilidad de ser solicitadas, las celdas de la 8 a la 11 tienen un 14%, las celdas de la 4 a la 7 un 28% y las de la 0 a la 3 tienen un 52%.
Con todo esto, el usuario puede comprobar como si las celdas de la memoria asociativa no son muy solicitadas, el porcentaje de uso de esta disminuye y su existencia deja de tener sentido.

Otro dato que el usuario puede controlar es el número de celdas de la memoria asociativa que están funcionando. El usuario puede hacer que de las cuatro celdas, estén funcionando cuatro, tres (las tres primeras), dos (las dos primeras), una (la primera) o ninguna. Con ello la búsqueda solo se realizará en las celdas activas. Si el dato buscado está en las que no están activas, este no podrá ser servido desde esta memoria.

La herramienta estará funcionando hasta que la detengamos pulsando un botón para esto o la reiniciemos con otro encargado de esta otra tarea.

 


¿Que nos muestra la Simulación?

En la ilustración 1, podemos observar una instantánea del aspecto de la herramienta en pleno funcionamiento, 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 encargara 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. Mas 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 "Celdas activas en Asoc:". Este parámetro es una lista de la que el usuario podrá seleccionar un número entre 0 y 4.
El número seleccionado indicará las celdas de la memoria asociativa que van a estar activas. Si seleccionamos el valor 1, solo estaría activa la primera celda de la tabla de páginas, de tal manera que las solicitudes que se encuentren en las otras tres celdas no podrán ser servidas desde esta tabla.

Después viene un parámetro que se denomina "Grupo T.P.:". Este parámetro es también una lista, en ella podremos seleccionar qué rango de celdas de la tabla de páginas, estarán en la memoria asociativa.
Los rangos posibles vienen determinados por los distintos grupos de probabilidades posibles, es decir, de la celda 0 a la 3, de la 4 a la 7, de la 8 a la 11 y de la 12 a la 15.

 


El Banco de Pruebas

Con los distintos valores que puede tomar el parámetro Grupo TP, podemos controlar el uso que se hace de la memoria asociativa. Podemos ver que si en la memoria asociativa hay celdas que no son muy solicitadas (las de los dos últimos grupos de celdas de las tablas de páginas), el porcentaje de aciertos disminuye rápidamente (la memoria asociativa no estaría aportando casi nada al sistema).

También podemos mantener en la memoria asociativa el primer grupo de páginas y variar el tamaño de la memoria asociativa, por ejemplo a la mitad del contenido. Con esto, podremos observar como el porcentaje de aciertos, se va ajustando (con el paso del tiempo), justo a la mitad del establecido para el grupo de páginas que tengamos en la asociativa.


Comenzar a trabajar.

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