idprio ユーティリティはアイドルタイムプロセススケジューリングに使用し、 と同じオプションにて使用します。
リアルタイム優先度のプロセスは優先度低下対象とはならず、 同じもしくはそれ以上のリアルタイム優先度のプロセスのみに横取りされます。
アイドル優先度のプロセスは、 実行可能な他のプロセスが存在せず、 優先度が同じもしくはより高い実行可能なアイドル優先度プロセスが存在しない 場合のみ実行します。
と idprio を引数無しで実行すると、現在のプロセスのリアルタイム優先度を表示します。
を引数 1 つと共に実行すると、指定した pid のリアルタイム優先度を返します。
priority を指定すると、プロセスまたはプログラムをリアルタイム優先度にて実行します。 -t を指定すると、プロセスまたはプログラムを通常のプロセス (非リアルタイムプロセス) として実行します。
-pid を指定すると、 pid をプロセス識別子として持つプロセスを修正します。 そうではなく、 command を指定すると、プログラムを引数付きで実行します。
priority は 0 から RTP_PRIO_MAX (通常 31) の整数値です。 0 は最高の優先度です。
pid に 0 を指定すると "現在のプロセス" を意味します。
root のみがリアルタイム優先度およびアイドル優先度を設定可能です。
rtprio
プロセス 1423 のリアルタイム優先度を見ます:
rtprio 1423
cron(8) を最低のリアルタイム優先度にて実行します:
rtprio 31 cron
プロセス 1423 のリアルタイム優先度を 16 に変更します:
rtprio 16 -1423
tcpdump(1) を非リアルタイム優先度にて実行します:
rtprio -t tcpdump
リアルタイム優先度のプロセス 1423 を RTP_PRIO_NORMAL (非リアルタイム/通常の優先度) に変更します:
rtprio -t -1423
他のマシンの使用の邪魔をせずに make depend します:
idprio 31 make depend
Fx ではプロセスのページがメモリ中に存在することを保証できないため、 プロセスがページインのために停止することが有ります ( mprotect(2), madvise(2) 参照)。
Fx では、今のところシステムコール内で実行権を横取りされることはありません。 非リアルタイムプロセスが実行中であるために リアルタイムプロセスに実行権が割り当てられないことや、 アイドルプロセスが実行中であるために 通常優先度プロセスに実行権が割り当てられないことがあります。