When a program is compiled or assembled, the segments are set up according to the
program’s structural modules. Each segment is numbered and a Segment Map Table
(SMT) is generated for each job; it contains the segment numbers, their lengths, access
rights, status, and (when each is loaded into memory) its location in memory. Figures
3.13 and 3.14 show the same job, Job 1, composed of a main program and two subroutines,
together with its Segment Map Table and actual main memory allocation.