码迷,mamicode.com
首页 > 系统相关 > 详细

clock_gettime接口和linux时间系统

时间:2018-04-03 12:43:33      阅读:226      评论:0      收藏:0      [点我收藏+]

标签:时间类   锂电池   eof   休眠   nic   linux时间   real   实时   opera   

RTC/OSC
RTC,Real Time Clock,真实时钟,也叫做CMOS时钟,又叫walltime
OSC,Operation System Clock,系统时钟。在开机时操作系统取得RTC中的时间数据来初始化OSC,之后完全由完全由操作系统控制。
当设置OSC时间时,RTC时间不会自动同步,待关闭或者重启时,操作系统会自动同步OSC时间到RTC, 操作系统每隔一个固定时间会刷新或校正RTC中的信息,当操作系统关机时,时间交由主板上的RTC去记时,因为主板上的CMOS有锂电池供电. 
当再次开机时,操作系统会去主板RTC上获取时间。


CLOCK_REALTIME/CLOCK_REALTIME
CLOCK_REALTIME,真实时间,walltime,即RTC,会被settime()/settimeofday()影响。
CLOCK_MONOTONIC,单调时间,即从某个时间点开始到现在过去的时间。用户不能修改这个时间,但是当系统进入休眠(suspend)时,CLOCK_MONOTONIC是不会增加的。不会被settime()/settimeofday()影响。


NTP的影响
如果NTP调整时间时调用了adjtimex()接口,会同时对CLOCK_REALTIME和CLOCK_MONOTONIC都有影响。


CLOCK_MONOTONIC_RAW
与monotonic时间类似,也是单调递增的时间,但raw monotonic time不会受到NTP时间调整的影响


int clock_gettime(clockid_t clk_id, struct timespec *tp);
clk_id为CLOCK_MONOTONIC,则返回系统启动后秒数和纳秒数。
clk_id为CLOCK_REALTIME,则返回RTC

clock_gettime接口和linux时间系统

标签:时间类   锂电池   eof   休眠   nic   linux时间   real   实时   opera   

原文地址:https://www.cnblogs.com/senior-engineer/p/8707406.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!