【问题标题】:User CPU time vs System CPU time?用户 CPU 时间与系统 CPU 时间?
【发布时间】:2011-05-17 15:20:07
【问题描述】:

您能详细解释一下“用户 CPU 时间”和“系统 CPU 时间”吗?看了很多,还是没看懂。

【问题讨论】:

标签: cpu


【解决方案1】:

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

【讨论】:

  • 哪一个用于运行“*.dll”文件?
  • @user472221 dll 是一个 Win 概念。您的问题不受操作系统限制
  • @user472221 我的回答是基于UNIX/Linux;相同的概念应该适用于 Windows。我猜想大多数 DLL 都是用户空间的,尽管我不确定 Windows 的界限在哪里。如果您真的想知道您的程序在哪里使用 CPU 时间,请使用分析器。
  • “用户空间”和“内核空间”和“用户/内核模式”一样吗?如果内核正在运行,但在用户模式下,这个帐户是用户时间还是系统时间?还是只有在微内核上才有实际区别?
  • 为什么要区分用户或内核?例如,内核是单线程的,所以如果我的进程正在使用系统调用占用内核,那么其他人必须等待?
【解决方案2】:

用户 CPU 时间:处理器处理特定程序的时间。

系统 CPU 时间:处理器处理与该特定程序相关的操作系统功能的时间。

【讨论】:

  • 这段文字的出处是什么?
  • 计算机组织和设计:硬件/软件接口 - David A. Patterson、John L. Hennessy -- 第 30 页
  • 如果我理解得很好,如果内核在特定线程上没有任何执行,则某些进程的系统时间可能为 0
【解决方案3】:

“用户 CPU 时间”这个词起初可能有点误导。需要明确的是,总时间(实际 CPU 时间)是 CPU 为程序执行某些操作所花费的时间和 CPU 代表程序为内核执行系统调用所花费的时间的组合。当程序循环遍历数组时,它正在累积用户 CPU 时间。反之,当程序执行 exec 或 fork 等系统调用时,就是在累积系统 CPU 时间。

【讨论】:

    【解决方案4】:

    基于wikipedia

    • 用户时间是 CPU 忙于在用户空间执行代码的时间。
    • 系统时间 是 CPU 忙于在内核空间中执行代码的时间。如果为线程报告此值或 进程,然后它代表内核正在执行的时间量 代表执行上下文工作,例如,在线程之后 发出系统调用。

    【讨论】:

      猜你喜欢
      • 2013-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-20
      • 1970-01-01
      • 2013-06-09
      • 2013-03-03
      相关资源
      最近更新 更多