Segmentation is a memory management scheme in which the physical memory is allocated to process in non-contiguous. In segmentation logical address space is divided into number of small blocks called segments.segments are of different sizes i.e unequal so each segment is allocated memory independently.
The responsibility of dividing the program into segments is either of user or compiler. The os is not involved in this process. thus segmentation supports user view of memory. Each Segment has a name and offset associated with it .The address specify the both the name and offset of segment.
In Segmentation, Logical address consist of segment no and offset.
- An offset is a location in distinct segment in main memory.
- The physical memory is organised as one dimensional sequence of bytes.
- Segmentation is based on programmer’s point of view.
- It may lead to fragmentation as segments of different size need to be swapped again and again.
- Provides the dynamic linking.
- Provides virtual memory.
- Eliminate internal fragmentation.
- Increase in the no. of segments in memory increases the size of segment table.
- Programmer must be aware of maximum size limit of segments.