TL; DR Se a página é um cache para leitura de disco, nunca vai trocar.
Sua pergunta significa que você já sabe como funciona a troca (ou melhor, como funciona a memória virtual). Agora, o simples passo crítico para entender o cache de disco é observar que ele é tratado exatamente da mesma maneira. Não há "dados de aplicação" e "cache de disco", é apenas um único mecanismo de memória virtual.
Cada página é suportada pelo armazenamento permanente: em vez de declarar a página como "cache de disco", você também pode declarar "esta página é suportada por / var / spool / mail / root". Em vez de declarar a página como "memória do aplicativo", você também pode declarar "esta página é suportada pelo espaço de troca" (também conhecido como "anônimo" = não é suportado por nenhum arquivo nomeado).
Se a página estiver suja, ela precisará ser salva em seu próprio armazenamento permanente - independente se for um arquivo nomeado ou um espaço de troca. Se a página não estiver suja, significa, por definição, que exatamente os mesmos bytes já estão no armazenamento permanente da página. Não há necessidade de fazer nada - o sistema operacional pode fornecer essa página para reutilização a qualquer momento que seja adequado.
O que chamei aqui é o atributo "suportado por" que as pessoas chamam principalmente de mapeamento de memória e o que descrevi aqui é realmente como mmap
funciona.