Associated with both scheduling classes is a parameter table, rt_dptbl(4), and ts_dptbl(4). These tables are configurable by using a loadable module at boot time, or with dispadmin(1M) during runtime.
The in-core table for real-time establishes the properties for RT scheduling. The rt_dptbl(4) structure consists of an array of parameters, struct rt_dpent_t, one for each of the n priority levels. The properties of a given priority level are specified by the ith parameter structure in the array, rt_dptbl[i].
A parameter structure consists of the following members (also described in the /usr/include/sys/rt.h header file).
|
rt_globpri |
The global scheduling priority associated with this priority level. The rt_globpri values cannot be changed with dispadmin(1M). |
|
rt_quantum |
The length of the time quantum allocated to processes at this level in ticks (see "Timestamp Functions"). The time quantum value is only a default or starting value for processes at a particular level. The time quantum of a realtime process can be changed by using the priocntl(1) command or the priocntl(2) system call. |
A real-time administrator can change the behavior of the real-time portion of the scheduler by reconfiguring the config_rt_dptbl at any time. One method is described in rt_dptbl(4) in the section titled "REPLACING THE RT_DPTBL LOADABLE MODULE."
A second method for examining or modifying the real-time parameter table on a running system is through using the dispadmin(1M) command. Invoking dispadmin(1M) for the real-time class allows retrieval of the current rt_quantum values in the current config_rt_dptbl configuration from the kernel's in-core table. When overwriting the current in-core table, the configuration file used for input to dispadmin(1M) must conform to the specific format described in rt_dptbl(4).
Following is an example of prioritized processes rtdpent_t with their associated time quantum config_rt_dptbl[] value as they might appear in config_rt_dptbl[]:
rtdpent_t rt_dptbl[] = { 129, 60,
/* prilevel Time quantum */ 130, 40,
100, 100, 131, 40,
101, 100, 132, 40,
102, 100, 133, 40,
103, 100, 134, 40,
104, 100, 135, 40,
105, 100, 136, 40,
106, 100, 137, 40,
107, 100, 138, 40
108, 100, 139, 40,
109, 100, 140, 20,
110, 80, 141, 20,
111, 80, 142, 20,
112, 80, 143, 20,
113, 80, 144, 20,
114, 80, 145, 20,
115, 80, 146, 20,
116, 80, 147, 20,
117, 80, 148, 20,
118, 80, 149, 20,
119, 80, 150, 10,
120, 60, 151, 10,
121, 60, 152, 10,
122, 60, 153, 10,
123, 60, 154, 10,
124, 60, 155, 10,
125, 60, 156, 10,
126, 60, 157, 10,
126, 60, 158, 10,
127, 60, 159, 10,
128, 60, }