Phil Bull
philbull@gmail.com 2011
Michael Hill
mdhillca@gmail.com 2011, 2014
Veja o mapa de memória de um processo.
Rafael Fontenelle
rafaelff@gnome.org 2017

# Usando mapas de memória

Memória virtualé uma representação da combinação de memória física e espaço de swap em um sistema. Ela permite que processos em execução acessem mais do que a memória física existente mapeando localizações na memória física para arquivos no disco. Quando o sistema precisa de mais páginas de memória do que está disponível, algumas das páginas existentes serão paginadas ou escritas no espaço de swap.

O mapa de memória exibe o uso total de memória virtual do processo e pode ser usado para determinar o custo de memória de executar uma única ou múltiplas instâncias do programa, para garantir o uso das bibliotecas compartilhadas corretas, para ver os resultados de ajustar vários parâmetros de afinação de desempenho que o programa pode ter, ou para diagnosticar problemas como vazamentos de memória.

Para exibir o mapa de memória de um processo:

Clique na aba Processos.

Clique com botão direito do mouse no processo desejado na lista de processos.

Clique em Mapas de memória.

# Lendo o mapa de memória

Addresses are displayed in hexadecimal (base 16).

Tamanhos são exibidos em prefixos binários da IEC.

Em tempo real, o processo pode alocar mais memória dinamicamente em uma área chamada de heap, e armazenar argumentos e variáveis em uma outra área chamada de stack (ou pilha).

O programa em si e cada uma das bibliotecas compartilhadas possui três entradas, uma para segmento do texto leitura-execução, um para o segmento de dados de leitura-escrita e um para um segmento de dados de somente leitura. Ambos segmentos de dados precisam ser paginados em tempo de swap.

## Propriedades

Nome do arquivo | A localização de uma biblioteca compartilhada que está sendo usada pelo processo. Se esse campo estiver em branco, a informação da memória nesta linha descreve memória que é propriedade do processo cujo nome é exibido acima na tabela de mapa de memória.
Início da VM | O endereço no qual o segmento de memória começa. Início da VM, Fim da VM e Deslocamento da VM juntos especificam a localização no disco à qual a biblioteca compartilhada está mapeada.
Fim da VM | O endereço no qual termina o segmento de memória.
Tamanho da VM | O tamanho do segmento de memória.

Sinalizadores

Os sinalizadores a seguir descrevem os diferentes tipos de acesso de segmento de memória que o processo pode ter:

## p

O segmento de memória é privado para o processo e não está acessível a outros processos.

## r

O processo possui permissão para ler a partir do segmento de memória.

## s

O segmento de memória é compartilhado com outros processos.

## w

O processo possui permissão para escrever no segmento de memória.

## x

O processo possui permissão para executar instruções que estão contida no segmento de memória.

Deslocamento da VM | A localização do endereço no segmento de memória, medido a partir do Início da VM.
Privada, Compartilhada, Limpa, Suja | páginas privadas são acessadas por um processo páginas compartilhadas podem ser acessadas por mais de um processo páginas limpas ainda não foram modificadas enquanto na memória e podem ser descartadas quando atribuídas para ir para “swap” páginas sujas foram modificadas enquanto na memória e devem ser escritas para o disco quando atribuídas para ir para “swap”
Dispositivo | Os números maiores e menores do dispositivo no qual o nome de arquivo de biblioteca compartilhada está localizado. Juntos, esses especificam uma partição no sistema.
Inode | O inode no dispositivo do qual a localização de biblioteca compartilhada é carregada para a memória. Um inode é a estrutura que o sistema de arquivos usa para armazenar um arquivo, e o número atribuído a ele é único.