Załóżmy, ze pojemność pamięci przydzielona jednemu zadaniu wynosi 8 MB, co oznacza, że zezwalamy na używanie w programie 23 – bitowych adresów (2 23 = 8 M). Pojemność pamięci operacyjnej wynosi 2 MB więc długość adresu fizycznego wynosi 21 bitów. Ponieważ pojemność PAO jest mniejsza niż wielkość programu, tylko część programu będzie do niej załadowana. W naszym przypadku są to 2 MB. Program w całości będzie przechowywany w pamięci masowej, np. na dysku. Program zarówno w PAO, jak i w PM dzielimy na bloki. W naszym przypadku są to bloki o jednakowej wielkości równej 1 MB (jest to pewne uproszczenie w stosunku do rzeczywistej sytuacji, służące jaśniejszemu przedstawieniu zawartości deskryptora). Każdy z bloków ma na dysku unikalny numer, w naszym przypadku jest to liczba 3-bitowa. W pamięci operacyjnej utworzona jest specjalna tablica, zwana tablicą deskryptorów. Liczba pozycji w tej tablicy musi być równa liczbie bloków w PM, na jakie został podzielony program. Inaczej mówiąc, każdy blok programu musi mieć swój deskryptor. Każdy z deskryptorów składa się z dwóch części: bitu obecności bloku i adresu bazowego (21-bitowego) podającego, w którym miejscu w pamięci operacyjnej został umieszczony dany blok. Bit obecności równy 1 oznacza obecność danego bloku programu w PAO. W naszym przykładzie do pamięci operacyjnej załadowane są bloki programu o numerach 5 i 3 (numery tych bloków zostały dla większej czytelności rysunku umieszczone zarówno w PM, jak i PAO). W deskryptorach odpowiadającym blokom 3 i 5 bity obecności mają wartość 1. W deskryptorach pozostałych bloków wartość ta wynosi 0. Ponadto w deskryptorze bloku 3 umieszczony jest adres 100000h, co oznacza, że blok 3 rozpoczyna się w pamięci operacyjnej od adresu 100000h. Podobnie dla bloku 5 adres bazowy wynosi 000000h. Załóżmy teraz, że program odwołuje się do adresu wirtualnego 3FFFFFh. Adres jest dzielony na dwie części: pole selektora i pole przesunięcia. Pole selektora (u nas 3-bitowe) określa, w którym bloku programu znajduje się poszukiwana informacja, czyli wskazuje, którego deskryptora należy użyć podczas translacji adresu wirtualnego na rzeczywisty. Zauważmy, że pole to musi mieć taką długość, aby móc ponumerować wszystkie bloki przydzielone dla jednego programu, czyli aby obsłużyć całą przestrzeń pamięci wirtualnej przydzielonej programowi. W naszym przypadku pole to musi mieć długość 3 bitów, gdyż program może się składać z ośmiu bloków. Przesunięcie określa, jak daleko od początku bloku znajduje się poszukiwana informacja. W naszym przypadku selektor zawiera liczbę 3. Oznacza to, że poszukiwana informacja znajduje się w bloku 3. *PAO – Pamięć operacyjna.