Segmentos y Desplazamiento de la memoria

Como se guarda la informacion atravez de segmentos y desplazamiento en la memoria

La segmentacion es un esquema para implementar espacios de direcciones virtuales que se usaba en los primeros computadores de tiempo compartido.pese a que hoy en dia se encentra en desuso. cada proceso tienen su propio espacio de direcciones virtales, independientemente del resto de los procesos. este espacio de direcciones virtuales se descompone en cuatro areas llamadas segmento. los segmentos del espacio de direcciones virtuales de un proceso son:

  • Un segmento de codigos.
  • Un segmento de datos.
  • Un segmento de pila.
  • Un segmento de sistema, invisible para la aplicacion, en donde reside el nucleo.

En una organizacion segmentada, los segmentos residen en un area contigua de la memoria real de la computadora. cuando un proceso accesa la memoria siempre suministra una direccion en su espacio de direcciones virtuales. el procesador debe traducir esa direccion a su posicion efectiva en la memoria real del computador, es decir a su direccion real

la tabla de segmentos del procesador:

Para traducir las direcciones virtuales a direcciones reales, el procesador posee una tabla de segmentos con 4 filas. cada una de estas filas describe uno de los 4 segmentos del programa en ejecucion. para cada segmento se indica:

  • Base: direccion virtual en donde comienza (incluyendo esta direccion)
  • Limite: direccion virtual en donde finaliza (incluyendo esta direccion)
  • Desplazamiento: desplazamiento que hay que sumar a una direccion real. se calcula como la direccion de comienzo del segmento en la memoria real menos la direccion virtual de inicio del segmento.
  • Atributos del segmento: lectura/escritura, solo lectura e invisible (accesible solo por el nucleo)

Traduccion de direcciones virtuales:

En cada acceso a la memori un proceso especifica una direccion virtual. el hardware del procesador traduce esta direccion virtual a una direccion real utilizando un conjunto de registros del procesador que almacena la tabla de segmentos del proceso en ejecucion. esta traducion se lleva a cabo de la sigiente forma: el hardware del procesador compara la direccion virtual especificada con la base y el limite de cada uno de los segmentos.

Si la direccion (virtual) cae dentro de uno de los segmentos entonces la direccion real se obtiene. si la direccion no cae dentro de ningun de los segmentos entonces se produce una  interrupcion y proceso se aborta con un mensaje no muy explicativo que dice "segmentation fault.

Direccionamiento segmentado:

Expresa las direcciones mediante dos palabras de 16 bits, denominadas desplazamiento y segmento que, por consiguiente, pueden ser representadas mediante un hexadecimal de cuatro cifras en el rango 0000-ffffh. por ej: suponiendo que el desplazamiento y el segmento fuesen respectivamente abcdh-e1fah. esta forma de representacion segmentada de las direcciones es en realidad una imagen de como son manejadas internamente en el procesador.

Conclucion:

Una memoria se reprecentaria como una regilla de hileras y filas  y formarian un entrelazado entre ellas. En la que las hileras serian los segmentos y las filas el desplazamiento ,dentro del segmento. un ejemplo mas fasil seria : tenemos cuatro hileras(A,B,C,D) y cuatro filas (1,2,3,4) la direccion es B3 se ubicaria en la hilera B en la fila 3.

fm!

Comment Stream