Sei sulla pagina 1di 1

SEGMENTACIN

Segmentacin

Un espacio de direcciones lgicas es una coleccin 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 direccin mediante dos cantidades: un nombre de segmento y un desplazamiento, mientras que en la paginacin el usuario especificaba solamente una nica direccin, que el hardware particionaba en nmero de pgina y desplazamiento, siendo todo ello invisible al programador

Por simplicidad de implementacin, los segmentos estn numerados y se referencian por un nmero de segmento en lugar de por un nombre. El programa de usuario se ensambla y el ensamblador construye automticamente segmentos que reflejan el programa de entrada. El cargador toma todos esos segmentos y les asigna nmeros de segmento.

Aunque el usuario ahora puede referenciar los objetos del programa por medio de una direccin de dos dimensiones, la memoria fsica real es todava una secuencia unidimensional de palabras. La transformacin se efecta por medio de una tabla de segmentos.

Una direccin lgica consta de dos partes: un nmero de segmento s y un desplazamiento dentro de ese segmento. El nmero de segmento se utiliza como un ndice en la tabla de segmentos. Cada entrada de la tabla de segmentos tiene una base de segmento y un lmite. El desplazamiento de la direccin lgica tiene que estar comprendido entre 0 y el lmite de segmento. En caso contrario se produce una excepcin al sistema operativo. Si este desplazamiento es posible, se aade a la base para producir la direccin de la tabla deseada en la memoria fsica. La tabla de segmentos es as esencialmente una matriz de pares registros base/lmite. Es posible combinar paginacin y segmentacin para mejorar ambos. La solucin adoptada fue paginar los segmentos. La paginacin elimina la fragmentacin interna y se puede decir que elimina el problema de la asignacin: cualquier marco vaco puede utilizarse para una pgina. Obsrvese que la diferencia entre esta solucin y la segmentacin pura es que la entrada en la tabla de segmentos no contiene la direccin de la base del segmento, sino la direccin de la base de una tabla de pginas para ese segmento.