Paginación - Universidad Tecnológica Nacional

Anuncio
Paginación
Técnicas Digitales III
Ing. Gustavo Nudelman
2013
Universidad Tecnológica Nacional - Facultad Regional Buenos Aires
Paginación - Introducción
La paginación permite que la direcciones a las que hace
referencia un código de programa, sean reubicadas en
direcciones físicas especificas utilizando bloques de tamaño fijo
(Páginas físicas).
•
Esta reubicación se hace por medio de tablas
•
Por razones de eficiencia, no se trata de una única tabla sino de
una estructura Jerárquica de n tablas o niveles de paginación
•
Una vez que se dispone de la estructura de tablas se enciende el
bit PG de CR0 para activar la unidad de paginación.
•
Las Arquitecturas x86 permiten paginas de 4k, 2M y 4M.
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Estructura de la MMU
Sel:Offset
Unidad de
Segmentación
Dir Lienal
BIT
PG
0
Dir. Física
1
Unidad de
Paginación
•
Por simplicidad, si activamos PG es conveniente que la unidad de
segmentación trabaje con el modo FLAT
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Paginación 4k - Introducción
•
Las páginas son contiguas y a diferencia de los segmentos no se
solapan.
•
Los sistemas operativos como Unix desde su concepción,
trabajan con este modelo de memoria
•
Trabajar con tamaños fijos provee una ventaja para la
administración de memoria virtual
•
En los primeros procesadores (hasta el Pentium Pro), el tamaño
de página es fijo: 4Kbytes.
•
A partir del Pentium Pro cada tarea puede optar por tener páginas
de 4 Kbytes, 2 Mbytes, o 4 Mbytes.
•
El máximo tamaño de un espacio lineal en IA32 es 4 GB, sin
embargo con la unidad de paginación podremos administrar mas
memoria física
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Tabla de paginas
•
Se trata de una tabla de descriptores de página
•
Se requieren 20 bits para la dirección base ya que las páginas no
se solapan y no se necesita especificar el limite ya que son de
tamaño fijo
•
Descriptores de 4 bytes.
•
En cada entrada se almacena el número de frame físico donde se
almacena la página y algunos bits de control.
•
En Intel se dedican los 20 primeros bits a almacenar el número de
frame y los 12 restantes a guardar información de control.
•
Con 20 bits podemos direccionar 1M descriptores siendo una
tabla de 4MB  Poco práctico
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Paginación de memoria en 2 niveles
12
Atributos
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Entrada del directorio de página (PDE)
•
•
•
•
•
•
•
•
•
•
•
Page-Table base Addres: Apunta a la base de la tabla. Solo se necesitan 20
bits para acceder a la base de la tabla de páginas que puede estar en cualquier
múltiplo de 4K del espacio lineal.
Avail: Disponible para el programador de sistemas
G (Global): Controla el comportamiento del TLB cuando CR3 es recargado.
Debe ser 0 para paginación 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): Política de gestión 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 página esta presente en memoria, de lo contrario provocará
una excepción 14 (La dirección lineal queda en CR2)
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Entrada de tabla de página
•
Page-Table base Address: Apunta a la base del frame de la página.
•
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 análogos al descriptor de tabla pero a nivel de
página.
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Protección a nivel de páginas
•
Se combina con la protección a nivel de segmento aportando
granularidad al sistema de protección dentro de un mismo segmento
•
Siempre se evalúa primero la protección a nivel de segmento
•
Los CPLs 0,1,2 del segmento se mapean en el nivel supervisor de
las páginas mientras que el nivel 3 se corresponde con el nivel
usuario.
•
En modo supervisor se accede a todas las páginas mientras que en
nivel usuario solamente a las que poseen en su descriptor el bit
U/S=1
•
La protección a nivel de página no pisa la protección a nivel de
segmento. Los permisos de escritura en las páginas no funcionaran
si no existe el permiso a nivel de segmento.
•
La excepción por excelencia del sistema de protección de páginas
es la 0Eh
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Combinación de protección a nivel de
directorio y página
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Registros de control asociados
Apunta a la base
del directorio de
Páginas
Activa la Paginación
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Segmentación y Paginación
CR3
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Paginación Resumen
•
Nos permite dividir la memoria en bloques de tamaño fijo llamados
páginas 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 paginación hace coincidir la dirección lineal con la
dirección física, decimos que se trata de “Identity mapping”
•
Las tablas de correspondencia de la páginas mas frecuentemente
utilizadas se almacenan en una memoria cache del propio
procesador llamada TLB (Translation Lookaside Buffers)
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Lab
1. Programa “Hello World” con 2
páginas
2. Comando de Bochs “Info Tab”
3. Direcivas %rep y %assign.
4. Ejercicio teórico
Subtitulo o nombre del
capitulo
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Universidad
Tecnológica
Nacional
Ejercicio teórico
Subtitulo o nombre del
capitulo
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Universidad
Tecnológica
Nacional
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
• Analicemos la dirección Lineal
ds:esi = 23h:9F0A02EBh
5 descriptor de la
GDT con RPL 11
1001111100
0010100000
27Ch
0A0h
001011101011
2EBhh
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
• Según el enunciado, CR3=0000F000h
0000F 000
4096 Bytes
El DTP está ubicado
en la pagina 15 del
espacio físico
La Base_DTP=F000h
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
• Recordando el directorio de página obtenido
El inicio de la tabla de páginas se encuentra dentro del descriptor que esta en
Base_DTP+ (n*4)
F000 + (27C*4)=0xF9F0
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Recordemos que PTBAn debe apuntar a la base de la tabla de páginas, y como
sabemos que esta esta en 10000h (4K luego del Directorio)  PTBAn debe ser 10h
ya que 10h*PageSize =10000h
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
• Recordando la tabla obtenida.
El descriptor de página se encuentra en Base_TP+ (n*4)
10000h + (0xA0*4)=0x10280
Evoluciones y
extensiones del sistema
de paginación en IA32
Subtitulo o nombre del
capitulo
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Universidad
Tecnológica
Nacional
Paginación en 4MB - PSE
El bit 4 del registro CR4 (page size extensions) habilita la posibilidad de combinar
páginas de 4K y 4MB.
Directorio de
tabla de páginas
Pages directory
entries (PDE)
1 = 4MB
0 = 4KB
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Paginación de memoria con PSE-36
•
Desde Pentium Pro se advirtió que 4GB de memoria física serian
insuficientes.
•
Se implementa PSE-36 con el Pentium III, donde utilizando PSE permite
extender las líneas físicas de direccionamiento a 36 bits en procesadores de
32 bits
•
Se puede verificar la existencia de PSE con la instrucción CPUID
•
En procesadores de 64 bits, y utilizando legacy mode, las líneas físicas se
extienden a 40 bits en.
•
Tanto en IA32 como en legacy mode mediante a un esquema de paginación
se puede direccionar mas memoria física manteniendo un esquema de
direcciones lineales de 32 bits.
•
Se pueden utilizar y combinar en un mismo sistema páginas de 4K y de 4M.
Esto se dictamina por entrada de directorio según sea el valor del bit 7
(PDE.PS)
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Descriptores de directorio de página
con PSE-36
•
•
PDE en procesadores de 32 bit utilizando la extensión a 36 bits
PDE en Legacy mode para procesadores de 64 bits
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Physical Adress extension (PAE)
•
Este modo de extender el direccionamiento físico a partir de un
direccionamiento lineal de 32 bits aparece con el Pentium pro.
(Verificar extensión PAE con CPUID)
•
Se debe habilitar el bit 5 del registro CR4 (una vez habilitada la
paginación)
•
Permite la extensión del direccionamiento físico a 36 bits en IA32, y
a 48 bits en modo IA32e
•
Utiliza descriptores de 64 bits
•
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 páginas de 4K o 2MB
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Registros de control asociados
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Paginación en 4K con PAE (dirección
lineal de 32 bits)
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Paginación en 4K con PAE Descriptores
PDPTE
PDE
PTE
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Paginación en 2MB con PAE
(dirección lineal de 32 bits)
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Paginación en 2MB con PAE Descriptores
PDPTE
PDE
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Paginación de memoria en 4K con PAE
24 bits
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Paginación de memoria en 2M con PAE
24 bits
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Paginación con PAE - Resumen
•
Permite extender el direccionamiento de memoria física
manteniendo espacios lineales de 32 bits.
•
Esto es gracias a que los descriptores de las tablas son de 64 bits.
•
También tenemos un nuevo nivel o tabla llamado PDPT
•
Sin embargo bajo cualquier contexto dado de PAE, y donde CR3
apunta a una estructura jerárquica de n tablas podemos observar
que no podemos manejar mas de 4GB.
•
Tengamos en cuenta que podemos cambiar CR3, generando un
nuevo contexto de paginación con nuevas tablas que apunten a
nuevas páginas. (Ahora cualquier dirección física de base de página
es de 27 bits)
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Lab “Paginación con
PAE”
Subtitulo o nombre del
capitulo
Universidad Tecnológica Nacional - Facultad
Regional Buenos Aires
Universidad
Tecnológica
Nacional
Descargar