Cel stosowania segmentacji

Początkowo segmentację wprowadzono, w celu poradzenia sobie z adresowaniem ,,dużych'' (np. 1MB) pamięci przy użyciu niewielkich liczb (np. 16-bitowych). Wtedy przy użyciu pary takich liczb (właśnie w postaci segment:offset) można już było sobie poradzić z zaadresowaniem tego ,,ogromu'' pamięci!

Obecnie segmentację stosuje się z zupełnie innych powodów. Głównym z nich jest podział logiczny pamięci procesu na spójne bloki pamięci, z których każdy ma dane opisujące jeden ważny aspekt procesu. Najczęściej wyróżnia się segment kodu, danych i stosu. Wszak z punktu widzenia użytkownika, istotny jest podział logiczny programu i dużo łatwiej jest myśleć o segmencie np. kodu niż o wszystkich jednostkach alokacji pamięci składających się na segment. Ponadto takie ujęcie sprawy szalenie ułatwia zarządzanie pamięcią gdy trzeba wprowadzić:
-- ochronę pamięci (szczególnie segment kodu)
-- wymianę pamięci (szczególnie segmenty danych, choć nie tylko)
-- współdzielenie pamięci między wiele procesów (np. segment danych przy komunikacji międzyprocesowej)


Tomasz Szymko 27 listopada 2001