この節では、スケジューラの構成を制御する調整可能パラメタについて説明します。これらのカーネルパラメタを変更するには、次の書式の 1 行を /etc/system ファイルに入力します。
set パラメタ=value
詳細は、system(4) のマニュアルページを参照してください。
この節で説明するパラメタは、プロセススケジューリング、タイムシェアリングポリシー、およびリアルタイムポリシーについて詳細に制御します。
リアルタイムプロセスの初期優先順位は、そのプロセスがリアルタイムスケジューリングクラスに入れられるときに決定されます。
priocntl -p コマンドを使用すると、リアルタイムクラス内で相対優先順位を指定できます。
これは、リアルタイムクラスの基本優先順位に追加されます。基本優先順位のデフォルトは 100 です。たとえば、下記のように入力すると、リアルタイム優先順位 120 でコマンドが実行されます。
priocntl -e -c RT -p 20 command
次のカーネルパラメタは、プロセススケジューリングについて詳細に制御します。
maxclsyspri
システムクラス内のプロセスの最大グローバル優先順位です。カーネルがシステムプロセスを起動するときに、参照ポイントとして maxclsyspri の値を使用して優先順位を割り当てます。カーネルはシステムクラスの優先順位全体の範囲が少なくとも 40 であると見なすので、maxclsyspri の値は 39 以上でなければなりません。
このパラメタを変更する場合は、割り当てる最大優先順位に対応する値を使用して、スケジューリングクラステーブルを再構築しなければなりません。
次のパラメタは、タイムシェアリングポリシーを制御するロード可能モジュール TS 内で指定します。
ts_maxupri
ユーザーが priocntl(l) コマンドや priocntl(2) システムコールを使用してタイムシェアリングプロセスの優先順位を調整できる範囲を指定します。タイムシェアリングクラス内でユーザーが与える優先順位の有効な範囲は、+ts_maxupri から -ts_maxupri までです。ts_maxupri のデフォルト値は 20 です (この場合、古くてあまり一般的でないスケジューラインタフェース nice と setpriority の動作をエミュレートして、+20 から -20 までの範囲を設定します)。
ts_maxupri の値は、構成されているグローバルタイムシェアリング優先順位の数の影響を受けません。デフォルト構成では、0 から 59 までのタイムシェアリングポリシーがあります。しかし、ユーザーはシステムで計算されたプロセスの優先順位に対して、-20 から +20 までの範囲内でのみ優先順位を調整できます。詳細は、「優先順位を指定する方法」を参照してください。
このパラメタの値を変更するには、次の書式の 1 行を /etc/system に入力します。
set TS:ts_maxupri=value
次のパラメタは、リアルタイムポリシーを制御するロード可能モジュール RT 内で指定します。