domingo, 6 de octubre de 2013

Segmentación en los Sistemas Operativos

La segmentación permite al programador contemplar  la memoria como si constara de varios espacios de direcciones o segmentos. Los segmentos pueden ser de distintos tamaños, incluso de forma dinámica. Las referencias a la memoria constan de una dirección de la forma (número de segmento, desplazamiento).

Definición: La segmentación es un esquema de administración de la memoria que soporta la visión que el usuario tiene de la misma.

Un espacio de direcciones lógicas es una colección de segmentos.
Cada segmento tiene un nombre y una longitud.
Las direcciones especifican tanto el nombre del segmento como el desplazamiento dentro del segmento.

Por lo tanto, el usuario especifica cada dirección mediante dos cantidades: un nombre de segmento y un desplazamiento.


Esta organización ofrece al programador varias ventajas sobre un espacio de direcciones no segmentado:

1.   Simplifica la gestión de estructuras de datos crecientes. 
2.   Permite modificar y recopilar los programas independientemente.
3.   Se presta a la compartición entre procesos. 
4.   Se presta a la protección. 

Organización

En el estudio de la segmentación, se llegó a la conclusión de que cada proceso tiene su propia tabla de segmento y que, cuando todos los segmentos se encuentran en la memoria principal, la tabla de segmentos del proceso se crea y se carga en la memoria. Cada entrada de la tabla contiene la dirección de comienzo del segmento correspondiente de la memoria principal, así como su longitud.

La misma estructura se necesitará al hablar de un esquema de memoria virtual basado en la segmentación donde las entradas de la tabla de segmentos pasan a ser más complejas. Puesto que sólo algunos de los segmentos de un proceso estarán en la memoria principal, se necesita un bit en cada entrada de la tabla de segmentos para indicar si el segmento correspondiente está presente en la memoria principal. Si el bit indica que el segmento está en la memoria, la entrada incluye también la dirección de comienzo y la longitud del segmento.


Otro bit de control necesario en la entrada de la tabla de segmentos es un bit de modificación que indique si el contenido del segmento correspondiente ha sido modificado desde que se cargó por última vez en la memoria principal. Si no ha habido cambios, no será necesario escribir en el disco el segmento cuando llegue el momento de reemplazarlo en el espacio que ocupa actualmente.

No hay comentarios:

Publicar un comentario

Emisora de Radio