时钟功能如何在操作系统中工作?

How do the clock function works in operating systems?

我不明白时钟功能在操作系统中是如何工作的。

首先www.cplusplus.com中时钟函数的文档是:

Returns the processor time consumed by the program.

The value returned is expressed in clock ticks[...] 

据我了解,时钟函数必须直接访问 CPU 中的某个寄存器,该寄存器是 CPU 周期的计数器。这怎么可能?我的意思是,如果以 CPU 频率递增一个单位,任何 32 位寄存器都会很快溢出。 OS 是否以某种方式处理此溢出?

"Clock ticks" 是实现定义的,而不是以 cpu 时钟为单位。从历史上看,它们是固定长度、粗粒度的调度时间片。不需要任何特殊的硬件 TSC 来实现 clock。只需计算进程计划的时间片就足够了(最终由定时器中断或类似方式强制执行)。