Este é o meu primeiro post no fórum. Eu estou tentando entender o modelo de memória do Linux e como ele lida com solicitações de alocação de memória de programas c / c ++.
Pelo que entendi, as falhas de página ocorrem quando o endereço de memória virtual não está na tabela de páginas. Como o kernel do linux faz inicialização de memória lenta, os pedidos de alocação de memória de uma chamada malloc, que podem chamar brk () ou sbrk (), não alocam a página de memória física até que a memória seja tocada. Assim, quando a memória é tocada, ocorre uma falha de página e a MMU chama o manipulador de falhas de página, que verifica se é uma falha de página boa e aloca a página. Por favor, corrija-me se isso estiver incorreto.
Minhas perguntas são as seguintes -
O que acontece depois de uma falha de página? menciona o que acontece depois uma falha de página, mas não discute o caso em que uma nova página ainda deve ser alocada.
Por favor, tenha paciência comigo enquanto estou tentando envolver minhas coisas. Parece que minha compreensão não tem uma peça crucial.
Obrigado RG
Tags memory linux virtual-memory