Segments are completely independent address spaces that are provided to machine.
Each and every segment consists of a linear sequence of addresses, from 0 to maximum allowed.
Each segment length may be anything but from 0 to the maximum allowed.
The length of the segment may change during execution.
The stack segment length may be increased when something is pushed onto the stack and decreased whenever something is popped off the stack.
Different segments can grow/shrink without affecting one another because each segment constitutes a separate address space.
Segmentation also facilitates sharing procedures/data between some processes.
|Need the computer programmer be aware that this technique is being used ?||No||Yes|
|How many linear address spaces are there ?||1||Many|
|Can the total address space exceed the size of physical memory ?||Yes||Yes|
|Can procedures and data be distinguished and separately protected ?||No||Yes|
|Can tables whose size fluctuates be accommodated easily ?||No||Yes|
|Is sharing of procedures between users facilitated ?||No||Yes|
|Why was this technique invented ?||To get a large linear address space||To allow the programs and data to be broken up into logically independent address spaces and to aid sharing and protection|