User guide
78 DC 900-1338I
Protocol Software Toolkit Programmer Guide
4.3.2.1 Number of Configured Task Control Structures
The cf_ntask field of the configuration table defines the number of task control blocks
to be allocated in the system. Task control blocks are allocated sequentially, forming an
array of structures. The task ID is used as an index into the array to locate a particular
task control block. Therefore, the processing time required to access any task control
block is fixed and is not dependent on the number of task control blocks in the system.
Likewise, and for the same reason, the number of queue control blocks, alarm control
blocks, partition control blocks, and resource control blocks has no effect on system
performance.
4.3.2.2 Number of Configured Priorities
The cf_nprior field of the configuration table determines the number of task priorities to
be defined. A dispatch queue is created for each priority. When the head pointer for a
particular dispatch queue is zero, the queue is empty (in other words, no task is sched-
uled for execution at that priority). When the head pointer is non-zero, it contains the
address of a task control block corresponding to a task that is scheduled for execution
at that priority. Whenever a task switch occurs, the system dispatcher tests the head
pointer of each dispatch queue, in order of priority, until a non-zero value is encoun-
tered, then dispatches the task indicated by the task control block address. Because the
dispatch queues are searched sequentially, a large number of priorities can adversely
affect system performance. There is no benefit to configuring more priorities than
required by the system design.