W wyniku segmentacji pamięci wirtualna przestrzeń adresowa procesu
zostaje podzielona na części logiczne (kod programu, dane oraz stos) o
rozmiarach zależnych od potrzeby. Poszczególne części logiczne są określane
mianem segmentów i mogą zawierać: program główny, podprogram, zbiór
procedur, zbiór danych, stos programu, itp. Podział wirtualnej przestrzeni
adresowej na poszczególne segmenty może być wykonany przez programistę,
jak to ma miejsce podczas tworzenia programu w języku assemblera, lub przez
kompilator (w przypadku programowania w językach wysokiego poziomu).
Maksymalny rozmiar segmentu jest określony przez długość adresu wirtualnego
(liczbę bitów w adresie) określającego offset w segmencie.
W przypadku, gdy wirtualna przestrzeń adresowa
procesu zawiera N segmentów, to każdy z segmentów może posiadać rozmiar
równy maksymalnemu rozmiarowi segmentu. Dla każdego z segmentów jest
określony adres wirtualny w postaci pary liczb określających: numer segmentu
oraz adres względny w segmencie (offset).