プログラミングインタフェース

その他のインタフェースとの関係

あるタイムシェアリングクラスのプロセスの優先順位を変更すると、そのタイムシェアリングクラスのほかのプロセスの動作に影響する可能性があります。この節では、スケジューリングの変更がどのようにほかのプロセスに影響するかについて説明します。

カーネルプロセス

カーネルのデーモンやハウスキーピングプロセスはシステムスケジューリングクラスのメンバーです。ユーザーは、このクラスにプロセスを追加または削除したり、これらのプロセスの優先順位を変更したりすることはできません。ps -cel コマンドを実行すると、すべてのプロセスのスケジューリングクラスが示されます。ps(1) コマンドで -f オプションを指定すると、システムクラスのプロセスには、CLS カラムの SYS と表示されます。

forkexec の使用法

スケジューリングクラス、優先順位、その他のスケジューリングパラメータは、fork(2) インタフェースや exec(2) インタフェースを実行した場合も継承されます。

nice の使用法

nice(1) コマンドと nice(2) インタフェースは、UNIX システムの以前のバージョンと同じ動作になります。これらのコマンドは、タイムシェアリングプロセスの優先順位を変更します。これらのインタフェースでも、数値が小さいほどタイムシェアリング優先順位は高くなります。

プロセスのスケジューリングクラスを変更したり、リアルタイム優先順位を指定したりするには、priocntl(2) を使用します。数値が大きいほど優先順位は高くなります。

init(1M)

init(1M) プロセスは、スケジューラに対しては特殊なケースとして動作します。init(1M) のスケジューラの設定項目を変更するには、idtypeid、または procset 構造体で、init だけをプロセスに指定する必要があります。