A memory segment is the division structure of the segmented memory model.
Internally, all the segments that are defined for a system are mapped into the processor’s linear address space.
The primary reason for using segmented memory is to increase the reliability of programs and systems. For example, placing a program’s stack in a separate segment prevents the stack from growing into the code or data space and overwriting instructions or data, respectively.
A program may have many independent of them to keep the type of data separate:
A segment selector is the unique identifier of a segment and is used in the first part of logical address. See Memory Segment - Segment Selector
Programs running on an IA-32 processor can address up to 16,383 segments of different:
- and types.
On IA-32 processor, each segment can be as large as 232 bytes.
Internally, all the segments are mapped into the processor’s linear address space.