paginaciÓn y segmentaciÓn

23
PAGINACIÓN Y SEGMENTACIÓN Sistemas Operativos Jorge Boscan Gregory Carrasco Daniel Morillo

Upload: weldon

Post on 07-Feb-2016

86 views

Category:

Documents


5 download

DESCRIPTION

PAGINACIÓN Y SEGMENTACIÓN. Sistemas Operativos. Jorge Boscan Gregory Carrasco Daniel Morillo. ADMINISTRACIÓN DE LA MEMORIA. Depende de factores como del diseño del Hardware del sistema. PAGINACIÓN. SEGMENTACIÓN. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: PAGINACIÓN Y SEGMENTACIÓN

PAGINACIÓN Y SEGMENTACIÓNSistemas Operativos

Jorge BoscanGregory CarrascoDaniel Morillo

Page 2: PAGINACIÓN Y SEGMENTACIÓN

ADMINISTRACIÓN DE LA MEMORIA

Depende de factores como del diseño del

Hardware del sistema

PAGINACIÓN SEGMENTACIÓN

Dividen los programas en pequeñas páginas , y a la memoria en marcos de página.

Permite que el espacio de direcciones lógicas de un proceso no sea contiguo.

Tanto la memoria física como la memoria virtual se dividen en bloques (en general de distinto tamaño, llamados segmentos), que son las que van a disco a medida que se va llenando la memoria física, o se recuperan del disco cuando vuelven a ser necesarias.

Page 3: PAGINACIÓN Y SEGMENTACIÓN

Segmentación.En un esquema de segmentación un espacio de direcciones lógicas es

un conjunto de segmentos. Cada segmento tendrá un nombre y un largo.

La segmentación permite al programador contemplar la memoria como si constara de varios espacios de direcciones o segmentos.

Los segmentos pueden ser de distintos tamaños, incluso de forma dinámica. Las referencias a la memoria constan de una dirección de la forma (número de segmento, desplazamiento).

Page 4: PAGINACIÓN Y SEGMENTACIÓN

Ventajas.

Esta organización ofrece al programador varias ventajas sobre un espacio de direcciones no segmentado:

1. Simplifica la gestión de estructuras de datos crecientes.

2. Permite modificar y recopilar los programas independientemente.

3. Se presta a la compartición entre procesos.

4. Se presta a la protección.  

Page 5: PAGINACIÓN Y SEGMENTACIÓN

Organización.

En el estudio de la segmentación simple, se llegó a la conclusión de que cada proceso tiene su propia tabla de segmento y que, cuando todos los segmentos se encuentran en la memoria principal, la tabla de segmentos del proceso se crea y se carga en la memoria. Cada entrada de la tabla contiene la dirección de comienzo del segmento correspondiente de la memoria principal, así como su longitud.

La misma estructura se necesitará al hablar de un esquema de memoria virtual basado en la segmentación donde las entradas de la tabla de segmentos pasan a ser más complejas. Puesto que sólo algunos de los segmentos de un proceso estarán en la memoria principal, se necesita un bit en cada entrada de la tabla de segmentos para indicar si el segmento correspondiente está presente en la memoria principal. Si el bit indica que el segmento está en la memoria, la entrada incluye también la dirección de comienzo y la longitud del segmento.

Page 6: PAGINACIÓN Y SEGMENTACIÓN

Protección y Compartimiento.

Además la segmentación se presta a la implementación de políticas de protección, puesto que cada entrada de la tabla de segmentos incluye la longitud, además de la dirección base, un programa no podrá acceder por descuido a una posición de la memoria principal más allá de los límites de un segmento.

Para conseguir la compartición, es posible que un segmento se referencia desde las tablas de segmentos de más de un proceso. Este mismo mecanismo es válido en un sistema de paginación.

Page 7: PAGINACIÓN Y SEGMENTACIÓN

SEGMENTACIÓN

CPU s

+

limite base

d

<

tabla de segmentos

no memoria física

trampa: error de direccionamiento

Page 8: PAGINACIÓN Y SEGMENTACIÓN

Hardware de segmentación

Una dirección lógica consta de dos partes: un número de segmentos (s), y un desplazamiento de dicho segmento ,(d). El número de segmentos se utiliza como un índice en la tabla de segmentos. El desplazamiento (d) de la dirección lógica debe estar entre 0 y el limite del segmento. De no ser así, se ocasiona una trampa al sistema operativo (intento de direccionamiento lógico más allá del final del segmento). Si este desplazamiento es legal, se agrega a la base del segmento para producir la dirección en la memoria física del byte deseado.

Page 9: PAGINACIÓN Y SEGMENTACIÓN

Ejemplos:Dada la siguiente tabla de segmentos cuales son las direcciones físicas en las direcciones lógicas.

Segmentos Base Limite

0 219 600

1 2300 14

2 90 100

3 1327 580

4 1952 96

S D

a) 0 430

b) 1 10

c) 2 500

d) 3 400

e) 4 112

Page 10: PAGINACIÓN Y SEGMENTACIÓN

a) s=0; b=219; L= 600; d=430

d < L430 <600219+430= 649

b) s=1; b=2300; L= 14; d=10

d < L10 <142300+10= 2310

c) s=2; b=90; L= 100; d=500

d < L500 <100“ERROR”

d) s=3; b=1327; L= 580; d=400

d < L400 < 5801327+400= 1727

e) s=4; b=1952; L= 96; d=112

d < L112 <96“ERROR”

Page 11: PAGINACIÓN Y SEGMENTACIÓN

S2

S0

S3

S4

S1

90

190

219

819

1327

1907

1952

2048

2300

2314

Page 12: PAGINACIÓN Y SEGMENTACIÓN

La segmentación Paginada ayuda al proceso de gestión de memoria • Puede hacerse una combinación de segmentación y paginación

para obtener las ventajas de ambas. En lugar de tratar un segmento como una unidad contigua, este puede dividirse en páginas. Cada segmento puede ser descrito por su propia tabla de páginas.

• Los segmentos son usualmente múltiplos de páginas en tamaño, y no es necesario que todas las páginas se encuentren en memoria principal a la vez; además las páginas de un mismo segmento, aunque se encuentren contiguas en memoria virtual; no necesitan estarlo en memoria real.

Segmentación Paginada

Page 13: PAGINACIÓN Y SEGMENTACIÓN

• SMT (tabla de mapas de segmentos): una para cada proceso. En cada entrada de la SMT se almacena la información descrita bajo segmentación pura, pero en el campo de dirección se indicara la dirección de la PMT (tabla de mapas de páginas) que describe a las diferentes páginas de cada segmento.

• PMT (tabla de mapas de páginas): una por segmento; cada entrada de la PMT describe una página de un segmento; en la forma que se presento la pagina pura.

• TBM (tabla de bloques de memoria): para controlar asignación de páginas por parte del sistema operativo.

• JT (tabla de Jobs): que contiene las direcciones de comienzo de cada una de las SMT de los procesos que se ejecutan en memoria.

En el caso, de que un segmento sea de tamaño inferior o igual al de una pagina, no se necesita tener la correspondiente PMT puede arreglarse un bit adicional (S) a cada entrada de la SMT, que indicara si el segmento esta paginado o no.

Segmentación Paginada

Page 14: PAGINACIÓN Y SEGMENTACIÓN

Segmentación Paginada

• Las páginas de almacenamientovirtual, que son contiguas en este almacenamiento, no necesitan sercontiguas en el almacenamiento real.

• El direccionamiento es tridimensional con una dirección de almacenamiento virtual “v=(s,p,d)”:

Page 15: PAGINACIÓN Y SEGMENTACIÓN

Ventajas de la Segmentación• El programador puede conocer las unidades lógicas de su programa, dándoles

un tratamiento particular.• Es posible compilar módulos separados como segmentos el enlace entre los

segmentos puede suponer hasta tanto se haga una referencia entre segmentos.• Debido a que es posible separar los módulos se hace más fácil la modificación

de los mismos. Cambios dentro de un modulo no afecta al resto de los módulos.• Es fácil el compartir segmentos.• Es posible que los segmentos crezcan dinámicamente según las necesidades

del programa en ejecución.• Existe la posibilidad de definir segmentos que aun no existan. Así, no se

asignara memoria, sino a partir del momento que sea necesario hacer usos del segmento.

Un ejemplo de esto, serian los Arrays cuya dimensión no se conoce hasta tanto no se comienza a ejecutar el programa. En algunos casos, incluso podría retardar la asignación de memoria hasta el momento en el cual se referencia el Array u otra estructura de dato por primera vez.

Page 16: PAGINACIÓN Y SEGMENTACIÓN

Desventajas de la Segmentación• Hay un incremento en los costos de hardware y de software para llevar a cabo la

implantación, así como un mayor consumo de recursos: memoria, tiempo de CPU, etc.• Debido a que los segmentos tienen un tamaño variable se pueden presentar problemas de

