A process is divided into Segments.
The chunks that a program is divided
into which are not necessarily all of the exact sizes are called segments.
Segmentation gives the user’s view of the process which paging does not
provide. Here the user’s view is mapped to physical memory.
Types of Segmentation in Operating Systems
Virtual Memory Segmentation: Each process is divided into a number of
segments, but the segmentation is not done all at once. This
segmentation may or may not take place at the run time of the program.
Simple Segmentation: Each process is divided into a number of
segments, all of which are loaded into memory at run time, though not
necessarily contiguously.
There is no simple relationship between logical addresses and physical
addresses in segmentation. A table stores the information about all such
segments and is called Segment Table.
What is Segment Table?
It maps a two-dimensional Logical address into a one-dimensional Physical
address. It’s each table entry has:
Base Address: It contains the starting physical address where the
segments reside in memory.
Segment Limit: Also known as segment offset. It specifies the length of
the segment.
Translation of Two-dimensional Logical Address to Dimensional Physical
Address.
The address generated by the CPU is divided into:
Segment number (s): Number of bits required to represent the segment.
Segment offset (d): Number of bits required to represent the position of
data within a segment.