「Chrt」の版間の差分

提供: UnixClassWiki
移動先: 案内検索
(ページの作成:「 =プロセスのスケジュリング種類を変更するコマンド = [http://man7.org/linux/man-pages/man1/chrt.1.html コマンド chrt ] は実行するコマン...」)
 
(プロセスのスケジュリング種類を変更するコマンド)
34行目: 34行目:
 
ps              IDL      0  19
 
ps              IDL      0  19
 
</pre>
 
</pre>
 +
 +
----
 +
[[プロセス管理]]
 +
もしくは
 +
[[目次]]
 +

2018年9月19日 (水) 18:45時点における版

プロセスのスケジュリング種類を変更するコマンド

コマンド chrt は実行するコマンドもしくは実行中のプロセスのスケジュリングを変更するためのコマンドです。 プログラム中でシステムSCHED_SETSCHEDULERなどを使いスケジュリング種類や各種パラメータを変更することができますが、コマンドchrtはプログラム中でスケジュリングの種類を指定していなくても(プロセスのスケジュリングに関する処理を内部で行うことを必要とせず)外部からスケジュリングポリシーを変更することができます。

名前はchange real-time (.. attributes of a process ) の頭文字から来ていると思われますが、実際にはリアルタイムに関する各種パラメータだけではなくスケジュリングの種類そのものを変更することが出来ます。


次の例は chrt を使い コマンドps を SCHED_FIFO として実行しています。 psの出力をコマンド名、スケジュリング種類、リアルタイム・プライオリティ、(通常のプロセスの)プライオリティに指定したものです。つまり実行中のpsを自身で表示させたものです。 POL (Policy)はTSがTime Sharing、FFがFIFOの意味です。引数の99はリアルタイム・プライオリティを99に設定しています(最大値にしている)。 PRIは通常のプライオリティです。通常のコマンドの実行では20前後、コマンド類で優先的に実行したいものはおおよそ40前後程度ですが、ここにある139というのはカーネルの中でも最も優先度が高い値の1つになっています。


$ sudo chrt -f 99 ps -eo comm,policy,rtprio,pri
COMMAND         POL RTPRIO PRI
systemd         TS       -  19
...
migration/0     FF      99 139
watchdog/0      FF      99 139
...
sudo            TS       -  19
ps              FF      99 139

逆にこれがアイドル(SCHED_IDLE)にしたらどうなのでしょうか? ちなみにオプション -f ( SCHED_FIFO ) -r ( SCHE_RR ) 以外ではリアルタイム・プライオリティを0にしないとエラーになります。

% sudo chrt -i 0 ps -eo comm,policy,rtprio,pri
...
ps              IDL      0  19

プロセス管理 もしくは 目次