助け合いフォーラム
LPIC Lv1-101(Ver5.0)
問題ID : 3493
問題を開く
「nice mycommand」のように、niceコマンドでnice値を指定せずにプロセスを起動したとき、デフォルトで設定されるnice値はどれか。
正解
10
解説
niceコマンドはnice値を指定してコマンドを実行(プロセスを起動)するコマンドです。
niceコマンドの書式は以下のとおりです。
nice [-n nice値] コマンド ※[]内は省略可能
または
nice [-nice値] コマンド
nice値を省略した場合、実行元プロセスのnice値に10を加算した値になります。例えばシェルからコマンドを実行する場合、通常はシェルのnice値はデフォルトの「0」であるため、実行されるプロセスのnice値は「10」になります。
したがって、正解は
・10
です。
その他の選択肢については、いずれもデフォルトで設定されるnice値ではありませんので、誤りです。
niceコマンドの書式は以下のとおりです。
nice [-n nice値] コマンド ※[]内は省略可能
または
nice [-nice値] コマンド
nice値を省略した場合、実行元プロセスのnice値に10を加算した値になります。例えばシェルからコマンドを実行する場合、通常はシェルのnice値はデフォルトの「0」であるため、実行されるプロセスのnice値は「10」になります。
したがって、正解は
・10
です。
その他の選択肢については、いずれもデフォルトで設定されるnice値ではありませんので、誤りです。
参考
【プロセスの優先度】
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」コマンドの出力
niceコマンドを使用せずにコマンドを単体で実行した場合とは?
投稿日 2023/04/16
解説の後半部分:「niceコマンドを使用せずにコマンドを単体で実行した場合のデフォルトのnice値は「0」ですが、niceコマンドを使用した場合のデフォルトの(nice値を指定しなかった場合の)nice値は「10」です。混同しないように注意しましょう。」と解説にありますが、文章前半部分の「niceコマンドを使用せずにコマンドを単体で実行した場合」とはどういうことでしょうか? 結局のところ、「niceコマンド使っているじゃないか」と思うのですが、nice値がデフォルトで0の場合と10の場合というのは、何が違うのでしょうか?
c
choidebu
2023/04/16 18:38
文章前半部分の「niceコマンドを使用せずにコマンドを単体で実行した場合」とはどういうことでしょうか?
# ./test など、niceコマンドを使わず直接testコマンド(プログラム)を実行することです。
コメント
この投稿に対して返信しませんか?
j jeronimmo521
2023/04/17 03:26
回答ありがとうございます。プログラムのことを言ってたんですね。