fragmentación externas, lo que puede ameritar un plan de reubicación de segmentos en memoria principal.

• Se complica el manejo de memoria virtual, ya que los discos almacenan la información en bloques de tamaños fijos, mientras los segmentos son de tamaño variable. Esto hace necesaria la existencia de mecanismos más costosos que los existentes para paginación.

• Al permitir que los segmentos varíen de tamaño, puede ser necesarios planes de reubicación 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 traído fácilmente de nuevo, ya que será necesario encontrar nuevamente un área de memoria libre ajustada a su tamaño.

• La compartición de segmentos permite ahorrar memoria, pero requiere de mecanismos adicionales de hardware y software.

Estas desventajas bien pueden ser minimizadas por la SegmentaciónPaginada, sin embargo esta también tiene desventajas y ventajas

Page 17: PAGINACIÓN Y SEGMENTACIÓN

Segmentación PaginadaVentajas de la segmentación paginadaEl esquema de segmentación paginada tiene todas las ventajas de la segmentación y la paginación:• Debido a que los espacios de memorias son segmentados, se garantiza la

facilidad de implantar la compartición y enlace.• Como los espacios de memoria son paginados, se simplifican las estrategias de

almacenamiento.• Se elimina el problema de la fragmentación externa y la necesidad de

compactación.Desventajas de la segmentación paginada• Las tres componentes de la dirección y el proceso de formación de direcciones

hace que se incremente el costo de su implantación. El costo es mayor que en el caso de segmentación pura o paginación pura.

• Se hace necesario mantener un número mayor de tablas enmemoria, lo que implica un mayor costo de almacenamiento.

Page 18: PAGINACIÓN Y SEGMENTACIÓN

Segmentación Paginada

La Peor de las Desventajas:Sigue existiendo el problema de fragmentación interna de todas o casi-todas las páginas finales de cada uno de los segmentos. Bajo paginación pura se desperdician solo la última página asignada, mientras que bajo segmentación – paginada el desperdicio puede ocurrir en todos los segmentos asignados.

Page 19: PAGINACIÓN Y SEGMENTACIÓN

EjemploMultics

18bit segmentos + 16bit offset. Alineación en words.Si se usa segmenación pura: Segmentos de 16bits -> 64k x 2bytes -> Segmentos de 128kb -> habría mucha segmentación.

kw=kwords= 1024 words = 2048 bytes.Se dividen los segmentos en páginas de 1K words. -> 64kw/1kw -> 64 páginas por segmento -> 6 bits para identificar una página en

un segmento. El offset de una página es de 10 bits, porque 2^10=1024 -> suficiente para

identificar cada word dentro de la página Entonces, el offset del segmento de 16bits esta dividido en 6bits para la página y

10 bits para el offset dentro de la página. La tabla de segmentos tiene una dirección base para la tabla de páginas, y una

dirección base simplemente. Tiene además un campo que indica el tamaño del segmento, y este se compara

directamente con el offset de la dirección original. (Notar como se definen las páginas dentro de los segmentos).Hay un registro general,  que indica dónde comienza la tabla de segmentos.

Page 20: PAGINACIÓN Y SEGMENTACIÓN

• Finalmente, como podría haber 2^18 segmentos y la tabla sería muy grande, se pagina también la tabla de segmentos en 8bits+10 bits. (páginas de 1K)

• Hay una TBL de 16 entradas.

Page 21: PAGINACIÓN Y SEGMENTACIÓN

EjemploIntel 386 y OS/2

1. Cada proceso puede tener 16K segmentos, 8K propios y 8K compartidos.

2. Cada segmentos tiene hasta 4Gb

3. Están paginados en marcos de 4Kb.

4. Hay dos tablas de segmentos, una global y compartidas por todos los 5. procesos (GDT) y otra  privada sólo para el proceso.

6. Las direcciones lógicas tiene 48 bits: 16 para el selector de segmento y 32 para el offset (4Gb por segmento).

7. El selector tiene 13 bits para definir el segmento (8k segmentos), 1 bits para definir si esta en la tabla pública o privada, y 2 bits para protección.

8. Hay 6 selectores, para usar en los programas. El offset esta paginado en dos niveles: 10+10+12 bits. Los marcos pueden estar en RAM o en la memoria Swap.

Page 22: PAGINACIÓN Y SEGMENTACIÓN
Page 23: PAGINACIÓN Y SEGMENTACIÓN

Gracias porsu Atención…