HOMEサンプル問題・例題解説101試験の例題と解説103.6 プロセスの実行優先度を変更する

101試験の例題と解説

103.6プロセスの実行優先度を変更する

今回は、101試験の出題範囲から「103.6 プロセスの実行優先度を変更する」についての例題を解いてみます。

■例題
ユーザーが実行しているプロセスの実行優先度を変更するコマンドとして正しいものを選びなさい。

1. top
2. ps
3. nice
4. chnice
5. renice

※この例題は実際のLinuC試験とは異なります。

解答と解説

答えは 5. renice です。

Linuxは、複数のプロセスを同時に並行して動作させるマルチプロセスのOSです。同時並行といっても、ある時点で動作しているプロセスは1つだけで時間を区切って順番にプロセスを切り替えて実行することで、見かけ上複数が同時並行で動作しているように見せています。

nice値は、このように同時実行されるプロセスに優先順位をつけるために利用されます。たとえば、重要度はそれほど高くないプロセスには低い優先順位をつけて、他のプロセスの実行を邪魔をしないようにしたりすることで、円滑なプロセス実行を可能にする仕組みです。

nice値は、-20(最高優先)から19(最低優先)までの40段階に分かれており、基本的にデフォルトは中間の0に設定されます。

nice値の確認は、psコマンドにlオプションをつけることで表示できます。

○例)自分の実行しているプロセスのnice値を確認
$ ps l
F   UID   PID  PPID PRI  NI   VSZ  RSS WCHAN  STAT TTY        TIME COMMAND
0   500  2171  2170  15   0  5216 1396 wait   Ss   pts/0      0:00 -bash
0   500  2458  2171  17   0  2348  640 -      R+   pts/0      0:00 ps l
                          ^ nice値は0に設定されている

niceコマンドは、現在のデフォルトのnice値を表示したり、引数に指定したコマンドを指定されたnice値で実行したりできます。

○例)nice値を指定してmanコマンドを実行
$ nice
0
※デフォルトのnice値は0
$ nice -n 5 man nice
※manコマンドをnice値5で実行

※Ctrl+Zでmanコマンドをバックグラウンドに移行

$ ps l
F   UID   PID  PPID PRI  NI   VSZ  RSS WCHAN  STAT TTY        TIME COMMAND
0   500  2711  2710  15   0  5212 1396 wait   Ss   pts/0      0:00 -bash
0   500  2742  2711  21   5  4712  812 finish TN   pts/0      0:00 man nice
0   500  2745  2742  21   5  5164  932 finish TN   pts/0      0:00 sh -c (cd /us
1   500  2746  2745  21   5  5164  420 finish TN   pts/0      0:00 sh -c (cd /us
0   500  2758  2746  21   5  1932  656 finish TN   pts/0      0:00 /usr/bin/less
0   500  2764  2711  17   0  2348  640 -      R+   pts/0      0:00 ps l
※                        ^ nice値が5に設定されている

reniceコマンドは、実行中のプロセスのnice値を変更できます。

○例)reniceコマンドで、実行中のプロセスのnice値を変更
$ renice 10 2742
2742: 古い優先度は 5、新たな優先度は 10 です
※PID 2742のプロセス(manコマンド)をnice値10に再設定
$ ps l
F   UID   PID  PPID PRI  NI   VSZ  RSS WCHAN  STAT TTY        TIME COMMAND
0   500  2711  2710  15   0  5212 1396 wait   Ss   pts/0      0:00 -bash
0   500  2742  2711  30  10  4712  812 finish TN   pts/0      0:00 man nice
0   500  2745  2742  21   5  5164  932 finish TN   pts/0      0:00 sh -c (cd /us
1   500  2746  2745  21   5  5164  420 finish TN   pts/0      0:00 sh -c (cd /us
0   500  2758  2746  21   5  1932  656 finish TN   pts/0      0:00 /usr/bin/less
0   500  2766  2711  15   0  2348  640 -      R+   pts/0      0:00 ps l
※                        ^ PID 2742のみnice値が10に再設定されている
  • 今回の解説について、理解できないポイントがあればどんどん質問を。
  • 採用になった方にはLPI-Japanオリジナルの記念品を贈呈します。
  • ご質問・ご意見はこちら
  • ※上記の解説とその内容については、例題作成者の監修です。
    内容や試験問題に関わるお問い合わせにつきましては、LPI-Japan事務局ではお応えできませんのでご了解ください。

このページのトップへ