linux cpu时钟

在Linux内核中,咱们能够发现主要有这么几种不一样类型的时钟(clock):ubuntu

1spa

2.net

3code

4server

CLOCK_REALTIMEci

CLOCK_MONOTONICget

CLOCK_MONOTONIC_RAWio

CLOCK_BOOTTIMEtable

 CLOCK_REALTIME,能够理解为wall time,便是实际的时间。用户能够使用命令(date)或是系统调用去修改。若是使用了NTP, 也会被NTP修改。当系统休眠(suspend)时,仍然会运行的(系统恢复时,kernel去做补偿)。date

CLOCK_MONTONIC,是单调时间,即从某个时间点开始到如今过去的时间。用户不能修改这个时间,可是当系统进入休眠(suspend)时,CLOCK_MONOTONIC是不会增长的。

CLOCK_MONOTONIC_RAW,和CLOCK_MONOTONIC相似,但不一样之处是MONOTONIC_RAW不会受到NTP的影响。CLOCK_MONOTONIC会受到NTP的影响并非说NTP会去修改CLOCK_MONOTONIC,使其不连续,而是说当NTP server 和本地的时钟硬件之间有问题,NTP会影响到CLOCK_MONOTONIC的频率,可是MONOTONIC_RAW则不会受其影响。 其区别能够参考 Difference between MONOTONIC and MONOTONIC_RAW

CLOCK_BOOTTIME,与CLOCK_MONOTONIC相似,可是当suspend时,会依然增长。能够参考LWN的这篇文章 introduce CLOCK_BOOTTIME

相关文章
相关标签/搜索