paginación - utngnudelman/paginacion.pdf · una estructura jerárquica de n tablas o niveles de...

37
Paginación Universidad Tecnológica Nacional - Facultad Regional Buenos Aires Técnicas Digitales III Ing. Gustavo Nudelman 2013

Upload: vuonghuong

Post on 19-Sep-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Paginación

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Técnicas Digitales III Ing. Gustavo Nudelman 2013

Page 2: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Paginación - Introducción

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• 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.

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).

Page 3: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Estructura de la MMU

Unidad de

Segmentación

Sel:Offset Dir Lienal BIT PG

1

Unidad de

Paginación

Dir. Física 0

• Por simplicidad, si activamos PG es conveniente que la unidad de

segmentación trabaje con el modo FLAT

Page 4: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Paginación 4k - Introducción

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• 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

Page 5: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Tabla de paginas

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• 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

Page 6: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Paginación de memoria en 2 niveles

12

A t r i b u t o s

Page 7: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Entrada del directorio de página (PDE)

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• 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)

Page 8: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Entrada de tabla de página

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• 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.

Page 9: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Protección a nivel de páginas

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• 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

Page 10: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Combinación de protección a nivel de directorio y página

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Page 11: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Registros de control asociados

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Apunta a la base del directorio de Páginas

Activa la Paginación

Page 12: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Segmentación y Paginación

CR3

Page 13: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Paginación Resumen

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• 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)

Page 14: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Lab

Subtitulo o nombre del capitulo

Universidad Tecnológica

Nacional

1. Programa “Hello World” con 2 páginas

2. Comando de Bochs “Info Tab”

3. Direcivas %rep y %assign.

4. Ejercicio teórico

Page 15: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Ejercicio teórico

Subtitulo o nombre del capitulo

Universidad Tecnológica

Nacional

Page 16: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Page 17: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

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 001011101011

27Ch 0A0h 2EBhh

Page 18: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

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

Page 19: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

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

Page 20: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Page 21: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

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

Page 22: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

• Recordando la tabla obtenida.

El descriptor de página se encuentra en Base_TP+ (n*4) 10000h + (0xA0*4)=0x10280

Page 23: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados
Page 24: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Evoluciones y extensiones del sistema de paginación en IA32

Subtitulo o nombre del capitulo

Universidad Tecnológica

Nacional

Page 25: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

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

Page 26: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Paginación de memoria con PSE-36

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• 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)

Page 27: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Descriptores de directorio de página con PSE-36

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• PDE en procesadores de 32 bit utilizando la extensión a 36 bits

• PDE en Legacy mode para procesadores de 64 bits

Page 28: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Physical Adress extension (PAE)

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• 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

Page 29: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Registros de control asociados

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Page 30: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Paginación en 4K con PAE (dirección lineal de 32 bits)

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Page 31: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Paginación en 4K con PAE - Descriptores

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

PDPTE

PDE

PTE

Page 32: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Paginación en 2MB con PAE (dirección lineal de 32 bits)

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Page 33: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Paginación en 2MB con PAE - Descriptores

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

PDPTE

PDE

Page 34: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Paginación de memoria en 4K con PAE

24 bits

Page 35: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Paginación de memoria en 2M con PAE

24 bits

Page 36: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Paginación con PAE - Resumen

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

• 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)

Page 37: Paginación - UTNgnudelman/Paginacion.pdf · una estructura Jerárquica de n tablas o niveles de paginación ... • Nos permite dividir la memoria en bloques de tamaño fijo llamados

Universidad Tecnológica Nacional - Facultad Regional Buenos Aires

Lab “Paginación con PAE”

Subtitulo o nombre del capitulo

Universidad Tecnológica

Nacional