【问题标题】:what is the difference between hardware overhead and software overhead when testing performance of an operating system测试操作系统性能时,硬件开销和软件开销有什么区别
【发布时间】:2016-05-10 13:31:33
【问题描述】:

我正在为操作系统课程做一个学校项目。我必须估计各种开销——例如,时间测量开销、上下文切换开销、内存/磁盘访问开销。在其中几种情况下,我需要估计开销中的软件开销部分是什么,以及硬件部分是什么。有人可以提供一个示例,说明哪些操作可以称为硬件开销,哪些操作可以是软件?我是否正确假设在调用函数时设置堆栈是软件开销,因为它只涉及移动指针?访问磁盘上的块会是硬件开销吗?这些操作似乎很容易表征。也许有人可以举一些其他例子来巩固我的理解。

【问题讨论】:

  • 明确的问题(不要求模糊的例子)。更多段落。

标签: c++ performance hardware overhead


【解决方案1】:

这些都是正确的例子。其他一些硬件开销示例包括等待设备(例如打印机)和等待网络上的另一个节点。

访问共享库可能会产生软件开销,虚拟表也是如此。您将很难在内核空间中找到任何一个。我认为共享对象不能存在于用户空间之外。

【讨论】:

    【解决方案2】:

    给你分配任务的人应该已经定义了所涉及的术语,例如software overheadhardware component。如果他们没有,你应该问。

    它并不像看起来那么清晰。你似乎接受了Accessing a block on disk would be hardware overhead。那么内存呢?内存是硬件组件,就像硬盘驱动器一样。每次内存访问都需要一段可测量的时间,尽管时间很短。这是否要计入软件与硬件的数量?甚至在谈论可以转化为磁盘访问的管道、缓存或虚拟内存页面错误之前。

    我可以就网络、GPU、监视器等提出类似的观点。然而,重点仍然是,对于一项作业,最好是提出问题,而不是第二次猜测 - 并且可能会猜错。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-04
      • 2013-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-17
      • 2020-04-08
      • 1970-01-01
      相关资源
      最近更新 更多