Existe uma Tabela de Páginas para cada processo na CPU, ou é a mesma para todos os processos?

1

Um sistema operacional usa o Diretório de Páginas e a Tabela de Páginas para manipular a virtualização de memória.

Uma coisa sobre a qual não tenho certeza é no título desta pergunta: Essa estrutura é a mesma para cada processo ou cada processo possui uma Tabela de Páginas específica?

Parece complicado e impraticável ter uma tabela de páginas para cada processo. Há também o fato de que toda a estrutura de dados (Diretório de Páginas, Tabela de Páginas ...) parece abordar cada byte de memória física.

    
por user96649 08.11.2017 / 07:11

1 resposta

2

Cada processo em um sistema operacional que implementa memória virtual possui seu próprio espaço de endereçamento. Isso é mais seguro, pois permite o isolamento entre processos e a randomização de endereços. Também é mais fácil de gerenciar com diferentes configurações de memória física e permite supercomprometimento.

O tamanho do espaço de endereço pode, na verdade, ser significativamente maior que a quantidade de memória física. Este é um recurso: mais espaço para randomização de endereços, mapeamento de arquivos e outros truques legais.

No Linux (embora outros sistemas operacionais sejam certamente similares) cada processo tem seu próprio conjunto de tabelas de páginas . Talvez 4 bytes gastos gerenciando 4 KB de quadros de página usados, gerenciáveis. Embora, use uma grande quantidade de memória multiplicada por um grande número de processos, e suas tabelas de páginas usam memória e CPU significativas. Isso acontece às vezes para grandes bancos de dados em particular e pode ser atenuado usando um tamanho de página maior ("enorme").

    
por 09.11.2017 / 05:52