Eu olhei para alguns dos meus livros antigos de teoria do sistema operacional e notei que uma omissão flagrante em todos esses livros do sistema operacional é como realmente acompanhar as páginas físicas que são gratuitas (ou seja, algoritmos para realmente implementar a lista gratuita). Eu sei muito bem como os alocadores de memória da área de usuário funcionam, mas uma grande diferença com a alocação de páginas físicas é que a fragmentação de páginas físicas não deve ser um problema, pois a tabela de páginas pode simplesmente escolher as páginas físicas sem ter que se preocupar se elas são contíguos ou não. Como evitar a fragmentação é uma das principais preocupações dos alocadores de áreas de usuários, parece que a alocação de páginas físicas é fundamentalmente um problema diferente. Eu acho que isso não é completamente preciso se alguém quiser apoiar superpáginas para reduzir a pressão no TLB.
Minha pergunta: quais são as técnicas usadas nos kernels modernos de alto desempenho para esse problema? Além disso, esse problema se torna significativamente mais complicado nos sistemas NUMA?