用户CPU时间与系统CPU时间?


Answers:


62

区别在于时间是花在用户空间还是内核空间上。用户CPU时间是处理器在运行程序代码(或库中的代码)上花费的时间;系统CPU时间是代表您的程序在操作系统内核中运行代码所花费的时间。


1
哪个用于运行“ * .dll”文件?
user472221

4
@ user472221 dll是一个Win概念。您的问题不受操作系统限制
belisarius博士10年

1
@ user472221我的答案是基于UNIX / Linux的。相同的概念应适用于Windows。我不确定大多数DLL是用户空间,尽管我不确定Windows在哪里划清界限。如果您真的想找出程序在哪里使用CPU时间,请使用探查器。
Michael Ekstrand

1
“用户空间”和“内核空间”与“用户/内核模式”相同吗?如果内核正在运行,但是处于用户模式,该帐户是用户时间还是系统时间?还是只有在微内核上才有实际区别?
Antonis Christofides

为什么要区分用户或内核?例如,内核是单线程的,所以如果我的进程通过系统调用绑定内核,那么其他人必须等待吗?
JohnMudd

26

用户CPU时间:处理器在特定程序上工作的时间。

系统CPU时间:处理器处理与该特定程序连接的操作系统功能所需的时间。


7
这段文本出自哪里?
按键

9
计算机组织和设计:硬件/软件接口-作者:David A. Patterson,John L. Hennessy –第30页
N Randhawa

1
因此,如果我理解的很好,如果内核没有在特定线程上执行任何操作,则某个进程可能有0个系统时间
HoCo_

22

首先,“用户CPU时间”一词可能会引起误解。需要明确的是,总时间(实际CPU时间)是CPU花在对某个程序执行某些操作上的时间量和CPU花在代表该程序对内核执行系统调用上的时间量的总和。当程序循环访问数组时,它正在累积用户CPU时间。相反,当程序执行诸如exec或fork的系统调用时,它正在累积系统CPU时间。


4

基于维基百科

  • 用户时间是CPU忙于在用户空间中执行代码的时间。
  • 系统时间是CPU忙于在内核空间执行代码的时间。如果为线程或进程报告此值,则它表示内核代表执行上下文的时间,例如,在线程发出系统调用之后。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.