No Linux, como um programa é carregado na memória quando o SO decide executá-lo?

2

Como sabemos, o Linux implementa o cache de páginas para armazenar o código ou dados de partes de um arquivo que será potencialmente usado. Uma das minhas perguntas é quando um programa, por exemplo vim, vai rodar, seus dados e código serão primeiramente carregados no cache de páginas, certo?

E eu não tenho certeza do meu outro entendimento também. Se o SO apenas carrega algumas partes do código que serão usadas imediatamente quando o programa é iniciado? Ou o sistema operacional carrega todos de uma vez? O sistema operacional usa o cache de arquivos para armazenar os códigos e dados carregados, certo? Que tipo de função do módulo o SO usa para executar o carregamento de código?

    
por Xin Li 05.06.2015 / 19:46

1 resposta

0

its data and code will be firstly loaded into those page cache, right?

Sim.

Whether does the OS just load some pieces of the code that will be use immediately when the program starts? Or OS load them all at once?

Algumas peças. Na verdade, quando o código realmente será executado - page_fault irá ocorrer, e a página será movida para a memória (page_cache) do arquivo associado

What kind of function of module does OS use to perform the code loading?

load_elf_binary link

    
por 05.06.2015 / 22:00