助け合いフォーラム
LPIC Lv1-101(Ver5.0)
問題ID : 3494
問題を開く
「test」プログラムを最も高い優先度で実行したい。適切なコマンドは次のうちどれか。(2つ選択)
正解
nice -n -20 test
nice --20 test
解説
プロセスにはnice値という実行優先度が設定されています。
nice値を指定してコマンドを実行(プロセスを起動)するにはniceコマンドを利用します。
niceコマンドの書式は以下のとおりです。
nice [-n nice値] コマンド
または
nice [-nice値] コマンド
また、nice値は「-20」から「19」まであり、nice値が低いプロセスほど優先度が高くなります。デフォルトのnice値は「0」です。

したがって正解は
・nice -n -20 test
・nice --20 test
です。
なお、niceコマンドでnice値を省略して実行した場合、そのコマンドのnice値は「10」になります。
その他の選択肢については以下のとおりです。
・nice test
nice値10でtestプログラムが実行されるので、誤りです。
・nice -n 20 test
・nice -20 test
nice値は「-20」から「19」までなので、20を指定するのは誤りです。
エラーにはなりませんが、最も低い優先度のnice値19でtestプログラムが実行されます。
nice値を指定してコマンドを実行(プロセスを起動)するにはniceコマンドを利用します。
niceコマンドの書式は以下のとおりです。
nice [-n nice値] コマンド
または
nice [-nice値] コマンド
また、nice値は「-20」から「19」まであり、nice値が低いプロセスほど優先度が高くなります。デフォルトのnice値は「0」です。

したがって正解は
・nice -n -20 test
・nice --20 test
です。
なお、niceコマンドでnice値を省略して実行した場合、そのコマンドのnice値は「10」になります。
その他の選択肢については以下のとおりです。
・nice test
nice値10でtestプログラムが実行されるので、誤りです。
・nice -n 20 test
・nice -20 test
nice値は「-20」から「19」までなので、20を指定するのは誤りです。
エラーにはなりませんが、最も低い優先度のnice値19でtestプログラムが実行されます。
参考
【プロセスの優先度】
1つのCPUでは、ある瞬間に実行できるプロセスは1つです。OSは、CPUを使うプロセスを非常に短い時間の間隔で次々に切り替えています。そのため、ユーザからは複数のプロセスが同時に動いているように見えます。
プロセスには、CPUの割り当てに影響するnice値が設定されています。CPUを必要とする複数のプロセスがある場合、nice値の低いプロセスほど優先的にCPUを割り当てられます。
nice値は「-20」から「19」まであり、nice値が低いプロセスほど優先度が高くなります。デフォルトのnice値は「0」です。

nice値を操作する手段として、niceコマンド、reniceコマンドがあります。
■niceコマンド
nice値を指定してコマンドを実行(プロセスを起動)するにはniceコマンドを利用します。
niceコマンドの書式は以下のとおりです。
nice [-n nice値] コマンド ※[]内は省略可能
または
nice [-nice値] コマンド
nice値を省略した場合、実行元プロセスのnice値に10を加算した値になります。例えばシェルからコマンドを実行する場合、通常はシェルのnice値はデフォルトの「0」であるため、実行されるプロセスのnice値は「10」になります。
■reniceコマンド
すでに起動しているプロセスのnice値を変更するにはreniceコマンドを利用します。
reniceコマンドの書式と主なオプションは以下のとおりです。
renice [-n] nice値 オプション

-nオプションは省略可能ですが、-nオプションを使ってnice値を指定する場合でも-nを使わない場合と同様、他のオプションの前に指定しなければなりません。
nice値を指定・変更する主な目的は、実行に長時間かかるプログラムや重要度の低いプログラムを低い優先度で実行することです。したがって、一般ユーザは以下の操作を行うことができません。これらの操作を行うにはroot権限が必要です。
・他のユーザのプロセスのnice値を変更する
・nice値を下げる(優先度を上げる)
・nice値に0より小さい値を設定する
また、niceコマンドとreniceコマンドではnice値の指定方法が違うところに注意してください。
例1)「test1」プログラムを最も高い優先度(-20)で実行する場合
# nice -n -20 test1
例2)既に実行しているプロセス(PIDは100)を最も高い優先度(-20)に変更する場合
# renice -20 -p 100
以下はniceコマンドとreniceコマンドの実行例です。
例)sleepコマンドをnice値「11」で実行する

