pthread_setschedparam - ライブラリコールの説明 - Linux コマンド集 一覧表
名前
pthread_setschedparam, pthread_getschedparam - スレッドのスケージューリングパラメータを制御する
書式
#include <pthread.h>
int pthread_setschedparam(pthread_t
target_thread
, int
policy
, const struct sched_param *
param
);
int pthread_getschedparam(pthread_t
target_thread
, int *
policy
, struct sched_param *
param
);
説明
"pthread_setschedparam"
はスレッド
"target_thread"
のスケジューリングパラメータを
"policy"
と
"param"
で示される値に変更する。
"policy"
は
"SCHED_OTHER"
( 通常の、リアルタイムでないスケジューリング ) 、
"SCHED_RR"
( ラウンドロビン方式のリアルタイムスケジューリング ) 、
"SCHED_FIFO"
( 先入れ先出し (FIFO) 方式のリアルタイムスケジューリング )
のいずれかの値をとる。
"param"
は 2 つのリアルタイムポリシーに対する
スケジューリング優先度を表す。
スケジューリングポリシーに関するさらなる情報は
sched_setpolicy
(2)を参照のこと。
リアルタイムスケジューリングポリシーである
"SCHED_RR"
と
"SCHED_FIFO"
は、スーパーユーザ権限をもったプロセスに限って使用できる。
"pthread_getschedparam"
はスレッド
"target_thread"
のスケジューリングポリシーと
スケジューリングパラメータを取得し、
それぞれ
"policy"
と
"param"
で指し示される領域に格納する。
返り値
"pthread_setschedparam"
および
"pthread_getschedparam"
は成功すると 0 を返し、エラーならば非 0 のエラーコードを返す。
エラー
エラーの場合、
"pthread_setschedparam"
は次のようなエラーコードを返す:
- "EINVAL"
-
"policy"
が
SCHED_OTHER
、
SCHED_RR
、
"SCHED_FIFO"
のいずれでもない。
- "EINVAL"
-
指定されたポリシーでは
"param"
で指定された優先度パラメータは有効ではない。
- "EPERM"
-
呼び出しプロセスはスーパユーザ権限を持っていない。
- "ESRCH"
-
スレッド
"target_thread"
は無効またはすでに終了している。
- "EFAULT"
-
"param"
が指し示す領域はプロセスのメモリ空間外の領域である。
エラーの場合、 "pthread_getschedparam" は次のようなエラーコードを返す:
- "ESRCH"
-
スレッド
"target_thread"
は無効またはすでに終了している。
- "EFAULT"
-
"policy"
または
"param"
が指し示す領域はプロセスのメモリ空間外の領域である。
著者
Xavier Leroy <Xavier.Leroy@inria.fr>
関連項目
sched_setscheduler
(2),
sched_getscheduler
(2),
sched_getparam
(2),
pthread_attr_setschedpolicy
(3),
pthread_attr_setschedparam
(3).