Definición


La técnica de memoria segmentada permite dar la ilusión de que una space address empieza en la posición cuando en realidad ese address space esta reubicado en algún lugar en otra dirección física. Donde el proceso que transforma la virtual address en la physical address es exactamente la técnica conocida como address translation.

Address translation con registros de base y segmento

Definición


Debido a que esta ubicación sucede en run-time y debido a que se puede mover el address space incluso una vez que el proceso empezó a ejecutarse la técnica habitualmente se refiere como realocación dinámica.

Donde la idea es usar dos registros de hardware dentro de cada cpu:

  • Registro base
  • Registro límite o segmento

Este par base-limite va a permitir que el address space pueda ser ubicado en cualquier lugar deseado de la memoria física, y se hará mientras el sistema operativo se asegura que el proceso solo pueda acceder a su address space

En esta configuración, cada programa es escrito y compilado como si fuera cargado en la dirección física 0. A su vez cuando se inicia la ejecución del programa el OS decide en que lugar va a carga el mismo y para hacerlo setea el registro base en un determinado valor.

Link to original

Address Translation con Tabla de segmentos

Definición


A diferencia del uso de un único par de registros de base y segmento, esté método tiene un arreglo de pares de registros de base y segmento por cada proceso.

Cada entrada en el arreglo controla una porción de virtual address space. La memoria física de cada segmento es almacenada continuamente, pero distintos segmentos pueden estar ubicados en distintas partes de la memoria física

Una dirección virtual tiene dos componentes

  • Un número de segmento
  • Un offset de segmento

El número de segmento es el índice de la tabla para ubicar el inicio del segmento en la memoria física. El registro bound es chequeado contra la suma del registro por protección, previniendo que el proceso lea o escriba fuera de su región de memoria

En una dirección virtual utilizando esta técnica, los bit de más alto orden son utilizados como índice en la tabla de segmentos. El resto se toma como offset y es sumado el registro base y comparado contra el registro de segmento. El número de segmentos depende de la cantidad de bits que se utilizan como índice.

Link to original

Traslación de direcciones con memoria paginada

Definición


Una alternativa a la memoria segmentada planteada por métodos como Registros de base y segmento y Tabla de segmentos, es la memoria paginada. Con la paginación, la memoria es reservada en pedazos de tamaño fijo llamados page frames.

El address translation es similar a como se trabaja con la segmentación. En vez de tener una página de segmentos cuyas entradas contienen punteros a segmentos, hay una tabla de páginas por cada proceso cuyas entradas contienen punteros a las page frames.

Teniendo en cuenta que los page frames tienen un tamaño fijo, y son potencia de 2, las entradas en la page table sólo tienen que proveer los bit superiores de la dirección de la page frame. De esta forma van a ser más compactos. No es necesario tener un límite, la página entera se reserva como una unidad

Link to original

Traslación multinivel

Definición


Si se desea implementar un mecanismo eficiente de paginación, posiblemente elegir un arreglo no sea la solución más correcta. Un árbol o un hash table son más apropiados ya que son usados en sistemas más modernos

Muchos sistemas utilizan técnicas de address translation basados en árboles, si bien los detalles varían de sistema en sistema y la terminología también es un poco confusa, sin embargo estos sistemas que se describirán a continuación tiene propiedades bastantes similares. Estas técnicas soportan

Si bien todos los sistemas multinivel de address translation usan paginación en el nivel más bajo del árbol. La principal diferencia entre ellos es como se llega a la page table a nivel de las hojas del árbol, ya sea usando segmentación más paginación, múltiples niveles de paginación, segmentación más múltiples niveles de paginación.

Link to original

Eficiencia


Uno de los problemas con address translation reside en la velocidad de la traslación para ello se utilizan técnicas que mejoran esta velocidad. Para mejorar el address translation se utiliza un mecanismo de hardware llamado Translation-Lookaside Buffer