Os sistemas operacionais modernos usam paging para gerenciar a memória. Ele dá algumas vantagens para o sistema, como poder usar mais memória do que você fisicamente, protegendo alguma área de memória sensível (como a memória reservada do kernel), entre outras coisas que eu posso apontar alguma referência para se você quiser aprender mais sobre paginação.
Mas o que é paginação?
Vou pular as técnicas e dar uma analogia. Imagine que você tem uma coleção de enciclopédias, de A a Z, e é uma pessoa curiosa que gosta de passar as tardes lendo-a. Você mantém todas as enciclopédias em sua estante e tem uma tabela de leitura na qual você pode ter 4 livros.
Um dia você está lendo sobre "Sailing", que está na enciclopédia da letra S. Em algum momento você pode precisar ler sobre algo relacionado, como "Winds" no livro da letra W. Contanto que você o tenha em sua mesa de leitura, você pode abri-lo rapidamente e ler o que precisa, depois voltar ao livro "Vela". O problema é que, uma vez que sua mesa de leitura só pode caber em 4 livros, as chances são altas de que você precisará de um livro que já não esteja lá. Então você precisaria levar um dos livros da mesa de volta para a prateleira, pegar o livro que você precisa na mesa de leitura e lê-lo.
Ok, o que toda essa história do livro tem a ver com meus congelamentos? Bem, o computador faz algo parecido o tempo todo. Para poder usar mais memória do que tem fisicamente, o computador divide a memória em páginas , que são pequenos blocos contínuos de memória. Aqueles não precisam estar na RAM (a "mesa de leitura") o tempo todo, eles podem ser armazenados no seu disco (a "prateleira de livros"). Se a RAM estiver cheia e a CPU precisar ler / gravar nas páginas armazenadas no disco, uma das páginas na RAM será armazenada no disco e a página solicitada será carregada na RAM.
Este é um trabalho do Kernel, portanto, é transparente para o usuário e para os programas. Mas como ler e gravar no disco é muito mais lento que ler e escrever na RAM, você notará que isso congela.
No Linux, existe uma partição chamada swap , que é usada para armazenar essas páginas extras. O Windows faz a mesma coisa, mas acho que usa um arquivo. O próprio kernel do sistema não irá congelar, já que ele estará em páginas bloqueadas ("não-swappáveis").
A imagem abaixo (de um artigo da wikipedia) ilustra o conceito de paginação (e memória virtual, que não precisamos entrar). Esses blocos representam as páginas alocadas na memória ou no disco.
AcreditoqueomotivopeloqualoLinuxtambémestácongelandoéporqueoUnity(GUIdaáreadetrabalho)podesofrerosatrasoscausadosporessatroca,enquantonoWindowselespodemmanterocódigoGUIdaáreadetrabalhobloqueado("não-trocável" ") Páginas. Esta é apenas uma teoria de brainstorm embora.