Processes
Initiation of Processes
Processes are created by communication with process DIRECT, in three
ways:
* By the arrival of a log-on message from the front-end network.
* By a (batch) start-up message from SPOOLR.
* By an operator command to DIRECT: D/START username
For an 'interactive' start, DIRECT first checks that the request is
valid, ie the username is good and the password is correct, and that it
can be honoured, ie the system is 'open to users'.
Next, DIRECT checks that the user does not already have as many
processes running as he is allowed (typically 1 interactive, 1 batch
and a total of 2). The 'invocation number' is calculated and this is
appended to the names of workfiles to make them unique. DIRECT now
creates
a stack file #STK n
a local controller stack file #LCSTK n
the Director GLA #DGLA n
for an interactive start,
a terminal buffer T#IT n
a user information file #UINFI n
If this is done successfully, DIRECT requests Supervisor to start the
new process.
The new process is entered via the procedure Director which
connects
the System Call table
DIRLOG
#UINFI n
then creates and connects the signal stack, #SIGSTK n and connects
the nominated basefile (or the default if none is specified or if the
specified basefile is not available). Finally, it creates and
connects the 'base GLA' #BGLA n. (A total of 7 work files).
Fields in the User Record
The User Record contains several fields which specify how the process
should run. Some of these fields are determined exclusively by the
System Manager, others are controlled by the process owner. These
fields can be set by use of the Director procedure DSFI, invoked either
from the System Manager's process MANAGR or in a previous invocation of
the user's process. Some of the fields may also be set by commands to
the DIRECT process. The following is a list of fields relevant to
process start-up:
Field DSFI TYPE no. DIRECT command
Basefile name 0 D/SETBASEF
Batch basefile name
D/BASEF
Interactive and batch 5
passwords
ACR level at which the 7 (priv.) D/ACR
process is to run
Director version number 8 (priv.)
Process stack file size 10
Process concurrency limits 14 (priv.)
Director monitor level 16
Contingency monitor level 17
Director monitor file name 19
Test basefile name 35
The items marked "priv." may be set only by privileged processes, in
particular, the MANAGR process.
Entry to the subsystem
To enter the subsystem, Director proceeds as follows:
* The processor PC is set to point to the address which is the
basefile segment address plus the contents of the second word of
the basefile.
* The processor LNB is set to the start of the processor stack
segment, currently local segment 4.
* The processor SF is set to be 7 words greater than LNB.
* The processor PSR is set to contain the ACR level equal to that
specified in the ACR field of the index (see Director procedure
DSFI, TYPE=7, a zero field in the index specifies the default
subsystem ACR level, currently 6). Settings of other PSR bits are
not specified.
The subsystem is then entered as though by standard 2900 procedure CALL
with two 32-bit (integer) parameters. The two parameters are:
1) An integer = 1, to be used to achieve compatibility
in the event of future changes.
2) The address of the UINFF record.
The first action of the subsystem should be to copy the GLAP, which
follows the code in the basefile, into the GLA segment. Apart from the
copying, the code which does this may only access the code segment and
the stack segment.
Process Termination
When a process terminates under control of Director (as should always
be the case in principle), Director prints a message in Dirlog
indicating the reason for stopping. If the subsystem requested
termination of the process by calling Director procedure DSTOP, the
integer parameter REASON is printed. Conventionally, 100 means success
and values greater than this indicate an error condition detected by
the Subsystem. However, if Director initiates the stop sequence, for
example because a contingency has been incorrectly handled, then a
REASON less than 100 is printed.