Paginación, Segmentación y Fragmentación

27
SISTEMAS OPERATIVOS PAGINACIÓN, SEGMENTACIÓN Y FRAGMENTACIÓN Keyner Abarca Natalia Ludeña Chistopher Ortega

description

Sistemas Operativos

Transcript of Paginación, Segmentación y Fragmentación

SISTEMAS OPERATIVOS

PAGINACIÓN, SEGMENTACIÓN Y FRAGMENTACIÓN

Keyner AbarcaNatalia Ludeña

Chistopher Ortega

La paginación consiste en considerar el espacio de direcciones lógicas de cada proceso como un conjunto de bloques de tamaño consistente llamados paginas. Cada dirección lógica manejada para un proceso estará conformada por un par de valores [pagina: desplazamiento].

La memoria física se compone en bloques de tamaño fijo denominados marcos.

La memoria lógica también se compone en bloques del mismo tamaño denominados páginas

P D

número de página desplazamiento en la página

m - n

n

Un apuntador a tabla de páginas se almacena con los demás valores de registro en el bloque de control de procesos.

Cuando se le dice al despachador que inicie un proceso, debe recargar los registros del usuario y definir los valores correctos de la tabla de páginas de hardware a partir de la tabla de páginas de usuario que esta almacenada.

La tabla se implementa como un conjunto de registros dedicados . Estos registro se deberán construirse con una lógica de muy alta velocidad para que la traducción de direcciones sea eficiente.

El uso de los registros para la tabla de páginas es satisfactorio si la tabla es razonablemente pequeña.

Los registros asociativos se conforman por: una llave y un valor, o buffers de traducción de vista lateral (TLB)

Se utiliza para una búsqueda rápida (cache de hardware especial )

Si el número de páginas no están en los registros, se debe hacer una referencia de memoria a la tabla de páginas

Protección En un ambiente con paginación se realiza mediante bits de

protección Éstos se mantienen en la tabla de páginas Un bit puede definir que una página sea de lectura y escritura, o

sólo de lectura. Cada referencia a la memoria pasa por la tabla de páginas para

encontrar el número correcto de marco. Los bits de protección pueden examinarse para verificar trampas

de hardware.solución: hardware, bits de protección distintos para

cada clase de acceso Bit de validez-invalidez: un bit más a cada entrada de la tabla de

páginas. Si es válido indica que la página asociada está en la página de direcciones lógicas del proceso.

Registro de longitud de la tabla de páginas (PTLR)->hardware, par indicar el tamaño de una tabla de páginas.

Paginación con múltiples niveles Utiliza un algoritmo de paginación con dos niveles Una tabla de páginas misma también se pagina. Dirección lógica: número de página y desplazamiento de página. El número de página se subdivide en otro número de página y un

desplazamiento. La arquitectura VAX soporta paginación con dos niveles. La VAX es una máquina de 32 bits, tamaño de página 512 bytes.

El espacio de direcciones lógicas de un proceso se divide en 4 secciones iguales.

La arquitectura SPARC soporta un esquema de paginación con tres niveles.

La arquitectura Motorola 68030 soporta una esquema de paginación con cuatro niveles.

Esquema de traducción de direcciones

Esquema de paginación con 3 y cuatro niveles

Rendimiento del sistema con paginación con niveles múltiples Cada nivel se almacena como una tabla

distinta en memoria La conversión de una dirección lógica en

una física puede requerir cuatro accesos a memoria.

La técnica caché nuevamente genera dividendos, y el rendimiento se mantiene razonalbes.

Tiempo a acceso a memoria.

Tablas de páginas invertida Tiene una entrada por cada página (marco) real de

memoria. Ordenada por dirección física, y búsqueda por dirección virtual.

Entrada: dirección virtual de la página almacenada en dicha ubicación de memoria real, con información acerca del proceso que posee dicha página.

Sólo hay una tabla de páginas en el sistema, y sólo tiene una entrada por cada página de la memoria física.

Reduce la cantidad de memoria necesaria para almacenar cada tabla de páginas, pero incrementa la cantidad de tiempo necesario para buscar en la tabla cuando ocurre una referencia a una página.

Se puede usar una tabla de hash para limitar la búsqueda a una (o unas pocas) entradas de tabla de páginas.

Páginas compartidas Compartir un código común El código compartido debe estar en el mismo lugar en el

espacio de direcciones lógicas de todos los procesos Código reentrante:

- no puede modificarse a sí mismo- nunca cambia durante la ejecución

Dos o más procesos pueden ejecutar el mismo código al mismo tiempo.

Se pueden compartir: editores de texto, compiladores, sistemas de bases de datos, etc.

Cada proceso tiene una copia separada del código

SEGMENTACIÓ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.

Vista del usuario de un programa

En la paginación el usuario especificaba solamente una única dirección, que el hardware particionaba en número de página y desplazamiento, siendo todo ello invisible al programador.

HARDWARE La transformación se efectúa por medio de una tabla de

segmentos. Cada entrada de la tabla de segmentos tiene una base de

segmento y un límite El desplazamiento d de la dirección lógica tiene que estar

comprendido entre 0 y el límite de segmento. En caso contrario se produce una excepción al sistema operativo

Implementación de tablas de segmentos

Al igual que la tabla de páginas, la tabla de segmentos puede situarse bien en registros rápidos o bien en memoria

Con tantos segmentos no es factible mantener la tabla de segmentos en registros, de modo que tiene que mantenerse en memoria

Compartición y protección Una ventaja importante de la segmentación es la

asociación de la protección con los segmentos El hardware verificará los bits de protección asociados a

cada entrada en la tabla de segmentos para impedir accesos ilegales a memoria

Otra ventaja de la segmentación está relacionada con la compartición del código y datos.

Los segmentos se comparten cuando las entradas en las tablas de segmentos de 2 procesos diferentes apuntan a las mismas posiciones físicas.

Fragmentación El sistema operativo tiene que encontrar y asignar memoria

para todos los segmentos de un programa de usuario Esta situación es similar a la paginación, excepto en el

hecho de que los segmentos son de longitud variable; las páginas son todas del mismo tamaño.

La segmentación puede ocasionar entonces fragmentación externa, cuando todos los bloques libres de memoria son demasiado pequeños para acomodar a un segmento