我不了解时钟功能在操作系统中如何工作。
首先,www.cplusplus.com
中有关时钟功能的文档是:
Returns the processor time consumed by the program.
The value returned is expressed in clock ticks[...]
据我了解,时钟功能必须直接访问CPU中的某个寄存器,该寄存器是CPU周期的计数器。这怎么可能?我的意思是,如果以CPU频率递增一个单位,则任何32位寄存器都会很快溢出。操作系统是否以某种方式处理此溢出?
答案 0 :(得分:3)
“时钟滴答”是实现定义的,而不是以cpu时钟为单位。从历史上看,它们是固定长度的粗粒度调度时间片。不需要任何特殊的硬件TSC来实现clock
。只需简单地计算调度进程的时间片即可(这些时间片最终由计时器中断或类似事件强制执行)。