Paginación, Segmentación y Fragmentación

76,559 views
75,828 views

Published on

Sistemas Operativos

6 Comments
12 Likes
Statistics
Notes
No Downloads
Views
Total views
76,559
On SlideShare
0
From Embeds
0
Number of Embeds
657
Actions
Shares
0
Downloads
1,963
Comments
6
Likes
12
Embeds 0
No embeds

No notes for slide

Paginación, Segmentación y Fragmentación

  1. 1. <ul><li>SISTEMAS OPERATIVOS </li></ul><ul><li>PAGINACIÓN, SEGMENTACIÓN Y FRAGMENTACIÓN </li></ul><ul><li>Keyner Abarca </li></ul><ul><li>Natalia Ludeña </li></ul><ul><li>Chistopher Ortega </li></ul>
  2. 2. <ul><li>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 ]. </li></ul>
  3. 3. <ul><li>La memoria física se compone en bloques de tamaño fijo denominados marcos. </li></ul><ul><li>La memoria lógica también se compone en bloques del mismo tamaño denominados páginas </li></ul>
  4. 5. P D n ú mero de p á gina desplazamiento en la p á gina m - n n
  5. 7. <ul><li>Un apuntador a tabla de páginas se almacena con los demás valores de registro en el bloque de control de procesos. </li></ul><ul><li>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. </li></ul>
  6. 8. <ul><li>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. </li></ul><ul><li>El uso de los registros para la tabla de páginas es satisfactorio si la tabla es razonablemente pequeña . </li></ul>
  7. 9. <ul><li>Los registros asociativos se conforman por: una llave y un valor, o buffers de traducción de vista lateral (TLB) </li></ul><ul><li>Se utiliza para una búsqueda rápida (cache de hardware especial ) </li></ul><ul><li>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 </li></ul>
  8. 11. Protección <ul><li>En un ambiente con paginación se realiza mediante bits de protección </li></ul><ul><li>Éstos se mantienen en la tabla de páginas </li></ul><ul><li>Un bit puede definir que una página sea de lectura y escritura, o sólo de lectura. </li></ul><ul><li>Cada referencia a la memoria pasa por la tabla de páginas para encontrar el número correcto de marco. </li></ul><ul><li>Los bits de protección pueden examinarse para verificar trampas de hardware. </li></ul><ul><li>solución: hardware, bits de protección distintos para cada clase de acceso </li></ul><ul><li>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. </li></ul><ul><li>Registro de longitud de la tabla de páginas (PTLR)->hardware, par indicar el tamaño de una tabla de páginas. </li></ul>
  9. 13. Paginación con múltiples niveles <ul><li>Utiliza un algoritmo de paginación con dos niveles </li></ul><ul><li>Una tabla de páginas misma también se pagina. </li></ul><ul><li>Dirección lógica: número de página y desplazamiento de página. </li></ul><ul><li>El número de página se subdivide en otro número de página y un desplazamiento. </li></ul><ul><li>La arquitectura VAX soporta paginación con dos niveles. </li></ul><ul><li>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. </li></ul><ul><li>La arquitectura SPARC soporta un esquema de paginación con tres niveles. </li></ul><ul><li>La arquitectura Motorola 68030 soporta una esquema de paginación con cuatro niveles. </li></ul>
  10. 14. Esquema de traducción de direcciones
  11. 15. Esquema de paginación con 3 y cuatro niveles
  12. 16. Rendimiento del sistema con paginación con niveles múltiples <ul><li>Cada nivel se almacena como una tabla distinta en memoria </li></ul><ul><li>La conversión de una dirección lógica en una física puede requerir cuatro accesos a memoria. </li></ul><ul><li>La técnica caché nuevamente genera dividendos, y el rendimiento se mantiene razonalbes. </li></ul><ul><li>Tiempo a acceso a memoria. </li></ul>
  13. 17. Tablas de páginas invertida <ul><li>Tiene una entrada por cada página (marco) real de memoria. Ordenada por dirección física, y búsqueda por dirección virtual. </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul><ul><li>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. </li></ul><ul><li>Se puede usar una tabla de hash para limitar la b úsqueda a una (o unas pocas) entradas de tabla de páginas. </li></ul>
  14. 19. Páginas compartidas <ul><li>Compartir un código común </li></ul><ul><li>El c ódigo compartido debe estar en el mismo lugar en el espacio de direcciones lógicas de todos los procesos </li></ul><ul><li>Código reentrante: </li></ul><ul><li>- no puede modificarse a sí mismo </li></ul><ul><li>- nunca cambia durante la ejecución </li></ul><ul><li>Dos o más procesos pueden ejecutar el mismo código al mismo tiempo. </li></ul><ul><li>Se pueden compartir: editores de texto, compiladores, sistemas de bases de datos, etc. </li></ul><ul><li>Cada proceso tiene una copia separada del c ódigo </li></ul>
  15. 21. SEGMENTACIÓN <ul><li>La segmentación es un esquema de administración de la memoria que soporta la visión que el usuario tiene de la misma </li></ul><ul><li>Un espacio de direcciones lógicas es una colección de segmentos. </li></ul><ul><li>Cada segmento tiene un nombre y una longitud </li></ul><ul><li>Las direcciones especifican tanto el nombre del segmento como el desplazamiento dentro del segmento </li></ul><ul><li>Por lo tanto, el usuario especifica cada dirección mediante dos cantidades: un nombre de segmento y un desplazamiento . </li></ul>
  16. 22. Vista del usuario de un programa
  17. 23. <ul><li>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. </li></ul><ul><li>HARDWARE </li></ul><ul><li>La transformación se efectúa por medio de una tabla de segmentos . </li></ul><ul><li>Cada entrada de la tabla de segmentos tiene una base de segmento y un límite </li></ul><ul><li>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 </li></ul>
  18. 25. Implementación de tablas de segmentos <ul><li>Al igual que la tabla de páginas, la tabla de segmentos puede situarse bien en registros rápidos o bien en memoria </li></ul><ul><li>Con tantos segmentos no es factible mantener la tabla de segmentos en registros , de modo que tiene que mantenerse en memoria </li></ul>
  19. 26. Compartición y protección <ul><li>Una ventaja importante de la segmentación es la asociación de la protección con los segmentos </li></ul><ul><li>El hardware verificará los bits de protección asociados a cada entrada en la tabla de segmentos para impedir accesos ilegales a memoria </li></ul><ul><li>Otra ventaja de la segmentación está relacionada con la compartición del código y datos. </li></ul><ul><li>Los segmentos se comparten cuando las entradas en las tablas de segmentos de 2 procesos diferentes apuntan a las mismas posiciones físicas. </li></ul>
  20. 27. Fragmentación <ul><li>El sistema operativo tiene que encontrar y asignar memoria para todos los segmentos de un programa de usuario </li></ul><ul><li>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. </li></ul><ul><li>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 </li></ul>

×