Segmentation is a memory management technique used in operating systems to divide a program into different segments based on the logical division of a program, such as:
Unlike paging, segmentation divides memory logically rather than into fixed-size blocks.
-
Segment: A logical unit such as function, object, or data structure.
-
Segment Table: Keeps the base address and limit (length) of each segment.
-
Logical Address: Consists of a segment number and an offset.
-
Physical Address: Calculated by adding the offset to the segment’s base address from the segment table.
Diagram: Segmentation
Here's a neat conceptual diagram of how segmentation works:

Example:
If the logical address is (Segment 2, Offset 50) and Segment 2 has a base address of 1000 and a limit of 200:
Advantages of Segmentation:
-
Logical division of programs
-
Supports dynamic memory allocation
-
Better memory protection and sharing
Disadvantages: