Para o Linux, acredito que a resposta curta à sua pergunta é "geralmente nenhuma página física é alocada". Isso é chamado de "supercomprometimento de memória " e você pode encontrar toneladas de documentação . As variantes Unix tiveram políticas diferentes sobre a alocação de página física real no momento do malloc. Tradicionalmente, os sistemas baseados em 4BSD não comprometeram demais, o que, em combinação com o programa chill
(não é possível encontrar uma referência), foi divertido. chill
alocou e reteve a maior quantidade de memória possível. Como o SunOS (baseado em 4.2BSD) sempre alocou páginas físicas para qualquer malloc()
, um mero usuário poderia alocar toda a RAM e fazer com que todos os outros paginem indefinidamente.
Para o linux você pode descobrir qual é a política do seu sistema: cat /proc/sys/vm/overcommit_memory
deve fornecer um "0", "1" ou "2" com os significados "heuristic overcommit", "always overcommit" e "never overcommit" respectivamente.