CLOCK_MONOTONIC与CLOCK_REALTIME

Linux C 时间函数clock_gettime()的使用 函数: int clock_gettime(clockid_t clk_id, struct timespec *tp); clockid_t: 用于指定计时时钟的类型,有以下几种类型: CLOCK_REALTIME: 系统实时时间,从Epoch计时,可被设置更改。 CLOCK_MONOTONIC: 系统运行时间,从系统启动时开始计时,系统休眠时不再计时(NTP硬件时钟有问题时会影响其频率,没有... 阅读详情

CLOCK_MONOTONIC(即monotonic time)

CLOCK_MONOTONIC:以绝对时间为准,获取的时间为系统重启到现在的时间,更改系统时间对它没有影响。
字面意义:单调时间,表示系统启动后流逝的时间,由变量jiffies来记录的。
系统每次启动时,jiffies初始化为0。每来一个timer interrupt,jiffies加1,即它代表系统启动后流逝的tick数。
jiffies一定是单调递增的,因为时间不可逆。

CLOCK_REALTIME(即wall time)

CLOCK_REALTIME:相对时间,从1970.1.1到目前的时间。更改系统时间会更改获取的值。它以系统时间为坐标。
字面意思: wall time挂钟时间,表示现实的时间,由变量xtime来记录的。
系统每次启动时,将CMOS上的RTC时间读入xtime,这个值是”自1970-01-01起经历的秒数、本秒中经历的纳秒数”。每来一个timer interrupt,也需要去更新xtime。
wall time不一定是单调递增的。因为wall time是指现实中的实际时间,如果系统要与网络中某个节点时间同步、或者由系统管理员觉得这个wall time与现实时间不一致,有可能任意的改变这个wall time。
最简单的例子是,用户本身可以去任意修改系统时间,这个被修改的时间应该就是wall time,即xtime,它甚至可以被写入RTC而永久保存。

一些题外话

一些应用软件可能就是用到了这个wall time。比如以前用vmware workstation,一启动提示试用期已过,但是只要把系统时间调整一下提前一年,再启动就不会有提示了。这很可能就是因为它启动时,用gettimeofday去读wall time,然后判断是否过期,只要将wall time改一下,就可以欺骗过去了。

Linux时间子系统之时间维护层(Time Keeper) struct timekeeper { struct tk_read_base tkr_mono; struct tk_read_base tkr_raw; u64 xtime_sec; unsigned long ktime_sec; struct timespec64 wall_to_monotonic; ktime_t offs_real; ktime_t of... 阅读详情

相关推荐

H无穷控制学习笔记——加权灵敏度H无穷控制问题

一、加权灵敏度H无穷问题 系统结构如上图所示。被控对象P的状态空间方程为(Ap,Bp,Cp,DpA_p,B_p,C_p,D_pAp​,Bp​,Cp​,Dp​),加权函数W1的状态空间方程为(A1,B1,C1,D1A_1,B_1,C_1,D_1A1​,B1​,C1​,D1​),加权函数W2的状态空间方程为(A2,B2,C2,D2A_2,B_2,C_2,D_2A2​,B2​,C2​,D2​),加权函数W3的状态空间方程为(A3,B3,C3,D3A_3,B_3,C_3,D_3A3​,B3​,C3​,D3​)。

一饮丶一啄的博客 4312

linux中的wall clock time

在一些系统调用中需要指定时间是用CLOCK_MONOTONIC还是CLOCK_REALTIME,以前总是搞不太清楚它们之间的差别,现在终于有所理解了。 CLOCK_MONOTONICmonotonic time,而CLOCK_REALTIME是wall time。 monotonic time字面意思是单调时间,实际上它指的是系统启动以后流逝的时间,这是由变量jiffies来记录的。

swrd 3671

声纹识别初学

最近开始关注声纹识别技术,发现国内做这个的确实没有几家,而且大多重点推声纹认证,用在公安司法金融领域,而我却关注文本无关的声纹识别,这里把我搜到的一点资料汇总在此. 发现njustzj001的专栏有两篇文章适合入门的我,贴下链接: 综述:  http://blog.csdn.net/xmu_jupiter/article/details/47209961 PLDA解释:  http://

u013452331的专栏 2736

CLOCK_MONOTONIC的理解

CLOCK_MONOTONIC在timerfd_create以及clock_gettime中都有使用,具体函数如下: int timerfd_create(intclockid, intflags); //创建timerfd描述符 //clockid可以填CLOCK_REALTIMECLOCK_MONOTONIC //flags可以填0,O_CLOEXEC,O_NONBLOCK in...

qq_34489443的博客 3万+

CLOCK_MONOTONICCLOCK_REALTIME区别

CLOCK_MONOTONIC(即monotonic time) CLOCK_REALTIME(即wall time)

飞信天下专栏 6738

CLOCK_MONOTONIC and CLOCK_REALTIME .

CLOCK_REALTIME:这种类型的时钟可以反映wall clock time,用的是绝对时间,当系统的时钟源被改变,或者系统管理员重置了系统时间之后,这种类型的时钟可以。CLOCK_MONOTONIC这种时钟更加稳定,不受系统时钟的影响。CLOCK_MONOTONIC:用的是相对时间,他的时间是通过jiffies值来计算的。该时钟不受系统时钟源的影响,只受jiffies值的影响。进行封装,主要提供了两种类型的时钟的封装。得到相应的调整,也就是说,系统时间影响这种类型的timer。...

szembed的博客 1368

linux 时间 time(4) CLOCK_MONOTONIC CLOCK_REALTIME 区别

linux 时间(4) CLOCK_MONOTONIC CLOCK_REALTIME 区别1. CLOCK_MONOTONICmonotonic time2. CLOCK_REALTIME 是wall time3. 区别: https://blog.csdn.net/tangchenchan/article/details/47989473 1. CLOCK_MONOTONICmonotonic time monotonic time字面意思是单调时间,实际上它指的是系统启动以后流逝的时间,这是由变

哈尼的博客 2679

Linux中CLOCK_MONOTONIC CLOCK_REALTIME 区别

Linux中CLOCK_MONOTONIC CLOCK_REALTIME 区别 Clock_realtime        代表机器上可以理解为当前的我们所常看的时间,其当time-of-day 被修改的时候而改变,这包括NTP对它的修改(NTP:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英

chenglinhust的专栏 8165

CLOCK_MONOTONIC and CLOCK_REALTIME

Middleware对POSIX提供的标准计时器API进行封装,主要提供了两种类型的时钟的封装。一种是CLOCK_REALTIME,另一种是CLOCK_MONOTONIC。对man手册的解释是: CLOCK_REALTIME: Systemwide realtime clock. 系统范围内的实时时钟。 CLOCK_MONOTONIC:Represents monotonic time. C

Tyrion Lannister's Special column 8206

CLOCK_MONOTONICClock_realtime

Clock_realtime 代表机器上可以理解为当前的我们所常看的时间,其当time-of-day 被修改的时候而改变,这包括NTP对它的修改(NTP:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上标准间差小于1毫秒,WAN上几十毫秒),且可介

在梦中享一刻静谧,等待梦中的你 3303

生产环境定时器陷阱:CLOCK_REALTIMECLOCK_MONOTONIC的生死抉择

时间管理不当可能导致系统崩溃、数据不一致,甚至灾难性故障在生产环境中,定时器的正确使用是系统稳定性的基石。选择错误的时钟源可能导致难以调试的问题,尤其是在分布式系统和高并发场景下。本文将深入探讨两种关键时钟类型,并通过完整C++示例揭示最佳实践。

牟同學的博客 526

CLOCK_MONOTONIC CLOCK_REALTIME 区别

Clock_realtime  代表机器上可以理解为当前的我们所常看的时间,其当time-of-day 被修改的时候而改变,这包括NTP对它的修改(NTP:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上标准间差小于1毫秒,WAN上几十毫秒),且可...

igaozh的专栏 1033

Difference between CLOCK_REALTIME and CLOCK_MONOTONIC

Clock_realtime 代表机器上可以理解为当前的我们所常看的时间,其当time-of-day 被修改的时候而改变,这包括NTP对它的修改(NTP:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上标准间差小于1毫秒,WAN上几十毫秒),且可介由加密

cs2587的专栏 611

clock realtime clock monotonic

Clock_realtime 代表机器上可以理解为当前的我们所常看的时间,其当time-of-day 被修改的时候而改变,这包括NTP对它的修改(NTP:Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上标准间差小于1毫秒,WAN上几十毫秒),且可介由加

[ A NPU WITH AN AUG ] 1099

linux 时间戳 单调递增时间(CLOCK_MONOTONIC_RAW)

转载地址 https://blog.csdn.net/zniahfag/article/details/53489970 https://www.jianshu.com/p/1861a844a2fb https://www.cnblogs.com/memo-store/p/5658277.html uint64_t ustime(void) { uint64_t ust=0...

mialo163的博客 1万+

Visio2013 安装包及破解方法

Visio 是一款由微软开发的专业图表绘制软件,主要用于创建各种流程图、组织结构图、网络拓扑图、工程图纸等。

上一篇: getopt——解析命令行选项
下一篇: syscall——使用系统调用
HideOnLie
博客等级 码龄7年 6粉丝 31原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值