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.