You are on page 1of 5

Resumen sobre Paginacin, Sistemas Combinados

y Memoria Virtual

Presentado por:
Juan David Meja
Presentado a :
Leonardo Javier Nivia Ruiz

Universidad Cooperativa De Colombia


Ingeniera De Sistemas
Sistemas Operativos
Ibagu- Tolima
2015

PAGINACIN Y SEGMENTACIN
Permiten la ubicacin no contigua de programas para combatir la fragmentacin y
la degradacin de la memoria. Al poder ubicarse de forma no contigua, un
programa ya no necesita un hueco de su tamao, sino que la cantidad total de
memoria libre sea mayor o igual. La ubicacin no contigua requiere dividir los
programas en trozos. En paginacin, que es un caso particular del particionado
fijo, el programa se divide en pginas del mismo tamao. La segmentacin, que es
un caso particular de particionado variable, divide el programa en sus unidades
lgicas (cdigo, pila, datos, etc...), denominadas segmentos. Las direcciones
lgicas de los programas no contiguos presentan una gran independencia de su
ubicacin fsica (direccionamiento virtual), proporcionada sobre la base de tablas
de traduccin de direcciones. Otra ventaja de los programas no contiguos es que
facilita que varios programas compartan trozos entre ellos, por ejemplo el cdigo,
lo que permite un ahorro importante de memoria y de tiempo de carga.
Es necesario soporte hardware para la traduccin de direcciones. Las direcciones
lgicas generadas por el programa se dividen en nmero de pgina (o segmento)
y desplazamiento dentro de la pgina. La traduccin del nmero de pgina (o
segmento) a marco de pgina en memoria fsica (o direccin de comienzo del
segmento) se realiza en tiempo de ejecucin mediante una tabla de pginas (o
tabla de segmentos) asociada al programa, que habitualmente reside en memoria.
Adems, es conveniente hardware adicional para acelerar la traduccin, ya que
cada referencia a memoria implica dos accesos a memoria fsica. Se requiere un
registro apuntador a la base de la tabla de pginas del programa o a la tabla de
segmentos. El clculo de la direccin fsica es ms simple en paginacin, ya que
slo requiere la concatenacin del nmero de marco y el desplazamiento, mientras
que la segmentacin implica una suma de la direccin base del segmento y el
desplazamiento.
Para proteccin, en la paginacin se puede asociar un conjunto de bits a cada
entrada de la tabla de pginas:
bit de slo lectura
bits para restricciones de acceso (en sistemas multiusuario).
En segmentacin, la proteccin es ms sencilla y natural, al establecerse de
acuerdo a divisiones lgicas del programa. La tabla de segmentos especifica
tambin la longitud de cada segmento, lo que proporciona un mecanismo adicional
para tratar errores de direccionamiento fuera de segmento, mediante un trap que
se genera si el desplazamiento supera la longitud del segmento.
Las tablas de pginas o segmentos proporcionan reubicacin dinmica a nivel de
pgina o de segmento. En paginacin, el cargador busca marcos de pgina libres
en memoria, carga las pginas del programa, crea la tabla de pginas con la
correspondencia y carga su direccin en el. En segmentacin el proceso es

similar, salvo que requiere la asignacin de huecos adecuados al tamao de cada


