doc/ja_JP.eucJP/man/man2/sched_setparam.2
SUZUKI Koichi b7d11eb685 Catch up with 5.3-BETA1 for man2.
Submitted by:   Akira Ikeuchi <a_ikeuchi@mic.mitsumi.co.jp>
Reviewed by:    Watanabe Kazuhiro <CQG00620@nifty.ne.jp>
2004-09-21 20:33:15 +00:00

174 lines
5.2 KiB
Groff

.\" %FreeBSD: src/lib/libc/sys/sched_setparam.2,v 1.17 2004/07/04 20:55:48 ru Exp %
.\" Copyright (c) 1998 HD Associates, Inc.
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\" notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\" notice, this list of conditions and the following disclaimer in the
.\" documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" $FreeBSD$
.Dd March 12, 1998
.Dt SCHED_SETPARAM 2
.Os
.Sh 名称
.Nm sched_setparam ,
.Nm sched_getparam
.Nd スケジュールパラメータの設定 / 取得
.Sh ライブラリ
.Lb libc
.Sh 書式
.In sched.h
.Ft int
.Fn sched_setparam "pid_t pid" "const struct sched_param *param"
.Ft int
.Fn sched_getparam "pid_t pid" "struct sched_param *param"
.Sh 解説
.Fn sched_setparam
システムコールは、
.Fa pid
で指定するプロセスのスケジュールパラメータを、
.Fa param
が指す構造体
.Fa sched_param
の指定する値に設定します。
構造体
.Fa param
のメンバ
.Fa sched_priority
の値は、
.Fa pid
で指定するプロセスの現在のスケジュール方針用の
優先順位範囲内 (両端含む) の整数である必要があります。
優先順位の数値が高いほど優先順位が高いことを表します。
.Pp
この実装では、
.Fa pid
の値が負の場合、システムコールは処理に失敗します。
.Pp
.Fa pid
で指定するプロセスが存在し、かつ
呼び出し元プロセスにパーミッションがある場合、
プロセス ID が
.Fa pid
と等しいプロセスに対してスケジュールパラメータを設定します。
.Pp
.Fa pid
が 0 の場合、呼び出し元プロセスに対して
スケジュールパラメータを設定します。
.Pp
この実装では、あるプロセスが別のプロセスのスケジュールパラメータに
いつ影響を及ぼせるのかという方針は、書込みスタイル操作として
.St -p1003.1b-93
に指定されているものです。
.Pp
ターゲットプロセスは、実行中にせよ実行中でないにせよ、
優先順位が等しいかまたはより高い、
他のすべての実行可能なプロセスが実行されるようにスケジュールされた後で、
実行を再開します。
.Pp
.Fa pid
引数で指定するプロセスの優先順位が、
最も優先順位の低い実行中のプロセスの優先順位より高く設定されており、
しかも指定のプロセスの実行準備ができている場合、
.Fa pid
引数で指定するプロセスは
優先順位が最も低い実行中のプロセスをプリエンプトします。
同じように、
.Fn sched_setparam
を呼び出しているプロセスがその優先順位を、
1 つまたは複数の空でないプロセスリストの優先順位より低く設定する場合、
優先順位が最も高いリストの先頭のプロセスも
呼び出し元プロセスをプリエンプトします。
このように、いずれのケースでも、
優先順位の高いプロセスが実行されてしまうまで、
元のプロセスが要求した優先順位変更の完了通知を受信しない可能性があります。
.Pp
この実装では、
.Fa pid
で指定するプロセスの現在のスケジュール方針が通常のタイムシェアリング
(SCHED_OTHER; POSIX ソースでない場合は SCHED_NORMAL)
であるかアイドル方針 (POSIX ソースでない場合は SCHED_IDLE) であるなら、
その動作は、実在するリアルタイム優先順位よりも低い優先順位の
SCHED_RR でプロセスが実行されていたかのようになります。
.Pp
.Fn sched_getparam
関数は、
.Fa pid
で指定するプロセスのスケジュールパラメータを
.Fa param
が指す
.Fa sched_param
構造体に入れて返します。
.Pp
.Fa pid
で指定するプロセスが存在してかつ、
呼び出し元プロセスにパーミッションがある場合、
プロセス ID が
.Fa pid
に等しいプロセスのスケジュールパラメータを返します。
.Pp
この実装では、あるプロセスが別のプロセスのスケジュールパラメータを
いつ得られるかの方針は、読取りスタイル操作として
.St -p1003.1b-93
に詳説されているものです。
.Pp
.Fa pid
が 0 の場合、呼び出し元プロセスのスケジュールパラメータを返します。
この実装では、
.Fa pid
が負の場合、
.Fa sched_getparam
システムコールは処理に失敗します。
.Sh 戻り値
.Rv -std
.Sh エラー
処理に失敗すると、
.Va errno
を対応する値に設定します:
.Bl -tag -width Er
.It Bq Er ENOSYS
システムはこの機能をサポートするように構成されていません。
.It Bq Er EPERM
要求しているプロセスは、
.St -p1003.1b-93
で詳説されているパーミッションを持っていません。
.It Bq Er ESRCH
.Fa pid
で指定したプロセスに対応するプロセスが見つかりません。
.It Bq Er EINVAL
.Fn sched_setparam
で、要求された 1 つ以上のスケジュールパラメータが、指定の
.Fa pid
のスケジュール方針で定義された範囲の外側にあります。
.El
.Sh 関連項目
.Xr sched_get_priority_max 2 ,
.Xr sched_get_priority_min 2 ,
.Xr sched_getscheduler 2 ,
.Xr sched_rr_get_interval 2 ,
.Xr sched_setscheduler 2 ,
.Xr sched_yield 2
.Sh 規格
.Fn sched_setparam
システムコールと
.Fn sched_getparam
システムコールは
.St -p1003.1b-93
に適合しています。