例)sleepコマンドのnice値を「11」から「19」に変更する

■nice値の確認
プロセスのnice値はtopコマンドとpsコマンドで確認できます。psコマンドの場合は「l」オプションを使用します。
nice値は「NI列」で確認できます。
例)「ps l」コマンドと「top」コマンドの出力
1つのCPUでは、ある瞬間に実行できるプロセスは1つです。OSは、CPUを使うプロセスを非常に短い時間の間隔で次々に切り替えています。そのため、ユーザからは複数のプロセスが同時に動いているように見えます。
プロセスには、CPUの割り当てに影響するnice値が設定されています。CPUを必要とする複数のプロセスがある場合、nice値の低いプロセスほど優先的にCPUを割り当てられます。
nice値は「-20」から「19」まであり、nice値が低いプロセスほど優先度が高くなります。デフォルトのnice値は「0」です。

nice値を操作する手段として、niceコマンド、reniceコマンドがあります。
■niceコマンド
nice値を指定してコマンドを実行(プロセスを起動)するにはniceコマンドを利用します。
niceコマンドの書式は以下のとおりです。
nice [-n nice値] コマンド ※[]内は省略可能
または
nice [-nice値] コマンド
nice値を省略した場合、実行元プロセスのnice値に10を加算した値になります。例えばシェルからコマンドを実行する場合、通常はシェルのnice値はデフォルトの「0」であるため、実行されるプロセスのnice値は「10」になります。
■reniceコマンド
すでに起動しているプロセスのnice値を変更するにはreniceコマンドを利用します。
reniceコマンドの書式と主なオプションは以下のとおりです。
renice [-n] nice値 オプション

-nオプションは省略可能ですが、-nオプションを使ってnice値を指定する場合でも-nを使わない場合と同様、他のオプションの前に指定しなければなりません。
nice値を指定・変更する主な目的は、実行に長時間かかるプログラムや重要度の低いプログラムを低い優先度で実行することです。したがって、一般ユーザは以下の操作を行うことができません。これらの操作を行うにはroot権限が必要です。
・他のユーザのプロセスのnice値を変更する
・nice値を下げる(優先度を上げる)
・nice値に0より小さい値を設定する
また、niceコマンドとreniceコマンドではnice値の指定方法が違うところに注意してください。
例1)「test1」プログラムを最も高い優先度(-20)で実行する場合
# nice -n -20 test1
例2)既に実行しているプロセス(PIDは100)を最も高い優先度(-20)に変更する場合
# renice -20 -p 100
以下はniceコマンドとreniceコマンドの実行例です。
例)sleepコマンドをnice値「11」で実行する

例)sleepコマンドのnice値を「11」から「19」に変更する

■nice値の確認
プロセスのnice値はtopコマンドとpsコマンドで確認できます。psコマンドの場合は「l」オプションを使用します。
nice値は「NI列」で確認できます。
例)「ps l」コマンドと「top」コマンドの出力
回答が合っているのかがわからない
h
hohoo
投稿日 2024/12/20
nice --20 test1 というコマンドは、最近のバージョンのlinuxでもも利用できる指定方法でしょうか?
2024/12/21 19:41
「ハイフンの後に直接nice 値を指定する方法は古いのでは?」という意図の質問と理解しました。ほとんどのLinux ではGNU coreutils のnice を使っていると思うのですが、そのドキュメントでは
https://www.gnu.org/software/coreutils/manual/html_node/nice-invocation.html
For compatibility nice also supports an obsolete option syntax -adjustment. New scripts should use -n adjustment instead.
となっていましたので、まだ使えるという認識です。互換性のためにそうそう廃止はしないのではないかと思います。
ただ、この問題は「適切なコマンドは次のうちどれか。(全て選択)」となっているので、この古い書式が「適切か」といわれると確かに迷います。「(2つ選択)」とか「有効なコマンドは次のうちどれか。(全て選択)」のような問題文になっていてほしいところです。
コメント
スタッフからの返信
この投稿に対して返信しませんか?
s staff_ueda
2024/12/23 06:29
hohoo さん、tnishita2 さん ご指摘の点を修正いたしました。 ご報告、誠にありがとうございました。