RT と TS の両方のスケジューリングクラスには、パラメータテーブル rt_dptbl(4) および ts_dptbl(4) が関連づけられています。これらのテーブルは、ブート時にロード可能なモジュールを使用するか、実行時に dispadmin(1M) を使用することで設定されます。
リアルタイムのための中心となるテーブルで、RT スケジューリングの設定項目を指定します。rt_dptbl(4) 構造体はパラメータの配列 struct rt_dpent_t から構成されます。n 個の優先順位レベルはそれぞれ 1 つのパラメータを持っています。ある優先順位レベルの設定項目は、配列内の i 番目のパラメタ構造体 rt_dptbl[i] によって指定されます。
パラメータ構造体は次のメンバーから構成されます (これらは、/usr/include/sys/rt.h ヘッダファイルでも説明されています)。
この優先順位レベルに関係づけられているグローバルスケジューリング優先順位。dispadmin(1M) では、rt_globpri の値は変更できない
このレベルのプロセスに割り当てられるタイムカンタムの長さを目盛で表したもの。詳細は、タイムスタンプインタフェースを参照。タイムカンタム値は、特定のレベルのプロセスのデフォルト値、つまり開始値。リアルタイムプロセスのタイムカンタムを変更するには、priocntl(1) コマンドまたは priocntl(2) システムコールを使用する
リアルタイムのシステム管理者は、いつでも config_rt_dptbl を再設定して、スケジューラのリアルタイム部分の動作を変更できます。1 つの方法は rt_dptbl(4) のマニュアルページの「Replacing the rt_dptbl Loadable Module」という節で説明されています。
もう 1 つの方法は、dispadmin(1M) コマンドを使用して、実行中のシステムでリアルタイムパラメタテーブルを調査または変更する方法です。dispadmin(1M) をリアルタイムクラスで起動すると、カーネルの中心テーブルにある現在の config_rt_dptbl 内から現在の rt_quantum 値を取り出すことができます。現在の中心テーブルを上書きするとき、dispadmin(1M) への入力に使用される設定ファイルは rt_dptbl(4) のマニュアルページで説明されている書式に準拠する必要があります。
次に、config_rt_dptbl[] 内の優先順位を設定されたプロセス rtdpent_t とそれに関連づけられたタイムカンタム値の例を示します。
rtdpent_t rt_dptbl[] = { 129, 60, /* 優先順位レベルのタイムカンタム */ 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, }