aboutsummaryrefslogtreecommitdiff
path: root/ja/man/man1/rtprio.1
blob: e7006b26938b9ae47fa6d1d12ad850864348f889 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
.\"
.\" Copyright (c) 1994, Henrik Vestergaard Draboel
.\" 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.
.\" 3. All advertising materials mentioning features or use of this software
.\"    must display the following acknowledgement:
.\"	This product includes software developed by Henrik Vestergaard Draboel.
.\" 4. The name of the author may not be used to endorse or promote products
.\"    derived from this software without specific prior written permission.
.\"
.\" 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.
.\"
.\"	%Id: rtprio.1,v 1.6.2.5 1998/03/15 00:07:09 jkh Exp %
.\" jpman %Id: rtprio.1,v 1.3 1997/09/23 16:41:42 horikawa Stab %
.\"
.Dd July 23, 1994
.Dt RTPRIO 1
.Os 
.Sh 名称
.Nm rtprio ,
.Nm idprio
.Nd リアルタイム/アイドルタイムスケジューリング優先度の実行・確認・修正
.Sh 書式
.Nm [id|rt]prio
.Nm [id|rt]prio 
.Ar [-]pid
.Nm [id|rt]prio 
.Ar priority
.Ar command
.Op args
.Nm [id|rt]prio 
.Ar priority
.Ar -pid
.Nm [id|rt]prio 
.Fl t
.Ar command
.Op args
.Nm [id|rt]prio 
.Fl t
.Ar -pid
.Sh 解説
.Nm
はリアルタイムプロセススケジューリングに使用します。
.Pp
.Nm idprio
はアイドルタイムプロセススケジューリングに使用し、
.Nm
と同じオプションにて使用します。
.Pp
リアルタイム優先度のプロセスは優先度低下対象とはならず、
同じもしくはそれ以上のリアルタイム優先度のプロセスのみに横取りされます。
.Pp
アイドル優先度のプロセスは、
実行可能な他のプロセスが存在せず、
優先度が同じもしくはより高い実行可能なアイドル優先度プロセスが存在しない
場合のみ実行します。
.Pp
.Nm
と
.Nm idprio 
を引数無しで実行すると、現在のプロセスのリアルタイム優先度を表示します。
.Pp
.Nm
を引数 1 つと共に実行すると、指定した
.Ar pid
のリアルタイム優先度を返します。
.Pp
.Ar priority
を指定すると、プロセスまたはプログラムをリアルタイム優先度にて実行します。
.Fl t
を指定すると、プロセスまたはプログラムを通常のプロセス
(非リアルタイムプロセス)として実行します。
.Pp
.Ar -pid
を指定すると、
.Ar pid
をプロセス識別子として持つプロセスを修正します。
そうではなく、
.Ar command 
を指定すると、プログラムを引数付きで実行します。
.Pp
.Ar Priority
は 0 から RTP_PRIO_MAX (通常 31) の整数値です。
0 は最高の優先度です。
.Pp
.Ar pid
に 0 を指定すると "現在のプロセス" を意味します。
.Pp
root のみがリアルタイム優先度およびアイドル優先度を設定可能です。
.Sh 戻り値
.Nm
がコマンドを実行した場合、このコマンドの終了値が終了値となります。
その他の場合、
.Nm
は成功時には 0 を、エラー時には 1 を終了値とします。
.Sh 使用例
現在のプロセスのリアルタイム優先度を見ます:
.Bd -literal -offset indent -compact
.Sy "rtprio"
.Ed
.Pp
プロセス
.Em 1423
のリアルタイム優先度を見ます:
.Bd -literal -offset indent -compact
.Sy "rtprio 1423"
.Ed
.Pp
.Xr cron 8
を最低のリアルタイム優先度にて実行します:
.Bd -literal -offset indent -compact
.Sy "rtprio 31 cron"
.Ed
.Pp
プロセス
.Em 1423
のリアルタイム優先度を
.Em 16
に変更します:
.Bd -literal -offset indent -compact
.Sy "rtprio 16 -1423"
.Ed
.Pp
.Xr tcpdump 8
を非リアルタイム優先度にて実行します:
.Bd -literal -offset indent -compact
.Sy "rtprio -t tcpdump"
.Ed
.Pp
リアルタイム優先度のプロセス
.Em 1423
を
.Dv RTP_PRIO_NORMAL
(非リアルタイム/通常の優先度)に変更します:
.Bd -literal -offset indent -compact
.Sy "rtprio -t -1423"
.Ed
.Pp
他のマシンの使用の邪魔をせずに make depend します:
.Bd -literal -offset indent -compact
.Sy "idprio 31 make depend"
.Ed
.Sh 関連項目
.Xr nice 1 ,
.Xr ps 1 ,
.Xr rtprio 2 ,
.Xr setpriority 2 ,
.Xr nice 3 ,
.Xr renice 8
.Sh 歴史
.Nm
は
.Fx 2.0
から登場しましたが、HP-UX のものに似たバージョンでした。
.Sh 警告
CPU を大量消費するプロセスをリアルタイム優先度で実行すると
システムを操作できなくなります。
.Sh バグ
プロセス 0 (swapper) のリアルタイム優先度を設定及び確認する方法は有りません(
.Xr ps 1
を参照)。
.Pp
.Bx Free
ではプロセスのページがメモリ中に存在することを保証できないため、
プロセスがページインのために停止することが有ります(
.Xr mprotect 2 ,
.Xr madvise 2
参照)。
.Pp
.Bx Free
では、今のところシステムコール内で実行権を横取りされることはありません。
非リアルタイムプロセスが実行中であるために
リアルタイムプロセスに実行権が割り当てられないことや、
アイドルプロセスが実行中であるために
通常優先度プロセスに実行権が割り当てられないことがあります。
.Sh 作者
.An Henrik Vestergaard Draboel Aq hvd@terry.ping.dk
はオリジナルの作者です。
.An David Greenman
が
.Bx Free
への実装時に、ほとんどを書き直しました。