ユーザーのCPU時間とシステムのCPU時間?


回答:


62

違いは、時間がユーザースペースとカーネルスペースのどちらで費やされるかです。ユーザーCPU時間は、プログラムのコード(またはライブラリ内のコード)を実行しているプロセッサに費やされた時間です。システムCPU時間は、プログラムに代わってオペレーティングシステムカーネルでコードを実行するために費やされた時間です。


1
「* .dll」ファイルの実行に使用されるのはどれですか?
user472221 2010年

4
@ user472221dllはWinの概念です。あなたの質問はOSに制限されていません
ベリサリウス博士2010年

1
@ user472221私の答えはUNIX / Linuxに基づいています。同じ概念がWindowsにも当てはまります。Windowsがどこに線を引くかはわかりませんが、ほとんどのDLLはユーザースペースだと思います。プログラムがCPU時間を使用している場所を本当に知りたい場合は、プロファイラーを使用してください。
Michael Ekstrand

1
「ユーザースペース」と「カーネルスペース」は「ユーザー/カーネルモード」と同じですか?カーネルが実行されているが、ユーザーモードの場合、このアカウントはユーザー時間またはシステム時間として使用されますか?それとも、これはマイクロカーネル上にある場合にのみ実際的な違いがありますか?
Antonis Christofides 2017年

なぜユーザーとカーネルを区別するのですか?たとえば、カーネルはシングルスレッドなので、私のプロセスがカーネルをシステムコールで拘束している場合、他の人は待たなければなりませんか?
JohnMudd

27

ユーザーCPU時間:プロセッサが特定のプログラムで作業した時間。

システムCPU時間:プロセッサがその特定のプログラムに接続されたオペレーティングシステムの機能に取り組んだ時間。


7
この文書の出所はなんですか?
キー

11
コンピュータの構成と設計:ハードウェア/ソフトウェアインターフェイス-ページ30 -デビッド・A・パターソン、ジョン・ヘネシーによって
N Randhawa

1
私はよく理解してあれば、カーネルが特定のスレッド上の任意の実行がない場合は、いくつかのプロセスのための0システム時間を持つことが可能です
HoCo_

22

「ユーザーCPU時間」という用語は、最初は少し誤解を招く可能性があります。明確にするために、合計時間(実際のCPU時間)は、CPUがプログラムに対して何らかのアクションを実行するために費やす時間と、CPUがプログラムに代わってカーネルのシステムコールを実行するために費やす時間の組み合わせです。プログラムが配列をループするとき、それはユーザーのCPU時間を蓄積しています。逆に、プログラムがexecやforkなどのシステムコールを実行すると、システムのCPU時間が蓄積されます。


4

ウィキペディアに基づく:

  • ユーザー時間は、CPUがユーザースペースでコードを実行するのに忙しかった時間です。
  • システム時間は、CPUがカーネル空間でコードを実行するのに忙しかった時間です。この値がスレッドまたはプロセスについて報告されている場合は、たとえば、スレッドがシステムコールを発行した後など、実行中のコンテキストに代わってカーネルが作業を行っていた時間を表します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.