ts_dptb のデフォルトバージョンは、/kernel/sched/TS_DPTBL 内のシステムから配信されます。デフォルト構成では、タイムシェアリング優先順位は 60 です。
次の dispadmin -c TS -g コマンドでは、ts_dptbl テーブルの例を表示します。
$ dispadmin -c TS -g # Time Sharing Dispatcher Configuration RES=1000 # ts_quantum ts_tqexp ts_slpret ts_maxwait ts_lwait PRIORITY LEVEL 200 0 50 0 50 # 0 200 0 50 0 50 # 1 200 0 50 0 50 # 2 200 0 50 0 50 # 3 200 0 50 0 50 # 4 200 0 50 0 50 # 5 200 0 50 0 50 # 6 200 0 50 0 50 # 7 200 0 50 0 50 # 8 200 0 50 0 50 # 9 160 0 51 0 51 # 10 160 1 51 0 51 # 11 160 2 51 0 51 # 12 160 3 51 0 51 # 13 160 4 51 0 51 # 14 160 5 51 0 51 # 15 160 6 51 0 51 # 16 160 7 51 0 51 # 17 160 8 51 0 51 # 18 160 9 51 0 51 # 19 120 10 52 0 52 # 20 120 11 52 0 52 # 21 120 12 52 0 52 # 22 120 13 52 0 52 # 23 120 14 52 0 52 # 24 120 15 52 0 52 # 25 120 16 52 0 52 # 26 120 17 52 0 52 # 27 120 18 52 0 52 # 28 120 19 52 0 52 # 29 80 20 53 0 53 # 30 80 21 53 0 53 # 31 80 22 53 0 53 # 32 80 23 53 0 53 # 33 80 24 53 0 53 # 34 80 25 54 0 54 # 35 80 26 54 0 54 # 36 80 27 54 0 54 # 37 80 28 54 0 54 # 38 80 29 54 0 54 # 39 40 30 55 0 55 # 40 40 31 55 0 55 # 41 40 32 55 0 55 # 42 40 33 55 0 55 # 43 40 34 55 0 55 # 44 40 35 56 0 56 # 45 40 36 57 0 57 # 46 40 37 58 0 58 # 47 40 38 58 0 58 # 48 40 39 58 0 59 # 49 40 40 58 0 59 # 50 40 41 58 0 59 # 51 40 42 58 0 59 # 52 40 43 58 0 59 # 53 40 44 58 0 59 # 54 40 45 58 0 59 # 55 40 46 58 0 59 # 56 40 47 58 0 59 # 57 40 48 58 0 59 # 58 20 49 59 32000 59 # 59 $
表 67-3 に、ts_dptbl テーブル内のフィールドを示します。
表 67-3 ts_dptbl テーブル内のフィールド
フィールド名 |
説明 |
---|---|
ts_quantum (実行時) |
スケジューラが、あるプロセスの優先順位を評価し直す前に、そのプロセスを与えられた優先順位で実行できるタイムスライス (デフォルトではミリ秒単位) が入っている。プロセスがそのタイムスライス全体を使い果たすと、期間満了レベル (ts_tqexp) 待ち行列に入る。タイムスライスは、最上位の待ち行列の 40 ミリ秒 (59) から最下位の優先順位の 200 ミリ秒 (0) までになる。 |
ts_tqexp (期間満了レベル) |
タイムスライスが期間満了したプロセスの新しいプロセス優先順位を決定する。プロセスが休眠状態に入らずに全タイムスライスを使い果たすと、スケジューラはその優先順位を ts_tqexp カラムに示されたレベルに変更する。期間満了レベルは前のレベルよりも低くなる。たとえば、優先順位が 30 のプロセスがタイムスライス (80 ミリ秒) を使い果たすと、その新しい優先順位は 20 になる。 |
ts_slpret (休眠レベル) |
休眠状態から戻るときにプロセスに割り当てられる優先順位を決定する。プロセスは、特定のシステムコール中や、入出力の待機中 (ページフォルトのサービス中やロックの待機中など) に休眠状態になることがある。プロセスが休眠状態から戻るときは、常に優先順位 59 が与えられる。 |
ts_maxwait (待ち時間) |
タイムスライスが期間満了しない状態でプロセスがディスパッチ待ち行列に残っている秒数を指定する。タイムスライスを使用しない場合 (ts_maxwait 秒以内) 、その新しい優先順位は ts_lwait に設定される。これは、優先順位の低いプロセスが CPU 時間が不足するのを防ぐために使用される。 |
ts_lwait (待機レベル) |
タイムスライスを完全に取得しないまま最大待ち時間 (ts_maxwait) を超えた、実行準備ができているプロセスの新しい優先順位が入っている。 |
PRIORITY LEVEL |
グローバル優先順位が入っている。より上位の優先レベルで待ち行列に入ったプロセスが最初に実行される。グローバル優先順位は、上位の 59 から下位の 0 までになる。これは、調整できないテーブル内の唯一のカラムである。 |