sched_getparam(2) FreeBSD 一般コマンドマニュアル

sched_getparam

前のページ 上に戻る 次のページ

sched_getparam




書式

     #include <sched.h>

     int
     sched_setparam(pid_t pid, const struct sched_param *param);

     int
     sched_getparam(pid_t pid, struct sched_param *param);


解説

     sched_setparam() 関数は、 pid で指定するプロセスのスケジュールパラメータ
     を、 param が指す構造体 sched_param の指定する値に設定します。構造体
     param のメンバ sched_priority の値は、 pid で指定するプロセスの現在のスケ
     ジュール方針用の優先順位範囲内 (両端含む) の整数である必要があります。優
     先順位の数値が高いほど優先順位が高いことを表します。

     この実装では、 pid の値が負の場合、関数は処理に失敗します。

     pid で指定するプロセスが存在し、かつ呼び出し元プロセスにパーミッションが
     ある場合、プロセス ID が pid と等しいプロセスに対してスケジュールパラメー
     タを設定します。

     pid が 0 の場合、呼び出し元プロセスに対してスケジュールパラメータを設定し
     ます。

     この実装では、あるプロセスが別のプロセスのスケジュールパラメータにいつ影
     響を及ぼせるのかという方針は、書込みスタイル操作として p1003_1b に指定さ
     れているものです。

     ターゲットプロセスは、実行中にせよ実行中でないにせよ、優先順位が等しいか
     またはより高い、他のすべての実行可能なプロセスが実行されるようにスケジュ
     ールされた後で、実行を再開します。

     pid 引数で指定するプロセスの優先順位が、最も優先順位の低い実行中のプロセ
     スの優先順位より高く設定されており、しかも指定のプロセスの実行準備ができ
     ている場合、 pid 引数で指定するプロセスは優先順位が最も低い実行中のプロセ
     スをプリエンプトします。同じように、 sched_setparam() を呼び出しているプ
     ロセスがその優先順位を、 1 つまたは複数の空でないプロセスリストの優先順位
     より低く設定する場合、優先順位が最も高いリストの先頭のプロセスも呼び出し
     元プロセスをプリエンプトします。このように、いずれのケースでも、優先順位
     の高いプロセスが実行されてしまうまで、元のプロセスが要求した優先順位変更
     の完了通知を受信しない可能性があります。

     この実装では、 pid で指定するプロセスの現在のスケジュール方針が通常のタイ
     ムシェアリング (SCHED_OTHER; POSIX ソースでない場合は SCHED_NORMAL) であ
     るかアイドル方針 (POSIX ソースでない場合は SCHED_IDLE) であるなら、その動
     作は、実在するリアルタイム優先順位よりも低い優先順位の SCHED_RR でプロセ
     スが実行されていたかのようになります。

     sched_getparam() 関数は、 pid で指定するプロセスのスケジュールパラメータ
     を param が指す sched_param 構造体に入れて返します。
     グローバル変数 errno が設定されてエラーを示します。


エラー

     処理に失敗すると、 errno を対応する値に設定します。

     [ENOSYS]           システムはこの機能をサポートするように構成されていませ
                        ん。

     [EPERM]            要求しているプロセスは、 p1003_1b で詳説されているパー
                        ミッションを持っていません。

     [ESRCH]            pid で指定したプロセスに対応するプロセスが見つかりませ
                        ん。

     [EINVAL]           sched_setparam() で、要求された 1 つ以上のスケジュール
                        パラメータが、指定の pid のスケジュール方針で定義され
                        た範囲の外側にあります。


関連項目

     sched_getscheduler(2), sched_get_priority_max(2),
     sched_get_priority_min(2), sched_rr_get_interval(2),
     sched_setscheduler(2), sched_yield(2)


規格

     sched_setparam() 関数と sched_getparam() 関数は IEEE Std 1003.1b-1993
     (``POSIX.1'') に準拠しています。

FreeBSD 4.4                     March 12, 1998                     FreeBSD 4.4

ABELNET VPSサービス