什么是CPU滴答声?


37

题:

  • 如何计算CPU滴答声,它代表什么?
  • 因此,如果某个线程报告未调用()时,是否单单tick等于?10 miliseconds这是否5 * 10 ticks = 500 ticks意味着CPU可能太忙而无法安排上述线程工作

1
您是否可以在上下文中添加“ CPU tick”-也许剪切并粘贴短语来源的段落。我担心几种可能的答案之一之间可能会造成混淆。
米克,2010年

Answers:


31

是用于测量内部系统时间的任意的单元。通常在操作系统内部有一个滴答声计数器。操作系统的各种功能使用的当前时间和日期都从该计数器得出。

一个滴答声代表多少毫秒,取决于操作系统,甚至在安装之间可能有所不同。使用操作系统的机制将滴答声转换为秒。

至于为什么一个线程报告它没有被调用的原因:这将取决于线程是否在某处阻塞(等待,I / O等)。如果没有阻塞,则是,操作系统的调度程序将决定何时开始运行,如果系统繁忙,则可能要花很长时间。

编辑:

请注意,也许不幸的是,一些作者还使用tick作为处理器时钟周期的同义词(例如,本文)。我相信这种用法不太普遍,但最好还是先找出人们在说什么。


因此,CPU需要固定数量的时钟滴答来执行每个指令?
亚伦2010年

1
@aaron:否,指令执行时间与一定数量的处理器周期有关。给定以特定频率运行的特定CPU上的特定OS,您可以计算出一条特定指令要执行多少滴答声,但是该计算对于OS / CPU /频率/指令的任何其他组合不一定有效。
quack quixote 2010年

1
@亚伦:不,滴答和处理器周期是两个不同的概念。处理器周期长度由硬件(CPU频率)确定;刻度由操作系统产生,并使用操作系统(或其设计者)认为适当的任何长度。
sleske 2010年

不要使用datetime.ticks()作为量表,它在设计上故意是恒定的,以表示该对象实例的日期和时间。它是时间相关的,而硬件滴答是时间相关的。框架方面的命名很不好。
反转

1
@sleske嗯,我明白了。“滴答声”曾经是CPU周期的代名词,也是“与CPU时钟速度无关的恒定时间”的术语。具有两个含义的同一术语。那正确吗?
反转

3

编辑:PC硬件中获取

“处理器时钟通过周期性地生成称为时钟周期或滴答的时间参考信号来协调所有CPU和内存操作。时钟频率以千兆赫(GHz)为单位,每秒指定数十亿滴答。时钟速度决定了指令执行的速度。一些指令需要一个指令,其他指令需要多个指令,而某些处理器在一个指令中执行多个指令。”


滴答之间的时间由您的时钟速度决定,它需要一到多个滴答,这取决于要执行的OP。例如,一个286类CPU需要20个滴答声才能将两个数字相乘

如果您需要高性能的计时器,那么我认为您不能依靠滴答声在所有系统中保持不变。

CPU调度程序可能已经延迟了线程,尤其是在存在另一个具有更高优先级的线程的情况下。所以是的,CPU可能太忙了。


4
-1您混淆了滴答声和处理器周期。ticks在Unix系统上通常每秒发生60或100次,并且不受proc速度的限制。
sleske 2010年

1
我说的是硬件滴答声。一个1hz的CPU每秒处理1个周期(周期),200Hz可以每秒处理200个周期,2GHz每秒处理20亿个周期。CPU越快,您获得的周期数/秒就越多。
反转

2
嗯,我知道,有些作者将tick用作的同义词processor cycle。尽管如此,我还是大部分都tick按照上面的答案中的解释使用了。但我想术语各不相同,像往常一样:-(我编辑我的答案。
sleske
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.