Os arquivos .so são carregados como um todo na memória?

1

Quando um programa faz com que um arquivo .so seja carregado na memória, ele é carregado como um todo ou só carrega os "pedaços" necessários?

    
por Guilherme Costa 01.06.2016 / 19:27

1 resposta

2

Não. Primeiro, o arquivo .so é aberto e, em seguida, mmap() cria o espaço de endereço virtual necessário para conter todo o conteúdo do arquivo. No entanto, somente quando algo tentar acessar um endereço específico no espaço, o acesso causará uma falha de página, e o kernel lerá um bloco (4k) do arquivo correspondente ao deslocamento da página na memória real. Quando está na memória atual, o acesso será reiniciado. Isso é paginação por demanda.

    
por 01.06.2016 / 20:47