Können Sie mehr über "Benutzer-CPU-Zeit" und "System-CPU-Zeit" erklären? Ich habe viel gelesen, aber ich konnte es nicht gut verstehen.
Können Sie mehr über "Benutzer-CPU-Zeit" und "System-CPU-Zeit" erklären? Ich habe viel gelesen, aber ich konnte es nicht gut verstehen.
Antworten:
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.
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.
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.
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.