The data segment is allocated as one single area of physical memory but consists of three distinct parts:
a “per process data area”;
a data area for the user program. This may be further divided into areas for program text, initialised data and uninitialised data;
a stack for the user program.
The size of (a) is always “USIZE” blocks. The sizes of (b) and (c) are given in blocks by “u.u_dsize” and “u.u_ssize”. (It may be noted in passing that the latter two may change during the life of a process.)
A separate text segment containing only pure text is allocated as one single area of physical memory. The internal structure of the segment is not important here.