thread_setsched サブルーチン

目的

カーネル・スレッドのスケジューリング・ポリシーと優先順位を変更します。

ライブラリー

標準 C ライブラリー (libc.a)

構文

#include <sys/sched.h>
#include <sys/pri.h>
#include <sys/types.h>

int thread_setsched ( tid,  priority,  policy)
tid_t tid;
int priority;
int policy;

説明

スレッド・セット サブルーチンは、カーネル・スレッドのスケジューリング・ポリシーと優先順位を変更します。 ユーザー・スレッド (pthread) には独自のスケジューリング属性があり、場合によっては、pthread が複数のカーネル・スレッドの上で実行できるようにします。 したがって、ポリシーまたは優先順位の変更が pthread に代わって認可されている場合、pthread コンテンション有効範囲は Pスレッド・スコープ・システムでなければなりません。

注: スレッド・セット サブルーチンを使用する場合は、不適切な使用によりシステムがハングする可能性があるため、注意する必要があります。 スレッド優先順位の制約事項については、 sys/pri.h を参照してください。

パラメーター

項目 説明
tid 優先順位およびポリシーを変更するスレッドのカーネル・スレッド ID を指定します。
優先 このカーネル・スレッドに使用する優先順位を指定します。 ポリシーが 予定されていないに設定されている場合、priority パラメーターは無視されます。 優先順位パラメーターには、0 から PRI_LOW (低価格)までの範囲の値を指定する必要があります。 PRI_LOW は、 sys/pri.hで定義されます。 スレッド優先順位について詳しくは、 sys/pri.h を参照してください。
ポリシー このカーネル・スレッドに使用するポリシーを指定します。 ポリシー・パラメーターには、 sys/sched.hで定義される以下のいずれかの値を指定できます。
SCHED_OTHER
デフォルトのオペレーティング・システム・スケジューリング・ポリシー。
SCHED_FIFO
先入れ先出しスケジューリング・ポリシー。
SCHED_FIFO2
比較的短時間スリープするスレッドが、優先順位実行キューのテールではなく、ヘッドに再キューイングされることを許可します。
SCHED_FIFO3
スレッドが実行キューの先頭にエンキューされるようにします。
SCHED_FIFO4
これは、優先使用が弱い最初のイン・ファースト・アウト・スケジューリング・ポリシーです。 既存の実行中のスレッドは、そのスレッドが既存のスレッドよりも複数の優先順位を持っていない限り、より高い優先順位の SCHED_FIFO4 スレッドによって優先使用されることはありません。
SCHED_RR
ラウンドロビン・スケジューリング・ポリシー。

戻り値

正常終了すると、 スレッド・セット サブルーチンはゼロの値を戻します。 thread_setschedサブルーチンが失敗した場合、-1が返され、エラーを示すerrnoグローバル変数が設定される。

エラー・コード

以下の 1 つ以上が該当する場合、 スレッド・セット サブルーチンは失敗します。

項目 説明
ESRCH カーネル・スレッド ID ID が無効です。
EINVAL ポリシーまたは優先順位が無効です。
EPERM 呼び出し側には、ポリシーまたは優先順位を変更するための十分な特権がありません。