A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Laboratório de Organização e Arquitetura de Computadores PROFESSORES: Elmar Uwe Kurt Melcher Joseana Macêdo Fechine Paginação (Conceitos Básicos)

Apresentações semelhantes


Apresentação em tema: "Laboratório de Organização e Arquitetura de Computadores PROFESSORES: Elmar Uwe Kurt Melcher Joseana Macêdo Fechine Paginação (Conceitos Básicos)"— Transcrição da apresentação:

1 Laboratório de Organização e Arquitetura de Computadores PROFESSORES: Elmar Uwe Kurt Melcher Joseana Macêdo Fechine Paginação (Conceitos Básicos)

2 Critério para mapeamento no qual os endereços virtuais 4096 a 8191 correspondem aos endereços 0 a 4095 da memória principal.

3 Endereço físico/linear 00000000h ate 000FFFFFh Esta área contém: MS-DOS page directory (registro CR3) memória de vídeo nos endereços 000B8000h ate 000B8FFFh (ate 000B87FFh para 25 linhas). Endereço físico 00100000h ate 00BFFFFFh Os endereços lineares 00400000h até 007FFFFFh Onde rodam os programas do usuário e uma parte do extender e do debugger são mapeados para uma determinada parte desta área física da memória.

4 Endereço físico/linear 00800000h ate 01FFFFFFh (com 32 MB de RAM) Pode-se experimentar mais livremente sem medo de afetar MS-DOS, editor, extender ou debugger. Endereço físico/linear 02000000h até DFFFFFFFh Nesta área não há nada. Endereço linear E0000000h até E0100000h Está mapeado para a tela de vídeo no modo gráfico (pixel por pixel). O endereço físico depende do computador. Endereço linear F0000000h até F0100000h Está mapeado para uma zona da RAM que é usada pelo debugger para salvar conteúdo do buffer de vídeo quando a janela do debugger está na tela.

5 Endereço físico da Page Directory - registro CR3. Page base address - bits 12 through 31 P - Present flag R/W - Read/write flag U/S - User/supervisor flag PWT - Page-level write-through flag PCD - Page-level cache disable flag A - Accessed flag D - Dirty flag Ocorrência de PF - endereço linear que causou a exceção - registro CR2. Page Directory e Page Table (páginas de 4K bytes e 32 bits de endereçamento físico)

6 Exemplo – Endereço virtual: 65421ABC h Índice da PD CR3 - Base PD 01234000 x4 01345000 PT PAGE 01345ABC

7 _interrupt void page_fault() { register dword *pd; // apontador para page directory register dword *pt; // apontador para page table register dword fault_addr; // Enderecamento do page directory asm mov eax, cr3; // nao ha instrucao no C pd = _EAX; // pd (page directory base) = CR3 asm mov eax, cr2; // nao ha instrucao no C fault_addr = _EAX; // fault_addr = CR2 pt = (dword *)0x01234000; // endereco onde eh gerada a page table pd[ fault_addr >> 22 ] = (dword)pt + 7; // sobra 654 - escreve pt dentro do pd pt[ ( fault_addr > 22 ] = 0x01345000 + 7; // escolher pagina asm popa asm add esp,4; // eliminar codigo de erro asm iret // forcar saida } Boa.c – Novas Funções

8 void setPagefault() { idtr.base[14].a.offset = &page_fault; idtr.base[14].b.offset = &page_fault; idtr.base[14].b.selector = 0x928; idtr.base[14].a.params = 0; idtr.base[14].a.type = 0xEE; } Boa.c – Novas Funções

9 int main() { char c; cadastrar(9912345); // coloque aqui sua matricula initializar(5); setInterrupcao(); //setar interrupcao setPagefault(); //setar o tratamento a falha de pagina *((dword*)0x65421ABC) = 0x12345678; // provocar page fault desenhar_fractal(); c=getchar(); return(0); } Boa.c – Novas Funções

10 Passos – Teste - Paginação 1.Testar a execução do código sem chamada a setPagefault() (observando a janela de paginação e memória no endereço 65421ABC); 2.Inserir setPagefault() e verificar o preenchimento na memória (observar o offset); 3.Colocar F2 no início da função page_fault() e executar até a instrução de escrita *((dword*)0x65421ABC) = 0x12345678 com F7; 4.Entrar em page_fault() e observar a pilha (observando a janela de paginação e memória no endereço linear 65421ABC e endereço físico 1345ABC); 5.Observar os bits A e D.


Carregar ppt "Laboratório de Organização e Arquitetura de Computadores PROFESSORES: Elmar Uwe Kurt Melcher Joseana Macêdo Fechine Paginação (Conceitos Básicos)"

Apresentações semelhantes


Anúncios Google