O sistema operacional deve manter as estruturas de dados, controlando o uso de cada quadro de página da memória física. O que isto é feito depende do sistema operacional - abaixo está uma descrição simplificada de como o Linux faz isso.
O kernel do Linux tem uma matriz de descritores de página , um para cada quadro de página na RAM. Qual quadro de página corresponde a um descritor de página é determinado pelo índice do descritor de página na matriz do descritor. Cada descritor contém, entre outras coisas, uma variedade de sinalizadores e uma contagem de referência informando se a página está livre ou não.
No topo da matriz de descritores de página, o Linux implementa o sistema Alocação de memória de amigos para agrupar quadros de página gratuitos em listas contendo grupos de quadros de páginas contíguas. A primeira lista contém descritores de quadros de página única, os segundos grupos de dois quadros de página contíguos, o terceiro grupo de quatro quadros de página contíguos e assim por diante. Os blocos são sempre alocados em tamanhos de 2 k páginas. Quando um pedido de ordem k tiver sucesso, o bloco é removido da lista livre k . Se nenhum bloco estiver disponível na lista k , um bloco em uma lista de ordem mais alta poderá ser dividido e as partes restantes serão movidas para listas de ordem inferior, conforme apropriado.