gtpc3m0y | Concepts and Structures |
Dispatch control lists (DCL) are the implementation of the CPU loop lists, which were introduced in CPU Loop (Dispatching Work). You may want to review that section before proceeding.
The dispatch control lists (CPU loop lists) are listed here for reference in the order that they are checked by the CPU loop:
Items are added to the bottom of a dispatch control list by various system programs. (There is a list of control program components that place items on the dispatch control lists in CPU Loop (Dispatching Work).) Although the dispatch control lists are processed by the CPU loop in a specific order, which therefore implies an order of processing priority, there is still another level of priority involved. Without this additional level of priority, items would always be added to the bottom of a list. By design, some items associated with control program services are given priority privileges and are placed at the top of the list.
Items are deleted from the top of a dispatch control list only by the CPU loop when it dispatches work. Therefore, items are added by various system processes but are removed only by the CPU loop process.
There is a set of dispatch control lists for each I-stream engine in a central processing complex (CPC) that are referenced through Page 0, therefore eliminating the necessity (and overhead) of processor locking except when processing the cross list (Switching an Entry to Another I-Stream Engine describes cross list processing).
A dispatch control list (DCL), as an implementation of a CPU loop list, is formally a queue or waiting line with a top and bottom. Work is always dispatched (removed) from the top of a list and the succeeding items (more work) are promoted from within the list.
In a DCL item, the fields that are used to manage a DCL are: the block address and the post-interrupt (PI) vector. The block address is the address of a working storage block upon which the program identified by the PI vector operates.
Here is an example to show how work begins in the TPF system.
In a central processing complex (CPC) of only one I-stream engine, this I/O processing example is an accurate sketch for dispatching an Entry for more processing. The procedure is more involved in a CPC of several I-stream engines, but these basic notions still hold true.
All DCLs are circular in nature, which implies that there is a fixed number (maximum) of entries in a list. However, the TPF system uses a technique to dynamically expand a list as it is about to overlap. This is part of the flexibility required in TPF to handle those periods of high system activity.