Qual é o endereço no monitor de processo


0

No Monitor de processo, se selecionarmos um processo específico e escolher sua propriedade, nas propriedades do evento, a guia processo mostrará o endereço de cada arquivo de biblioteca individual e a que esses endereços se referem? Além disso, os endereços em Pilha apontam para o local da memória virtual ou física?

Respostas:


1

Todos os endereços mostrados são virtuais. Eles são os endereços iniciais das DLLs ou outros arquivos mapeados no espaço de endereço virtual do processo. Os endereços mostrados na guia Pilha também são virtuais.

Você pode ver uma análise semelhante no Process Explorer - ative a "exibição DLLs" no painel inferior. E também no VMmap, mas com mais detalhes. O VMmap inclui os endereços de "seções" em cada arquivo executável. Haverá uma seção para código, uma para dados somente leitura, uma para "recursos" etc., além de algumas informações de controle.

Na verdade, é extremamente difícil para um sistema operacional de memória virtual em x86 / x64 usar diretamente, isto é, referência, um endereço físico. Quando o sistema "se torna virtual", ou seja, define o bit "Habilitar paginação" no CR0 - o que acontece muito cedo na inicialização - todos os endereços declarados pelo código em execução (seja no kernel ou no modo de usuário) são interpretados pela CPU como endereços virtuais, e deve ser traduzido (usando informações das tabelas de páginas) para físico antes de serem apresentados ao controlador de memória.

É claro que o código do kernel no SO '' gerencia '' a memória física (por exemplo, atribui-a aos processos que precisam dele) e manipula as entradas da tabela de páginas e os números físicos das páginas, mas não pode '' referenciar '' diretamente a memória via os endereços físicos da memória.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.