Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Paginacion
Paginacion
Paginacin - Introduccin
La paginacin permite que la direcciones a las que hace referencia un cdigo de programa, sean reubicadas en direcciones fsicas especificas utilizando bloques de tamao fijo (Pginas fsicas).
Esta reubicacin se hace por medio de tablas No se trata de una nica tabla sino de una estructura Jerrquica de n tablas o niveles de paginacin Con la estructura de tablas armada se enciende el bit PG para activar la unidad de paginacin. Las Arquitecturas x86 permiten paginas de 4k, 2M y 4M.
Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires
Estructura de la MMU
BIT PG 1 0
Sel:Offset
Unidad de Segmentacin
Dir Lienal
Dir. Fsica
Unidad de Paginacin
Por simplicidad, si activamos PG es conveniente que la unidad de segmentacin trabaje con el modo FLAT
Paginacin 4k - Introduccin
Las pginas son contiguas y a diferencia de los segmentos no se solapan. Los sistemas operativos como Unix desde su concepcin, trabajan con este modelo de memoria Trabajar con tamaos fijos provee una ventaja para la administracin de memoria virtual En los primeros procesadores (hasta el Pentium Pro), el tamao de pgina es fijo: 4Kbytes.
A partir del Pentium Pro cada tarea puede optar por tener pginas de 4 Kbytes, 2 Mbytes, o 4 Mbytes.
El mximo tamao de un espacio lineal en IA32 es 4 GB, sin embargo con la unidad de paginacin podremos administrar mas memoria fsica Universidad Tecnolgica Nacional - Facultad
Regional Buenos Aires
Tabla de paginas
Se trata de una tabla de descriptores de pgina Se requieren 20 bits para la direccin base ya que las pginas no se solapan y no se necesita especificar el limite ya que son de tamao fijo Descriptores de 4 bytes. En cada entrada se almacena el nmero de frame fsico donde se almacena la pgina y algunos bits de control. En Intel se dedican los 20 primeros bits a almacenar el nmero de frame y los 12 restantes a guardar informacin de control. Con 20 bits podemos direccionar 1M descriptores siendo una tabla de 4MB Poco prctico
12
Atributos
Page-Table base Addres: Apunta a la base de la tabla. Solo se necesitan 10 bits ya que solo puede haber 1024 tablas con base en espacios mltiplos de 4k. Avail: Disponible para el programador de sistemas G (Global): Controla el comportamiento del TLB cuando CR3 es recargado. Debe ser 0 para paginacin de 4k. PS (Page size): 0 para 4K y 1 para 4MB AVL: Reservado Siempre 0 A (Accessed): Se pone en 1 cada vez que se realiza una lectura o escritura PCD (Page Cache Disabled): si es 1 lo apuntado por el PDE correspondiente no ser cacheado. No usar para I/O mapeado en memoria. PWT (Page Write Through): Poltica de gestin de cache U/S (User/Supervisor): Si es 1 puede ser accedida por niveles 0,1,2 y 3. Si es 0 solo puede ser accedida por niveles 0, 1 y 2 R/W: 0=Read Only 1=Readable & Writable P (Presente): La pgina esta presente en memoria, de lo contrario provocar una excepcin 14 (La direccin lineal queda en CR2)
Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires
Page-Table base Address: Apunta a la base del frame de la pgina. Page Attribute Table index: Soportado a partir de pentium III. Debe permanecer en 0 D (Dirty): El procesador lo cambia a 1 si la pagina apuntada por el descriptor fue escrita. Y permanece en 1 hasta que sea puesto a 0 por el software. Se lo utiliza para indicar que ha sido modificado y difiere de las paginas en el espacio de swap.
El resto de los atributos son anlogos al descriptor de tabla pero a nivel de pgina.
La proteccin a nivel de pgina no pisa la proteccin a nivel de segmento. Los permisos de escritura en las pginas no funcionaran si no existe el permiso a nivel de segmento.
La excepcin por excelencia del sistema de proteccin de pginas es la 0Eh Universidad Tecnolgica Nacional - Facultad
Regional Buenos Aires
Activa la Paginacin
Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires
Segmentacin y Paginacin
CR3
Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires
Paginacin Resumen
Nos permite dividir la memoria en bloques de tamao fijo llamados pginas cada una con atributos propios Permite virtualizar el espacio lineal permitiendo que diferentes aplicaciones trabajen en zonas diferentes aunque las mismas se refieran al mismo espacio lineal. Si el sistema de paginacin hace coincidir la direccin lineal con la direccin fsica, decimos que se trata de Identity mapping Las tablas de correspondencia de la pginas mas frecuentemente utilizadas se almacenan en una memoria cache del propio procesador llamada TLB (Translation Lookaside Buffers)
0 = 4KB
Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires
Utiliza una estructura donde a diferencia de los casos anteriores, el directorio de tablas no esta apuntado por CR3 sino por otra tabla llamada page directory pointer table PDE y PTE son de 9 bits
Trabaja con pginas de 4K o 2MB
Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires
PDE
PTE
PDPTE
PDE
24 bits
24 bits
Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires
Ejercicio terico
ds:esi = 23h:9F0A02EBh
1001111100 27Ch
0010100000 0A0h
001011101011 2EBhh
0000F 000
4096 Bytes El DTP est ubicado en la pagina 15 del espacio fsico
La Base_DTP=F000h
El inicio de la tabla de pginas se encuentra dentro del descriptor que esta en Base_DTP+ (n*4) F000 + (27C*4)=0xF9F0
Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires
Recordemos que PTBAn debe apuntar a la base de la tabla de pginas, y como sabemos que esta esta en 10000h (4K luego del Directorio) PTBAn debe ser 10h ya que 10h*PageSize =10000h
Universidad Tecnolgica Nacional - Facultad Regional Buenos Aires