助け合いフォーラム

LPIC

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値ではありませんので、誤りです。

参考

【プロセスの優先度】
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/07/29

この問題の文章は「testプログラムの優先度は次のうちどれか。」
となっており、選択肢の19~-20の値のことを「優先度」と表現しています。
これに対して、その後の解説では、19~-20の値のことを「nice値」と表現し
参考では、「実行優先度」とも表現されています。
つまり、「nice値」「優先度」「実行優先度」が同じ意味で使われており
全て、選択肢の19~-20の値のことを指し示しています。

一方、ps -l では、PRI と NI の2つの値が表示され、19~-20の値
はNI列に表示されます。

この問題の表現が正しいとすると
NI = 「nice値」「優先度」「実行優先度」
になりますが、その場合、PRIは、日本語では、どの様な用語になるのかと
いう疑問が生じます。

19~-20の値のことを「nice値」「優先度」「実行優先度」と表現すること
は正しいのでしょうか。

正しい場合、ps -lのPRIは、日本語では、どの様な用語になるのでしょうか。

ご存じの方がおられたら、教えて下さい。
宜しくお願いします。

2023/07/29 09:16

日本語難しいですね。
「nice値がどういうものか→ユーザーが設定できるプロセス実行時の優先度」という話をする際に使っているものなので

つまり、「nice値」「優先度」「実行優先度」が同じ意味で使われており
全て、選択肢の19~-20の値のことを指し示しています。

これは別におかしなことを言っているとは思えないです。
一方で

正しい場合、ps -lのPRIは、日本語では、どの様な用語になるのでしょうか。

この問題(ID:3493)では触れられていないPRIの話なので、LPIC Lv1の学習範囲外となりますのであまり掘り下げないことをお勧めします。
簡単にいうと「カーネルが実行中のプロセスに対して割り当てている(プロセススケジューリング上の)プライオリティ値」のことです。
興味があればこの記事に簡単に概要がまとまっているのでご覧ください。
https://medium.com/@chetaniam/a-brief-guide-to-priority-and-nice-values-in-the-linux-ecosystem-fb39e49815e0


コメント

k kz5835

2023/07/29 12:19

arashi1977様 ご回答、有難うございます。 お忙しいところ恐縮ですが、もう少し、教えて下さい。 ご紹介頂いたurlでは、PRIをPriority value、本問題の選択肢の 情報をNice valueと表現しています。 日本語では、前者が優先度、後者がnice値になる思っています。 私の質問意図は、上記の表現が一般的であるとすると 実際のlpic試験でも、選択肢の19~-20の値のことを 「優先度」と表現(翻訳)される可能性がないのではないかということで 「優先度」と表現(翻訳)される可能性がない(あるいはほとんどない) のであれば、本問題の「優先度」「実行優先度」は、「nice値」に 変更/修正すべきではないかと思われたのですが、この点については いかがでしょうか。 上記の考えが妥当なのか、あるいは、そうではなく、一般的に 選択肢の19~-20の値が「優先度」と表現されることはよくあり 実際の試験でもその様に表現される可能性があるのかを もし、ご存じであれば、教えて頂けますと、大変に有難いです。 宜しくお願いいたします。

a arashi1977

2023/07/29 13:00

まさに日本語難しいでしかないと思う話題なのですが、設問はこうです。 > 「test」プログラムを以下のように実行した。testプログラムの優先度は次のうちどれか。 ここが「優先度ではなくnice値であるべき」というのなら同意します。しかし、 > 私の質問意図は、上記の表現が一般的であるとすると > 実際のlpic試験でも、選択肢の19~-20の値のことを > 「優先度」と表現(翻訳)される可能性がないのではないか 上で触れたように > 「nice値がどういうものか→ユーザーが設定できるプロセス実行時の優先度」という話 という説明をしているだけだと理解してるので「nice値→優先度」という内容を「優先度→nice値と言えるならpriorityはなんと表現するのか」という話に持っていくつもりはないです。 また逆に言えばnice値を「nice値」というだけで即全員その意味や機能を理解できてそれ以上説明しないで済むなら「優先度」という表現を使う必要もない、というだけの話です。ですので、初学者誰もが「nice値」だけでその意味を理解できるならおっしゃる通り > 本問題の「優先度」「実行優先度」は、「nice値」に変更/修正すべき も妥当かなと思います。 ただ、解説、参考の「優先度」「実行優先度」をすべて「nice値」に置き換えても、初学者が即座に内容を理解できるとは私には思えませんが、いかがでしょうか?

k kz5835

2023/07/29 14:15

arashi1977様 詳細な解説、誠に有難うございます。 最後のご指摘は、おっしゃる通りだと思います。 おかげ様で、理解できました。 宜しくお願いします。

この返信に対して
コメントを記入できます

この投稿に対して返信しませんか?