Sistemas de Paginación / Segmentación Ofrecen las ventajas de las dos técnicas de organización del almacenamiento virtual [7, Deitel]. El tamaño de los segmentos es múltiplo del de las páginas. No es necesario que todas las páginas de un segmento se encuentren al mismo tiempo en el almacenamiento primario. Las páginas de almacenamiento virtual, que son contiguas en este almacenamiento, no necesitan ser contiguas en el almacenamiento real. El direccionamiento es tridimensional con una dirección de almacenamiento virtual “v = (s,p,d)”: • “s” es el número del segmento. • “p” es el número de página. • “d” es el desplazamiento en la página donde se encuentra asignado el elemento deseado. Inicio: Fin: Traducción Dinámica de Direcciones en Sistemas de Paginación / Segmentación Se considera la traducción dinámica de direcciones de virtuales a reales en un sistema de paginación / segmentación utilizando la combinación de transformación asociativa / directa (ver Figura 3.31 [7, Deitel]).

El proceso en ejecución hace referencia a la dirección virtual v = (s,p,d) (ver Figura 3.32 [7, Deitel]).

Las páginas de referencia más reciente tienen entradas en un almacenamiento asociativo. Se realiza una búsqueda asociativa para intentar localizar (s,p) en el almacenamiento asociativo: • Si se encuentra (s,p), entonces el marco de página “p ’ ” en el cual reside dicha página en la memoria real, se concatena al desplazamiento “d” para formar la dirección de memoria real “r” correspondiente a la dirección virtual v= (s,p,d). • Si no se encuentra (s,p), entonces: o La dirección base “b” de la tabla de segmentos se añade al número de segmento “s” formando la dirección “b + s” de la entrada de la tabla de mapa de segmentos para el segmento “s” de la memoria real. o La entrada de la tabla de mapa de segmentos indica la dirección base “s ’ ” de la tabla de páginas para el segmento “s”. o El número de página “p” se añade a “s ’ ” formando la dirección “p + s ’ ” de la entrada en la tabla de páginas para la página “p” del segmento “s”:  Indica que “p ’ ” es el número del marco correspondiente a la página virtual “p”.  “p ’ ” se concatena con el desplazamiento “d” formando la dirección real “r ” que corresponde a la dirección virtual v = (s,p,d). Si el segmento “s” no se encuentra en el almacenamiento primario se produce un “fallo de pérdida de segmento”, cuyo caso el S. O. localiza el segmento en el almacenamiento secundario, crea una tabla de páginas para el segmento y carga la página apropiada en el almacenamiento primario, pudiendo producir reemplazos de páginas. Si el segmento “s” está en el almacenamiento primario y si la referencia a la tabla de mapa de páginas indica que la página deseada no se encuentra en el almacenamiento primario, se produce un “fallo de pérdida de página”, en tal caso el S. O. obtiene el control, localiza la página en el almacenamiento secundario y la carga, pudiendo reemplazar otra página. Si una dirección de almacenamiento virtual está más allá del final del segmento se genera un “fallo de desbordamiento de segmento”, el que debe ser atendido por el S. O. Si los bits de protección indican que la operación que se va a ejecutar en la dirección virtual referida no se permite, se genera un “fallo de protección de segmento”, el que también debe ser atendido por el S. O. Si se utiliza un mecanismo de transformación directa pura, manteniendo el mapa completo dentro del almacenamiento primario, la referencia promedio de almacenamiento virtual requeriría: • Un ciclo de almacenamiento para acceder a la tabla de mapa de segmentos. • Un segundo ciclo de almacenamiento para hacer referencia a la tabla de mapa de páginas. • Un tercer ciclo de almacenamiento para referenciar al elemento deseado del almacenamiento real. Cada referencia a un elemento comprende tres ciclos de almacenamiento: • El sistema correría casi a 1 / 3 de su velocidad nominal. • La traducción de direcciones insumiría 2 / 3 del tiempo. Con la utilización de registros asociativos (por ej. 16 registros), se logran velocidades de ejecución del 90 % o más de la velocidad total de procesamiento de sus procesadores de control. La estructura de tablas de procesos, de mapas de segmentos y de mapas de páginas puede consumir un porcentaje importante del almacenamiento primario cuando se ejecutan un gran número de procesos. La traducción procede mucho más rápido si todas las tablas están en el almacenamiento primario, lo que resta espacio para los procesos. Inicio: Fin: Compartimiento en un Sistema de Paginación / Segmentación Se implementa disponiendo entradas en tablas de mapa de segmentos para diferentes procesos que apunten a la misma tabla de mapa de páginas (ver Figura 3.33 [7, Deitel]).

El compartimiento requiere una administración cuidadosa por parte del S. O., ya sea en sistemas de paginación, segmentación o paginación / segmentación, pues se debe considerar qué sucedería si una nueva página reemplazara a otra página compartida por muchos procesos.

SEGMENTACION/PAGINACION

    Tanto la  Segmentacion como la paginación ofrecen significativas ventajas, algunos sistemas (Multics y la Serie 370 de IBM) combinan ambas técnicas en donde los segmentos tienen un tamaño multiplo de pagina. 
    Este método utiliza Segmentación y Paginación tal y como su nombre lo indica, el proceso es el siguiente:  - Se hace la solicitud de acceso por medio de una direccion “V” la cual contiene los campos Segmento, Pagina y Desplazamiento. Con el campo Segmento, lo que se trata es de accesar a una Tabla de segmentos, cada campo de dicha tabla apunta directamente a la tabla de paginas asignada para ese segmento conteniendo una direccion que será sumada a una direccion en la Tabla Asociativa para por fin formar una direccion real con el desplazamiento de “V”. 

En un sistema con un número muy grande de procesos, segmentos o paginas, ésta estructura puede consumir una parte muy importante de la memoria real. La cuestión es que la traduccion de direcciones puede realizarse con rapidez pero si se tienen demasiadas tablas, el sistema puede soportar menos procesos y bajar su rendimiento

.2 Sistema de paginación

Los sistemas de paginación son los utilizados para dividir los programas en paginas y así poder utilizar programas de mayor tamaño que la memoria principal, ya que las paginas no son cargadas todas a la vez en la memoria principal. l traspaso de datos entre los distintos niveles de almacenamiento se realiza eventualmente en paginas de longitud fija, tal y como ocurre en la actualidad en los sistemas de memoria virtual. El tamaño de la pagina es un parámetro del sistema y no esta determinado por las longitudes de registro elegidas por los programadores. Al usarse la paginación, los datos serán lógicamente independientes del tamaño de pagina, pero tendrán que ser físicamente “empaquetados” para que encajen en las paginas.

En los casos en que se usa hardware de almacenamiento a niveles múltiples, el traspaso se hace por bloques, semejantes a las paginas. Esta técnica se conoce con el nombre de promoción o staging.

7.3 Segmentación

El objetivo de la segmentación al igual que el de la paginación es el de dar la facilidad de realizar programas que sean más grandes que la memoria principal, pero la segmentación, a diferencia de la segmentación, puede dividir los programas en segmentos que no necesariamente sean del mismo tamaño, pero para poder cargar un segmento en memoria al igual que para cargar una pagina debe de existir el suficiente espacio contiguo de memoria principal para cangarlo.

La segmentación en ocasiones puede ser usada al mismo tiempo que la paginación.


Google