thread_setsched カーネル・サービス

目的

カーネル・スレッド・スケジューリング・パラメーターを設定します。

構文

#include <sys/thread.h>
#include <sys/sched.h>
int thread_setsched ( tid,  priority,  policy)
tid_t tid;
int priority;
int policy;

パラメーター

項目 説明
tid カーネル・スレッドを指定します。
優先 優先順位を指定します。 0 から PRI_LOW (低価格)の範囲でなければなりません。0 が最も優先される優先順位です。
ポリシー スケジューリング・ポリシーを指定します。 以下のいずれかの値でなければなりません。
SCHED_FIFO
固定優先順位の先入れ先出し法スケジューリングを示します。
SCHED_FIFO2
比較的短時間スリープするスレッドが、優先順位実行キューのテールではなく、ヘッドに再キューイングされることを許可します。
SCHED_FIFO3
スレッドが実行キューの先頭にエンキューされるようにします。
SCHED_RR
固定優先順位のラウンドロビン・スケジューリングを示します。
SCHED_OTHER
デフォルトのスケジューリング・ポリシーを示します。

説明

スレッド・セット サブルーチンは、カーネル・スレッドのスケジューリング・パラメーターを設定します。 これには、優先順位とスケジューリング・ポリシーの両方が含まれます。これらは、 優先順位 パラメーターと ポリシー パラメーターで指定されます。 呼び出し側とターゲット・スレッドは、同じプロセス内になければなりません。

スケジューリング・ポリシーを 予定されていないに設定すると、システムは優先順位を選択します。 優先順位 パラメーターは無視されます。 デフォルトのスケジューリング・ポリシーを使用してスレッドの優先順位に影響を与える唯一の方法は、プロセスの nice の値を変更することです。

スレッドのスケジューリング・ポリシーを SCHED_FIFOSCHED_FIFO2SCHED_FIFO3、または 「SCHED_RR」のいずれかに変更するには、呼び出しスレッドが root 権限を持つプロセスに属している必要があります。

実行環境

スレッド・セット カーネル・サービスは、 処理 環境からのみ呼び出すことができます。

戻り値

正常終了すると、0 が戻されます。 さもないと、-1が返され、エラーコードはエラーを取得カーネル サービス。

エラー・コード

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