While the job management system handles all jobs, all tasks are controlled and managed by the task management system.
The central functions of task management are:
creating tasks
interrupt analysis and processing
management of register save areas
supply of data to central tables of the Executive
activating tasks
initiating tasks
moving tasks within and between queues
deactivating tasks
terminating tasks
The name PRIOR designates those task management routines which control:
tasks by means of categories and task scheduling priorities
system utilization through internal control functions
Tasks are generally vehicles for interruptible BS2000 processes. A distinction is made between user and system tasks.
User task
All user jobs, including privileged ones, are managed as user tasks which were passed by the job management system to the task management system as:
interactive tasks (timesharing mode; task type X'40')
batch tasks (batch mode; task type X'20')
System task
System tasks assume a wide range of system functions. Some system tasks are permanent (TCB pregenerated in class 1 memory), but most are dynamically generated and terminated as required.
These system tasks are assigned specific task identifiers (TIDs) and TSNs, by means of which they can be unambiguously identified.
The most important system tasks, both permanent and dynamically (during startup or as required) generated, are described in the tables below.
TID | TSN | Functions |
0001 0001 | TSC | Emergency job scheduler $SYSJS for job class $SYSJC, in which in particular all other job schedulers run. |
0001 0003 | RMM | Main memory check during startup |
0001 0005 | PT5 | Periodic task 5: every 10 seconds it checks, among other things, the lifetime (waiting time excess) in the bourse mechanism |
0001 0006 | PT6 | Periodic task 6 of job management: for operations that are to execute at a defined time (“AT”); checks repeat jobs (interval elapsed?) |
0001 0007 | PGE | Paging error recovery task |
0001 0008 | UCO | Universal console UCON: distributes console commands and messages to the responsible agency (operator task for normal operator commands, $CONSOLE application for special operator commands); implements the application $CONSOLE |
0001 0009 | REK | Responsible for reconfiguration |
0001 000A | VMM | Memory management task: manages the slot pools, e.g. for stacks, bourse control blocks |
0001 000B | MSG | Responsible for message handling |
0001 000C | KTT | Console driver task: I/O for console devices |
Table 28: Permanent (preallocated) system tasks
TSN | belongs to ... | Functions |
RUNT | Operator task: processes normal operator commands from a RUN file | |
Xxxx | General system work tasks, e.g. MSCF server task, import/export task, operator task (processing and execution of the normal operator commands) | |
CLOG | Console logging (SYS.CONSLOG) | |
RP01 | SRPM task; manages the user catalog of the home pubset | |
RP02 | SRPM task; manages the user catalog of all other pubsets | |
HELT | Manages the hardware error file SYS.HEL.<date>.<time> | |
HERS | HERS task; initiates HEL entries in the case of machine errors | |
SERS | Manages the error file SYS.SERSLOG.... | |
REPL | Maintains the logging file REPLOG and logs REP before-image | |
DSSM | Tasks of dyn. subsystem management | Dynamic subsystem monitor |
HTnn | Help tasks for DSSM | |
NKA | Task of nucleus device management NDM | Resource management |
DM | Disk monitor | |
TM | Tape monitor | |
NKS | Resource allocation | |
ACCT | Tasks of the accounting system | Processes the accounting file |
BCAM | Tasks of the openNet server system component | Message pool management; processing of /BC commands |
BCAH | Holder task for data which survives a /BCEND | |
BCAF | File access task (e.g. reading the processor file) | |
BCAC | Cryptographic task; handles encrypted and decrypted requests when IPSec is used | |
BCA0 | Transfer task for data communication using TCP/IP | |
BCAT | Transfer task for data communication using other protocols | |
DIAA | TIAM task; generates dialog tasks (for virtual hosts also: DIAB, DIAC, ...) | |
DBxx | Tasks of the disk access buffer DAB | |
DRV | Task of the software product DRV | |
SNAP | SNAP task for the implementation of the SNAP dump function | |
S | System tasks of SPOOL | SPOOL scheduler; generates SPOOL tasks and supplies them with jobs, responsible for SPOOL commands |
SPAx | SPOOL output writer; responsible for SPOOLOUT | |
SPMG | spool message task; responsible for message output | |
xxxx | SPOOL task (device controller task); assigned to a SPOOL device (TSN is allocated by the system) | |
RSO | Remote SPOOL (RSO-Spool) | |
RSAx | RSO output writer | |
EQS | Management of file $TSOS.EQUISAMQ | |
M | New message handler | |
ISDS | Management of the ISAM pools | |
IOTD | Tasks for input/output management when disks (IOTD) and tapes (IOTT) are reconfigured | |
JOBP | Job pool controller task: management of the job pool file for batch jobs | |
TSNA | TSN file manager: management of the file TSOJOIN.TSNN | |
TIME | Timer management: clock synchronization with external timers for setting summer/winter time | |
DRTx | Domain reconfiguration tasks on SU x86 | |
MSCF | System tasks of the software product MSCF | Task for the implementation of the MRS link |
FTCP | Task of the openFT software product | File Transfer Control Process |
SM2G | System tasks of the openSM2 software product | Software monitor scanning task |
SM2W | openSM2 write task | |
SM2U | openSM2 task for user monitoring operations | |
SATP | System tasks of the software product SECOS | SAT parameter file management |
PRxx | GUARDS server task, manages the guards catalog of a pubset | |
SATT | SECURITY-AUDIT-TRAIL task for SAT file management |
Table 29: Important dynamically generated system tasks
Task categories
Every task is assigned to a category. In addition to the four standard categories SYS, TP, DIALOG and BATCH, the task management system supports twelve further categories, the names of which are specified during job class definition.
The following applies for the four standard categories:
SYS TP DIALOG BATCH | for system tasks only for transaction tasks (inquiry and transaction processing) for interactive tasks (timesharing mode) for batch tasks (batch mode) |
In addition, there are four task attributes whose names are identical to the standard category names SYS, TP, DIALOG and BATCH. Special runtime parameters important for task scheduling are assigned to the task attributes.
As opposed to the other task attributes, the TP task attribute features optimized memory management especially geared to the requirements of inquiry and transaction processing. This attribute can be obtained either by definition in the job classes allocated to the jobs or by calling the TINF macro (see the “Executive Macros” manual [30]). The required authorization must be contained in the user catalog.
The task category feature is available only to the system management (in exceptional cases to the operator as well) via the command interface. Using the MODIFY-TASK-CATEGORIES command the system administration specifies the relative importance of each category for the activation process (= allocation of main memory).
For this purpose the following category attributes are specified:
WEIGHT | Importance |
MINMPL | Minimum number of tasks to be kept active |
MAXMPL | Maximum number of tasks to be kept active |
IO-PRIO | I/O priority of all tasks in this category |
Whether a task is activated, deactivated or preempted depends not only on the category attributes, but also on the system workload and the priority of the task concerned.
As a category is usually assigned several tasks, category control is always group-specific. In an evaluation of the effects of category control, the following situations have to be distinguished:
In the underload and normal-load ranges, category control is negligible.
In the full-load and overload ranges, i.e. during resource bottlenecks, category control is of major importance in load limitation (categories of minor significance are restrained.
The MOVE-TASK-TO-CATEGORY command, IO-PRIORITY operand, can be used to determine the I/O priority of all tasks in the specified category. This value is evaluated only if the IORM subsystem has been started. The default *NONE means that all tasks in this category are assigned an I/O priority derived from the task priority (implicit I/O priority). The I/O priorities are evaluated by the IORM subsystem solely for the purpose of task-specific control of inputs/outputs, with runtime control both by PRIOR and by the PCS subsystem.
Systems support can use the MOVE-TASK-TO-CATEGORY command to modify the assignment of a task to a category if, for example, different (better) support of this task or a reduction of the load on a category is required (with or without the use of PCS). Target categories must be JMS categories and may not be successor categories. The SYS category is not supported as a source or target category.
Choosing the right category values is not an easy undertaking. Therefore it is advisable - particularly for large servers - to carry out performance studies over a prolonged period of time. The necessary data can be obtained with the aid of the software monitor SM2 (see the “openSM2” [49] and “SM2-PA” [50] manuals). Further information is contained in the “Performance Handbook” [37].
Command | Meaning |
ADD-USER | Create an entry in the user catalog, indicating whether or not the user tasks may be deactivated |
CANCEL-JOB | Cancel a user job |
CHANGE-TASK-CPU-LIMIT | Increase the maximum CPU time of a batch job |
CHANGE-TASK-PRIORITY | Change the job or task priority |
ENTER-JOB | Start the command sequence stored in an ENTER file as a batch job, specifying the task priority |
FORCE-JOB-CANCEL | Cancel a user job |
HOLD-TASK | Hold a user job |
MODIFY-TASK-CATEGORIES | Control allocation of CPU, main memory and I/O processor to the individual categories, define priorities of the categories, and specify I/O priorities for all tasks of a category |
MOVE-TASK-TO-CATEGORY | Modify the category assignment of a task |
RESUME-TASK | Release a user job on hold |
SET-LOGON-PARAMETERS | Start an interactive or batch job, specifying the task priority |
SHOW-JOB-STATUS | Request information about a user job |
SHOW-SYSTEM-STATUS | Request information on job classes and job streams |
SHOW-USER-ATTRIBUTES | Request information on maximum task priority |
SHOW-USER-STATUS | Request information on groups of user jobs |
Macro | Meaning |
PASS | Wait one second |
TINF | Read and change task attributes |
TSPRIO | Output run priorities |
VPASS | Wait |
Table 30: Interface overview for task management