助け合いフォーラム

LPIC

LPIC Lv1-101(Ver5.0)
問題ID : 3493
問題を開く
「test」プログラムを以下のように実行した。testプログラムの優先度は次のうちどれか。

# nice test

正解

10

解説

niceコマンドはnice値を指定してコマンドを実行(プロセスを起動)するコマンドです。

niceコマンドの書式は以下のとおりです。

nice [-n nice値] コマンド
または
nice [-nice値] コマンド

nice値を省略して実行した場合、そのコマンドのnice値は「10」になります。

したがって正解は10です。

niceコマンドを使用せずにコマンドを単体で実行した場合のデフォルトのnice値は「0」ですが、niceコマンドを使用した場合のデフォルトの(nice値を指定しなかった場合の)nice値は「10」です。混同しないように注意しましょう。

参考

プロセスにはnice値という実行優先度が設定されています。
優先度の高いプロセスにはCPUの使用時間が多く割り当てられます。

nice値は「-20」から「19」まであり、nice値が低いプロセスほど優先度が高くなります。デフォルトのnice値は「0」です。


nice値を指定してコマンドを実行(プロセスを起動)するにはniceコマンドを利用します。

niceコマンドの書式は以下のとおりです。

nice [-n nice値] コマンド
または
nice [-nice値] コマンド

nice値を省略して実行した場合、そのコマンドのnice値は「10」になります。

また、すでに起動しているプロセスの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
または
# nice --20 test1

例2)既に実行しているプロセス(PIDは100)を最も高い優先度(-20)に変更する場合
# renice -20 -p 100
または
# renice -20 100
上に戻る

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

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

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