Onde as tabelas de páginas são armazenadas

7

Minha pergunta é "onde estão as tabelas de páginas armazenadas: na memória física (RAM) ou como alguma estrutura de dados no espaço do usuário".

PS: O que eu entendi até agora: Um layout de memória de processo possui poucos segmentos (Código / data / heap / pilha, etc.). Como a segmentação não é usada atualmente, o Paging é usado e cada segmento teria muitas páginas de tamanho fixo. Cada segmento também terá espaços de endereços virtuais (VADs) correspondentes. Eles apontarão para tabelas de páginas primárias, que apontariam para tabelas de páginas secundárias e, finalmente, pte que apontariam para quadros de páginas em disco (espero que isso esteja correto). Então, se os VADs estão no espaço do usuário, as tabelas de páginas também residem no espaço do usuário ou são armazenadas na RAM?

    
por RootPhoenix 31.03.2014 / 04:23

2 respostas

3

As tabelas de páginas são tratadas pelo kernel, através de estruturas de dados internas do kernel. Mas a arquitetura determina a maior parte do formato dessas tabelas. A Userland não tem acesso a eles.

    
por 31.03.2014 / 05:06
4

Citação do wiki - tabela de páginas

It was mentioned that creating a page table structure that contained mappings for every virtual page in the virtual address space could end up being wasteful. But, we can get around the excessive space concerns by putting the page table in virtual memory, and letting the virtual memory system manage the memory for the page table.

However, part of this linear page table structure must always stay resident in physical memory, in order to prevent against circular page faults, that look for a key part of the page table that is not present in the page table, which is not present in the page table, etc.

    
por 09.05.2014 / 08:45