Segmentação
A segmentação é um esquema de gerenciamento de memória que consiste da ideia de que o endereçamento lógico é uma coleção de segmentos. Cada um desses segmentos possui um nome ou número(uma espécie de rótulo) na memória e o seu deslocamento dentro deste segmento.
A segmentação tem como base a ideia de que na memória lógica temos uma tabela de segmentos, cujos endereços de base e de limite são o ínicio e o fim do segmento na memória física.

Figura - Endereços de base e limite para colocação de processos na memória

Figura - Áreas compartilhadas em uma memória segmentada
A proteção de segmentos é facilitada nesse esquema, pois pode-se definir áreas comuns para instrução (não modificáveis) e áreas diversas para dados. Em casos de acessos múltiplos ao mesmo programa, por exemplo um banco de dados, o programa é o mesmo, só se modificam os dados das instâncias que este banco de dados está usando.
O esquema de segmentação sofre com a fragmentação externa de memória, quando os blocos de memória livres são pequenos demais para acomodar um segmento inteiro. Estes problemas são resolvidos com a utilização de algoritmos do tipo Best-Fit e First-Fit.


