LinuCレベル3 プラットフォームスペシャリスト 仮想化基盤の構築 問19
仮想化基盤の構築/仮想化技術の動作原理と最適化KVMホスト上で、遅延に敏感な処理を行うプログラム command を、スケジューリングポリシーSCHED_FIFO・静的優先度50で新しく起動したい。適切なコマンドはどれか。
当サイトのオリジナル問題(LinuCレベル3 プラットフォームスペシャリストの出題範囲「仮想化基盤の構築」に対応。実際の試験問題ではありません)
- Achrt -r 50 command
- Bnice -n -20 command
- Cchrt -f 50 command
- Dchrt -i 0 command
正解:C
解説
chrtはプロセスのスケジューリングポリシーと優先度を表示・変更するコマンドで、-fを付けるとSCHED_FIFOを指定できます。「chrt -f 50 command」でSCHED_FIFO・優先度50のままcommandを起動します。SCHED_FIFOはタイムスライスを持たず、より高い優先度のタスクに横取りされるか自ら手放すまで実行を続けるリアルタイムポリシーです。既存プロセスに対しては -p を付けてPIDを指定します。リアルタイムポリシーの設定には通常root権限(CAP_SYS_NICE)が必要です。
選択肢ごとの解説
- A誤り。-r はSCHED_RR(ラウンドロビン)を指定するオプションです。同じ優先度のタスク間でタイムスライスを回すポリシーで、SCHED_FIFOではありません。
- B誤り。niceは通常のSCHED_OTHERにおけるnice値を変えるだけで、リアルタイムのSCHED_FIFOポリシーにはなりません。
- C正しい。-f でSCHED_FIFOを指定し、続けて優先度50と起動するコマンドを与えます。
- D誤り。-i はSCHED_IDLEを指定するオプションで、他に実行するものが無いときだけ動く最も優先度の低いポリシーです。