Benutzer-CPU-Zeit vs. System-CPU-Zeit?

Antworten:

62

Der Unterschied besteht darin, ob die Zeit im Benutzer- oder im Kernelbereich verbracht wird. Die CPU-Zeit des Benutzers ist die Zeit, die auf dem Prozessor verbracht wird, auf dem der Code Ihres Programms (oder der Code in Bibliotheken) ausgeführt wird. Die System-CPU-Zeit ist die Zeit, die für die Ausführung von Code im Betriebssystemkern für Ihr Programm aufgewendet wurde.

Michael Ekstrand
quelle
1
Welches wird zum Ausführen von "* .dll" -Dateien verwendet?
user472221
4
@ user472221 DLL ist ein Win-Konzept. Ihre Frage ist nicht an das Betriebssystem gebunden
Dr. belisarius
1
@ user472221 Meine Antwort basiert auf UNIX / Linux; Das gleiche Konzept sollte unter Windows gelten. Ich würde vermuten, dass die meisten DLLs User-Space sind, obwohl ich nicht sicher bin, wo Windows die Grenze zieht. Wenn Sie wirklich herausfinden möchten, wo Ihr Programm CPU-Zeit verwendet, verwenden Sie einen Profiler.
Michael Ekstrand
1
Ist "User Space" und "Kernel Space" dasselbe wie "User / Kernel Mode"? Wenn der Kernel ausgeführt wird, sich jedoch im Benutzermodus befindet, gilt dies als Benutzerzeit oder Systemzeit? Oder ist dies nur auf einem Mikrokern von praktischem Unterschied?
Antonis Christofides
Warum zwischen Benutzer oder Kernel unterscheiden? Ist der Kernel beispielsweise Single-Threaded? Wenn mein Prozess den Kernel mit einem Systemaufruf bindet, müssen andere warten?
JohnMudd
26

Benutzer-CPU-Zeit : Zeit, die der Prozessor an dem spezifischen Programm gearbeitet hat.

System-CPU-Zeit : Zeit, die der Prozessor an den Funktionen des Betriebssystems gearbeitet hat, die mit diesem bestimmten Programm verbunden sind.

N Randhawa
quelle
7
Was ist die Quelle dieses Texts?
Tastendruck
10
Computerorganisation und -design: Die Hardware- / Software-Schnittstelle - Von David A. Patterson, John L. Hennessy - Seite 30
N Randhawa
1
Es ist also möglich, 0 Systemzeit für einen Prozess zu haben, wenn der Kernel frei von jeglicher Ausführung auf dem spezifischen Thread ist, wenn ich das gut verstehe
HoCo_
22

Der Begriff "Benutzer-CPU-Zeit" kann zunächst etwas irreführend sein. Die Gesamtzeit (reale CPU-Zeit) ist die Kombination aus der Zeit, die die CPU für die Ausführung einer Aktion für ein Programm benötigt, und der Zeit, die die CPU für die Ausführung von Systemaufrufen für den Kernel im Namen des Programms benötigt. Wenn ein Programm ein Array durchläuft, sammelt es die CPU-Zeit des Benutzers. Wenn umgekehrt ein Programm einen Systemaufruf wie exec oder fork ausführt, sammelt es System-CPU-Zeit an.

user3407861
quelle
4

Basierend auf Wikipedia :

  • Die Benutzerzeit gibt an, wie lange die CPU damit beschäftigt war, Code im Benutzerbereich auszuführen.
  • Die Systemzeit gibt an, wie lange die CPU damit beschäftigt war, Code im Kernelraum auszuführen. Wenn dieser Wert für einen Thread oder Prozess gemeldet wird, gibt er die Zeit an, die der Kernel für den ausführenden Kontext ausgeführt hat, z. B. nachdem ein Thread einen Systemaufruf ausgegeben hat.
Tastendruck
quelle