O processo de gerenciamento de memória é uma das principais tarefas desempenhadas pelo sistema operacional. Os grandes desafios desta atividade é permitir que múltiplos processos consigam compartilhar uma mesma estrutura de memória principal, além de fazer que aplicativos maiores do que a capacidade de memória primária instalada consigam ser executados com sucesso.
Uma das principais soluções utilizada para conseguir que múltiplos processos tenham a capacidade de compartilhar a mesma estrutura de memória é a utilização do endereçamento lógico, associado ao físico. Desta forma, é possível alocar para cada processo um conjunto único e exclusivo de endereços, evitando problemas no acesso aos recursos de armazenamento na memória principal.
Já a memória virtual está relacionada à execução de programas maiores do que o espaço disponível na memória principal. A utilização deste dispositivo faz com que os elementos de memória secundária, como os discos rígidos, sejam vistos como uma extensão da memória RAM, aumentando virtualmente a capacidade de armazenamento em memória principal.
A maior parte dos sistemas operacionais modernos implementam o método de memória virtual através do uso da técnica de paginação, que funciona através da divisão do espaço de endereçamento em estruturas de mesmo tamanho chamadas de páginas. A paginação cria as estruturas de suporte tanto no endereçamento real – onde são chamadas de frames, quando no endereçamento virtual – onde são denominadas páginas virtuais.
Apesar da ilusão de uma memória única, na prática, a parte específica do código do programa que está em execução em um dado momento ainda precisa estar alocado em memória principal. Se no momento em que for referenciado pelo processador o endereço virtual estiver apontando para uma área na memória secundária, esta página deve obrigatoriamente ser transferida para a memória principal.
Como muitas vezes o programa é alocado em memória secundária por falta de espaço na principal, para que uma página seja transferida é necessário primeiro liberar espaço de armazenamento. Para implementar este processo de substituição de páginas foram propostos diversos algoritmos, sendo os mais conhecidos os algoritmos do relógio, o FIFO, o Ótimo, o da página menos frequentemente utilizada, o da página não recentemente utilizada, o da segunda chance e o da página menos recentemente utilizada.