É impossível. Imagine o que aconteceria se você tentasse executar um arquivo de um servidor NFS. O arquivo é mapeado na memória, mas na verdade não é lido na memória porque o uso do cache de páginas não é permitido. O programa começa a executar, mas as falhas de página são imediatamente porque o mapeamento de memória não é armazenado em cache na RAM. Não iniciante. Ok, então vamos dizer que estamos autorizados a relaxar um pouco a regra e preencher o cache da página apenas para esta página apenas desta vez. Nós o lemos na memória RAM a partir do servidor NFS e resolvemos a falha da página, mas prontamente a despejamos. O programa executa uma instrução - talvez - e, em seguida, falha na página novamente.
Você poderia fazer isso funcionar um pouco menos ridiculamente do que o experimento de pensamento que acabei de descrever, especialmente você está falando sobre% normalread()
e não mmap()
, mas sua solução ainda estaria completamente em desacordo com o funcionamento da memória virtual fundamentalmente e iria realizar muito mal.