名前に基づいて推測できますが、具体的には、UNIXの実時間、ユーザーCPU時間、およびシステムCPU時間とは何ですか?
user-cpu時間は、user-codeの実行に費やされた時間であり、kernel-cpu時間は、特権操作(ディスクへのIOなど)が必要なためにカーネルで費やされた時間ですか?
この測定値の単位は何ですか。
そして、実時間は実際にはプロセスがCPUに費やした秒数ですか、それとも名前が誤解を招くだけですか?
名前に基づいて推測できますが、具体的には、UNIXの実時間、ユーザーCPU時間、およびシステムCPU時間とは何ですか?
user-cpu時間は、user-codeの実行に費やされた時間であり、kernel-cpu時間は、特権操作(ディスクへのIOなど)が必要なためにカーネルで費やされた時間ですか?
この測定値の単位は何ですか。
そして、実時間は実際にはプロセスがCPUに費やした秒数ですか、それとも名前が誤解を招くだけですか?
回答:
壁時計時間は、壁の時計(または手元にあるストップウォッチ)が、プロセスの開始から「今」までの経過時間として測定する時間です。
user-cpu時間とsystem-cpu時間は、あなたが言ったとおりです-ユーザーコードに費やされた時間とカーネルコードに費やされた時間。
単位は秒(およびサブ秒、マイクロ秒またはナノ秒の場合があります)です。
実時間は、プロセスがCPUで費やした秒数ではありません。これは、CPUがオンになるのを待って(他のプロセスが実行されるまで)費やした時間を含む、経過時間です。
CPUtime = #clock_cycles / clock_rate
計算することは、経過時間を計算することと同じにすることはできません。CPU時間から経過時間を取得できるかどうか知っていますか?
read()
またはgetpid()
)を実行すると、カーネルはプログラムに代わってコードを実行します。また、カーネルはプリエンプティブなマルチタスクを処理して、他のプログラムが実行できるようにし、システムをスムーズに実行し続けるための一般的なハウスキーピング作業を行います。このコードは「カーネルコード」で実行されます(「カーネルモード」でも実行されます)。これは、ユーザーが記述したコード、および実行するユーザーライブラリ(システムCライブラリを含む)とは異なります。
ウォールクロック時間:コンピュータの内部時計に従って経過した時間。外界の時間と一致する必要があります。これはCPU使用率とは関係ありません。参考のために記載しています。
ユーザーCPU時間とシステム時間:まさにあなたが考えていること。I / Oのような呼び出しを含めるシステムコール、read
、write
、などがカーネルコードにジャンプすることによって実行され、それを実行しています。
実時間<CPU時間の場合は、プログラムを並行して実行しています。実時間> CPU時間の場合、ディスク、ネットワーク、またはその他のデバイスを待機しています。
すべてSIで秒単位で測定されますます。
壁掛け時計の時間はまさにそれが言うことです、あなたの壁の時計(または腕時計)によって測定された経過時間
ユーザーCPU時間は、「ユーザーランド」で費やされた時間です。つまり、カーネル以外のプロセスで費やされた時間です。
システムCPU時間は、カーネルで費やされた時間で、通常はシステムコールのサービスに費やされた時間です。
time [WHAT-EVER-COMMAND]
real 7m2.444s
user 76m14.607s
sys 2m29.432s
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 24
実際または壁掛け時計
実際の7分2.444秒
24コアプロセッサを搭載したシステムでは、このcmd /プロセスが完了するまでに7分以上かかりました。与えられたすべてのコアで最も可能な並列処理を利用することによって。
ユーザー
ユーザー76m14.607s
cmd /プロセスは、これだけの量のCPU時間を使用しました。つまり、シングルコアCPUを搭載したマシンでは、実際のユーザーとユーザーはほぼ同じになるため、同じコマンドを完了するには約76分かかります。
sys
sys 2m29.432s
これは、コンテキストの切り替え、リソースの割り当てなど、このコマンドを実行するためにカーネルがすべての基本/システムレベルの操作を実行するのにかかる時間です。
注:この例では、コマンドが並列処理/スレッドを使用することを前提としています。
詳細なmanページ:https : //linux.die.net/man/1/time
(user + sys) / real
それを表現するために。