Transformación de Direcciones de Memoria en un Sistema con Segmentació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 segmentació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 segmentació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 segmentos. Por lo tanto, dispondrá de una tabla de segmentos con 16 entradas.

En esta tabla de segmentos, encontraremos una correspondencia entre los segmentos que es capaz de direccionar el proceso propietario y la dirección real de almacenamiento en el disco.

 

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 segmentos.

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 segmento (que como hemos dicho estará entre 0 y 15) y un desplazamiento (en palabras) dentro de este segmento.
Esta dirección ha de transformarse en una dirección de memoria física y el desplazamiento a partir de esta. Entonces el procedimiento de cálculo 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 segmento en el que se encuentra y un desplazamiento a partir de la dirección de comienzo de este.
  2. El sistema operativo intentará satisfacer la petición desde la memoria asociativa. Buscará una entrada con el segmento solicitado en esta memoria. Si la encuentra, formará la dirección real (física) con la entrada de dirección 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 segmentos. Cuando la encuentre 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 segmentos estará en la memoria asociativa.
Las celdas de la tabla de segmentos 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 uso 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 celdas 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 ejecutará 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 parámetros. 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 seleccionásemos el valor 1, solo estaría activa la primera celda de la tabla de segmentos, 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 segmentos, estarán en la memoria asociativa.
Los rangos a seleccionar, 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 segmentos), 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 segmentos 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 segmentos que tengamos en la asociativa.

 


Comenzar a trabajar.

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