O conceito de página, fundamental para a paginação, é uma criação do sistema operacional para facilitar a gerência de memória. Programadores e compiladores não enxergam a memória lógica dividida em páginas, mas sim em segmentos. Um programa dividi-se em quatro segmentos: código, dados alocados estaticamente, dados alocados dinamicamente e pilha de execução. O programador atribui nomes aos segmentos e o compilador transforma esses nomes em números.
O grande atrativo da segmentação está na facilidade para compartilhar memória. Cada segmento representa uma parte especifica do programa, podendo ou não ser compartilhado. Segmentos tendem a ser homogêneos nesse sentido. Isto é, todo segmento pode ser compartilhado, ou nenhuma parte do segmento pode ser compartilhada.
Segmentação paginada
Na segmentação paginada o espaço lógico é formado por segmentos, e cada segmento é dividido em páginas lógicas. Cada segmento possui uma tabela de páginas associada. Quando endereçar a memória, a tabela de segmentos indica, para cada segmento onde a tabela de páginas está. Essa tabela é usada para transformar o endereço de página lógica de determinado segmento em endereço de página física, como é feito na paginação.