rt_dptbl(4) FILE FORMATS rt_dptbl(4)
NAME
rtdptbl - real-time dispatcher parameter table
DESCRIPTION
The process scheduler (or dispatcher) is the portion of the
kernel that controls allocation of the CPU to processes.
The scheduler supports the notion of scheduling classes
where each class defines a scheduling policy, used to
schedule processes within that class. Associated with each
scheduling class is a set of priority queues on which ready
to run processes are linked. These priority queues are
mapped by the system configuration into a set of global
scheduling priorities which are available to processes
within the class. (The dispatcher always selects for execu-
tion the process with the highest global scheduling priority
in the system.) The priority queues associated with a given
class are viewed by that class as a contiguous set of prior-
ity levels numbered from 0 (lowest priority) to n (highest
priority-a configuration dependent value). The set of glo-
bal scheduling priorities that the queues for a given class
are mapped into might not start at zero and might not be
contiguous (depending on the configuration). The real-time
class maintains an in-core table, with an entry for each
priority level, giving the properties of that level. This
table is called the real-time dispatcher parameter table
(rtdptbl). The rtdptbl consists of an array of parameter
structures (struct rtdpent), one for each of the n priority
levels. The properties of a given priority level i are
specified by the ith parameter structure in this array
(rtdptbli). A parameter structure consists of the follow-
ing members. These are also described in the
/usr/include/sys/rt.h header file.
rtglobpri
The global scheduling priority associated with this
priority level. The mapping between real-time
priority levels and global scheduling priorities is
determined at boot time by the system configuration.
The rtglobpri values cannot be changed with
dispadmin(1M).
rtquantum
The length of the time quantum allocated to
processes at this level in ticks (HZ). The time
quantum value is only a default or starting value
for processes at a particular level as the time
quantum of a real-time process can be changed by the
user with the priocntl command or the priocntl sys-
tem call.
An administrator can affect the behavior of the real-time
portion of the scheduler by reconfiguring the rtdptbl.
1
rt_dptbl(4) FILE FORMATS rt_dptbl(4)
There are two methods available for doing this.
MASTER FILE
The rtdptbl can be reconfigured at boot time by specifying
the desired values in the rt master file and reconfiguring
the system using the auto-configuration boot procedure; see
mkboot(1M) and master(4). This is the only method that can
be used to change the number of real-time priority levels or
the set of global scheduling priorities used by the real-
time class.
DISPADMIN CONFIGURATION FILE
The rtquantum values in the rtdptbl can be examined and
modified on a running system using the dispadmin(1M) com-
mand. Invoking dispadmin for the real-time class allows the
administrator to retrieve the current rtdptbl configuration
from the kernel's in-core table, or overwrite the in-core
table with values from a configuration file. The configura-
tion file used for input to dispadmin must conform to the
specific format described below. Blank lines are ignored
and any part of a line to the right of a # symbol is treated
as a comment. The first non-blank, non-comment line must
indicate the resolution to be used for interpreting the time
quantum values. The resolution is specified as
RES=res
where res is a positive integer between 1 and 1,000,000,000
inclusive and the resolution used is the reciprocal of res
in seconds. (For example, RES=1000 specifies millisecond
resolution.) Although very fine (nanosecond) resolution may
be specified, the time quantum lengths are rounded up to the
next integral multiple of the system clock's resolution.
For example, the finest resolution currently available on
the 3B2 is 10 milliseconds (1 ``tick''). If res were 1000 a
time quantum value of 34 would specify a quantum of 34 mil-
liseconds, which would be rounded up to 4 ticks (40 mil-
liseconds) on the 3B2. The remaining lines in the file are
used to specify the rtquantum values for each of the real-
time priority levels. The first line specifies the quantum
for real-time level 0, the second line specifies the quantum
for real-time level 1, etc. There must be exactly one line
for each configured real-time priority level. Each
rtquantum entry must be either a positive integer specify-
ing the desired time quantum (in the resolution given by
res), or the symbol RTTQINF indicating an infinite time
quantum for that level.
EXAMPLE
The following excerpt from a dispadmin configuration file
illustrates the format. Note that for each line specifying
a time quantum there is a comment indicating the correspond-
ing priority level. These level numbers indicate priority
within the real-time class, and the mapping between these
2
rt_dptbl(4) FILE FORMATS rt_dptbl(4)
real-time priorities and the corresponding global scheduling
priorities is determined by the configuration specified in
the rt master file. The level numbers are strictly for the
convenience of the administrator reading the file and, as
with any comment, they are ignored by dispadmin on input.
dispadmin assumes that the lines in the file are ordered by
consecutive, increasing priority level (from 0 to the max-
imum configured real-time priority). The level numbers in
the comments should normally agree with this ordering; if
for some reason they don't, however, dispadmin is unaf-
fected.
3
rt_dptbl(4) FILE FORMATS rt_dptbl(4)
# Real-Time Dispatcher Configuration File
RES=1000
# TIME QUANTUM PRIORITY
# (rtquantum) LEVEL
100 # 0
100 # 1
100 # 2
100 # 3
100 # 4
100 # 5
90 # 6
90 # 7
. . .
. . .
. . .
10 # 58
10 # 59
FILES
/usr/include/sys/rt.h
SEE ALSO
dispadmin(1M), priocntl(1), priocntl(2), master(4),
mkboot(1M) ``Scheduler'' chapter in the System
Administrator's Guide
4