Vous êtes sur la page 1sur 4

Memoria virtual segmentada

Mientras que la paginacin es transparente para el programador, y le


proporciona un espacio mayor de direcciones, la segmentacin es
normalmente visible para el programador, y proporciona una forma
lgica de organizar los programas y los datos, y asociarle los privilegios
y atributos de proteccin. La segmentacin permite que el programador
vea la memoria constituida por mltiples espacios de direcciones o
segmentos. Los segmentos tienen un tamao variable, dinmico.
Usualmente, el programador o el sistema operativo asignar programas
y datos a segmentos distintos. Puede haber segmentos de programa
distintos para varios tipos de programas, y tambin distintos segmentos
de datos. Se pueden asignar a cada segmento derechos de acceso y
uso. Las direcciones virtuales estarn constituidas en este caso por un
nmero de segmento (NS) y un desplazamiento dentro del segmento
(DP). El proceso de traduccin de direccin virtual a fsica es anlogo al
de la memoria virtual paginada, con la diferencia que ahora tenemos
una tabla de segmentos (TS) cuyas entradas (denominadas tambin
descriptores de segmento) contienen, adems de los bits de control y la
direccin real del segmento, la longitud L del mismo, ya que los
segmentos tienen longitud variable. En la siguiente figura hemos
representado esquemticamente el proceso de traduccin.

Esta organizacin tiene ciertas ventajas para el programador, frente a un


espacio de direcciones no segmentado:
Simplifica la gestin de estructuras variables de datos. Si el
programador no conoce a priori el tamao que puede llegar a tener una
estructura de datos particular, no es necesario que lo presuponga. A la

estructura de datos se le asigna su propio segmento, y el sistema


operativo lo expandir o lo reducir segn sea necesario.
Permite modificar los programas y recompilarlos independientemente,
sin que sea necesario volver a enlazar y cargar el conjunto entero de
programas. De nuevo, esto se consigue utilizando varios segmentos.
Permite que varios procesos compartan segmentos. Un programador
puede situar un programa correspondiente a una utilidad o una tabla de
datos de inters en un segmento, que puede ser direccionado por otros
procesos.
Se facilita la proteccin. Puesto que un segmento se construye para
contener un conjunto de programas o datos bien definido, el
programador o el administrador del sistema puede asignar privilegios de
acceso de forma adecuada.
Desventajas
Hay un incremento en los costos de hardware y de software para llevar a cabo
la implantacin, as como un mayor consumo de recursos: memoria, tiempo de
CPU, etc.
Debido a que los segmentos tienen un tamao variable se pueden presentar
problemas de fragmentacin externas, lo que puede ameritar un plan de
reubicacin de segmentos en memoria principal.
Se complica el manejo de memoria virtual, ya que los discos almacenan la
informacin en bloques de tamaos fijos, mientras los segmentos son de
tamao variable. Esto hace necesaria la existencia de mecanismos ms
costosos que los existentes para paginacin.
Al permitir que los segmentos varen de tamao, pueden ser necesarios planes
de reubicacin a nivel de los discos, si los segmentos son devueltos a dicho
dispositivo, lo que conlleva a nuevos costos.
No se puede garantizar que al salir un segmento de la memoria, este pueda ser
trado fcilmente de nuevo, ya que ser necesario encontrar nuevamente un
rea de memoria libre ajustada a su tamao.
La comparticin de segmentos permite ahorrar memoria, pero requiere de
mecanismos adicionales da hardware y software.
Estas desventajas tratan de ser minimizadas, bajo la tcnica conocida como
Segmentacin paginada.

3.1. Polticas
segmentadas

de

ubicacin

(placement)

para

memorias

Se identifican los huecos de memoria principal por su tamao (longitud)


y direccin inicial, y se renen en una lista. La poltica de ubicacin
determinar la ordenacin previa de la lista. Una vez que se decide el
hueco donde se ubica el segmento, se actualiza la lista de huecos con el
que se acaba de crear (a no ser que el segmento mida exactamente
igual que el hueco de memoria utilizado). Si no se puede encontrar un
hueco apropiado para el segmento, interviene la poltica de sustitucin.
Las tres polticas de ubicacin de segmentos ms utilizadas son las
siguientes:
3.1.1. Mejor ajuste (best fit)
La lista de huecos se mantiene ordenada en orden creciente de tamao
y se ubica el segmento en el primer hueco con capacidad suficiente para
albergarlo.
3.1.2. Peor ajuste (worst fit)
La lista de huecos se mantiene ordenada en orden decreciente de
tamao y se ubica el segmento en el primer hueco con capacidad
suficiente para albergarlo.
3.1.3. Primer ajuste (first fit)
La lista de huecos se mantiene ordenada en orden creciente de las
direcciones iniciales de los huecos, y se ubica el segmento en el primer
hueco con capacidad suficiente para albergarlo. Con esta poltica,
cuando transcurre un cierto tiempo, se acumulan un nmero elevado de
huecos pequeos prximos a la cabeza de la lista, penalizando las
bsquedas. Esto se puede evitar adelantando cclicamente, despus de
cada bsqueda un hueco la posicin inicial de la lista.

Memoria con segmentos paginados


La segmentacin paginada ayuda al proceso de gestin de memoria puede
hacerse una combinacin de segmentacin y paginacin para obtener las
ventajas de ambas. Cada segmento puede ser descrito por su propia tabla de
pginas.
Los segmentos son usualmente mltiplos de pginas en tamao, y no es
necesario que todas las pginas se encuentren en memoria principal a la vez;
adems las pginas de un mismo segmento, aunque se encuentren contiguas
en memoria virtual; no necesitan estarlo en memoria real.

La segmentacin paginada tiene su propio esquema las pginas de


almacenamiento virtual, que son contiguas en este almacenamiento, no
necesitan ser contiguas en el almacenamiento real.

La segmentacin presenta una serie de propiedades ventajosas para el


programador, sin embargo, la paginacin proporciona una forma ms
eficiente de gestionar el espacio de memoria. Para combinar las ventajas
de ambas, algunos sistemas permiten una combinacin de ambas, es
decir, un sistema virtual con segmentos paginados. El mecanismo de
traduccin de DVs a DFs no es ms que la composicin del mecanismo
de la memoria segmentada y el de la paginada, tal como se muestra en
la siguiente figura:

La Memoria con segmentos paginados permite hacer lo siguiente:

Compartir datos entre procesos mediante el uso de segmentos


compartibles.
Proteccin de datos, el administrador otorga permisos a este segmento.

Ventajas

No hay fragmentacin interna.


Permite un alto grado de multiprogramacin.
Gran espacio virtual para el proceso.
Soporte de proteccin y comparticin

Desventaja

Sobrecarga por gestin compleja de memoria


Incrementa el costo de su implantacin.

Vous aimerez peut-être aussi