segmento del programa, as como la colaboracin del compilador y el montador
para establecer los tamaos.
La traduccin de direcciones, un mecanismo complejo y crtico para el
rendimiento, ha de gestionarse a nivel hardware, genricamente por una unidad
de gestin de memoria. La memoria libre en segmentacin se gestiona bajo los
criterios de las particiones de tamao variable, mientras que en paginacin es
adecuado un mapa de bits. La paginacin presenta fragmentacin interna en las
pginas. Esto no ocurre en la segmentacin, si bien ahora aparece fragmentacin
externa al utilizar unidades de ubicacin de tamaos diferentes. Ya que el tamao
de los segmentos es tpicamente mayor que el de las pginas, el problema de la
fragmentacin en la segmentacin es ms importante. El mismo mecanismo
permite que los programas compartan pginas o, ms propiamente, segmentos.
Por ejemplo, una nica copia de cdigo puede compartirse por varios programas
simplemente haciendo que las entradas correspondientes al segmento de cdigo
en sus tablas de segmentos (o el conjunto de entradas de sus tablas de pginas,
en paginacin) coincidan. Los bits de slo lectura estarn activados, para evitar
que un programa pueda corromper el cdigo.
SISTEMAS COMBINADOS
Para evitar el problema de la fragmentacin externa en segmentacin pura, y para
evitar el tener cargada una tabla de pginas demasiado grande en paginacin,
aparecen sistemas que combinan paginacin y segmentacin. Se denominan
sistemas de segmentacin paginada o de paginacin segmentada, segn se
entienda que los segmentos se dividen en pginas o que la tabla de pginas se
segmenta en varias, respectivamente. La direccin lgica se divide en tres partes:
nmero de segmento, de pgina y desplazamiento dentro de la pgina. El nmero
de segmento identifica en la tabla de segmentos la direccin base de una tabla de
pginas, que se direcciona mediante el nmero de pgina para obtener el marco
de pgina en memoria. El clculo de la direccin lgica es ahora ms complejo y
lento, requiriendo dos indirecciones. El soporte hardware para traduccin es ahora
an ms importante. Son tambin habituales los sistemas doblemente paginados
(con dos niveles de paginacin), que siguen un esquema parecido. Generalizando,
se pueden concebir sistemas que dividen la direccin virtual en ms de tres
partes, especificando diferentes niveles de paginacin y/o segmentacin.
La necesidad de ejecutar programas de tamao mayor que la memoria fsica
disponible ha originado a lo largo de la historia la introduccin de sofisticados
mecanismos de gestin de la ubicacin de programas en memoria. Un primer
enfoque es el de dividir en programa en varios mdulos, denominados overlays o
solapamientos, a partir de su estructura y cargar dinmicamente slo aquellos que
se necesiten. La carga de un solapamiento la realiza una rutina de enlace, que se
encarga tambin de seleccionar el(los) solapamiento(s) reemplazado(s), si se

requiere espacio para la carga. Tradicionalmente, el programador determinaba qu


rutinas constituan los solapamientos, construa la rutina de enlace y las tablas de
rutinas de los solapamientos, y elaboraba el programa de forma que las llamadas
a las rutinas de los solapamientos se llamasen a travs de la rutina de enlace.
MEMORIA VIRTUAL
La memoria virtual es el mecanismo ms general para la ejecucin de programas
no enteros en memoria. Se basa en un sistema de paginacin (o combinado) en el
que slo un subconjunto de las pginas del programa est cargadas en memoria.
El resto reside en un dispositivo de almacenamiento secundario, anlogamente al
de swap7. La memoria virtual presenta, adicionalmente a su capacidad para
ejecutar programa mayor que la memoria fsica disponible, un conjunto de
interesantes ventajas con respecto a la paginacin con programas enteros:
Reduce la latencia en la ejecucin de los programas, al no tener stos que
cargarse completamente para comenzar a ejecutarse.
Permite gestionar ms eficientemente la memoria fsica. Cualquier espacio libre,
incluso una nica pgina, puede ser aprovechado para cargar un nuevo programa
y comenzar a ejecutarlo. Por otra parte, si una pgina de un programa no se
referencia durante la ejecucin, no habr que cargarla.
Al aumentar el grado de multiprogramacin a costa de reducir el nmero de
pginas cargadas de cada programa, permite incrementar la eficiencia de la CPU
en sistemas multiprogramados.
Ahora la independencia de los programas con respecto a la mquina es
completa. Adems del direccionamiento virtual que aporta la paginacin, la
cantidad de memoria fsica disponible para ejecutar el programa slo es relevante
para la velocidad de ejecucin del programa.
Adems del soporte hardware para la traduccin de direcciones de los sistemas
paginados, la memoria virtual requiere mecanismos hardware adicional:
Espacio para paginacin en un dispositivo de almacenamiento secundario
(disco).
Bit de validez, V. Para cada entrada de la tabla de pginas es necesario un bit
que indique si la pgina correspondiente est cargada en memoria o no.
Trap de fallo de pgina. Cuando la pgina referenciada no est cargada en
memoria, el mecanismo de interrupciones produce el salto a la rutina de
tratamiento del fallo de pgina (que promover la carga de la pgina en memoria).
A diferencia de una interrupcin normal, el fallo de pgina puede ocurrir en
cualquier referencia a memoria durante la ejecucin de la instruccin, por lo que la
arquitectura debe proporcionar los mecanismos adecuados para establecer un
estado del procesador consistente antes de saltar a la rutina de tratamiento.

Informacin adicional para la gestin del fallo de pgina (bit de pgina


modificada, referenciada, etc).

You might also like