参数表 rt_dptbl(4) 和 ts_dptbl(4) 与两个调度类关联。这些表在引导时使用可装入模块配置,或者在运行时使用 dispadmin(1M) 配置。
实时核心中表用于建立 RT 调度的属性。rt_dptbl(4) 结构包含参数数组 struct rt_dpent_t。n 个优先级别中的每个级别都具有一个参数。给定优先级别的属性由此数组中的第 i 个参数结构 rt_dptbl[i] 指定。
参数结构包含以下成员,这些成员也在 /usr/include/sys/rt.h 头文件中介绍。
与此优先级别关联的全局调度优先级。rt_globpri 的值无法通过 dispadmin(1M) 进行更改。
在周期中分配给此级别进程的时间量程的长度。有关更多信息,请参见时间标记接口。时间量程值只是特定级别进程的缺省值或起始值。通过使用 priocntl(1) 命令或 priocntl(2) 系统调用可更改实时进程的时间量程。
实时管理员可以通过重新配置 config_rt_dptbl 随时更改调度器中实时部分的行为。rt_dptbl(4) 手册页的标题为“替换 rt_dptbl 可装入模块”的一节中介绍了一种方法。
在运行的系统中检查或修改实时参数表的另一种方法是通过 dispadmin(1M) 命令。通过针对实时类调用 dispadmin(1M),可以从内核的核心中表的当前 config_rt_dptbl 配置中检索 rt_quantum 值。覆写当前核心中表时,用于向 dispadmin(1M) 中输入的配置文件必须遵照 rt_dptbl(4) 手册页中所述的特定格式。
以下是具有优先级的进程示例 rtdpent_t,当此类进程可能在 config_rt_dptbl[] 中出现时,其关联的时间量程具有 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, }