One copy of the “user” structure is an essential ingredient of each “per process data area”. At any one time there is exactly one copy of the “user” structure which is accessible. This goes under the name “u” and is always to be found at kernel address 0140000 i.e. at the beginning of the seventh page of the kernel address space.
The “user” structure has more elements than can be conveniently or usefully introduced here. The comment accompanying each declaration on Sheet 04 succinctly suggests the function of each element.
For the moment you should notice:
“u_rsav”, “u_qsav” , “u_ssav” which are two word arrays used to store values for r5, r6;
“u_procp” which gives the address of the corresponding “proc” structure in the “proc” array;
“u_uisa[16]”, ”u_uisd[16]” which store prototypes for the page address and description registers;
“u_tsize”, “u_dsize”, “u_ssize” which are the size of the text segment and two parameters defining the size of the data segment, measured in 32 word blocks.
The remaining elements are concerned with:
saving floating point registers (not for the
PDP11/40);
user identification;
parameters for input/output operations;
file access control;
system call parameters;
accounting information.