Du kannst Segmentierung benutzen, musst das aber nicht. Die meisten i386-Betriebssysteme benutzen ein flaches Speichermodell, d.h. ein einziges 4G-Segment, wo sich -alles- drin tummelt (im 32-Bit-Modus).
Vorteil: keine Segmentierung
Nachteil: du musst dich um die Adressraumbelegung selbst kümmern und kannst nur den Offset-adressierbaren Adressraum verwenden (d.h. 4G bei 32 Bit, 64K bei 16 Bit)
Der Adressraum fängt in jedem Segment bei 0h an und steigt dann bis zur Segmentgröße an. Wenn du keine Segmentierung verwendest, liegen die einzelnen Teile "irgendwo" im Speicher, auch logisch gesehen.
Was ich damit sagen will: Wenn du Code, Daten und Stack deines Programms in verschiedenen Segmenten lagern möchtest, kannst du das tun, musst es aber nicht. Ein flaches Modell ist imho einfacher zu implementieren (sofern Paging vorhanden ist).
Segmentierung brauchst du, wenn du den 64 GB-Adressraum des PPro verwenden willst. Ob 64 Bit-Prozessoren auch ein flaches Speichermodell kennen, weiß ich nicht.
Gruß,
Svenska