是time_after()Linuxmacros100%傻瓜certificate关于围绕jiffies?

是time_after()Linuxmacros100%傻瓜certificate关于围绕jiffies?,第1张

概述是time_after()Linuxmacros100%傻瓜certificate关于围绕jiffies?

基于我在linux / include / linux / jiffIEs.h中find的代码:

41 #define time_after(a,b) 42 (typecheck(unsigned long,a) && 43 typecheck(unsigned long,b) && 44 ((long)(b) - (long)(a) < 0))

在我看来,没有任何一种环境监测涉及到。 所以,如果jiffIEs(a)要环绕并且相当接近超时(b),那么当它实际为“真”时,结果将是“假”。

在这个例子中,我们使用一些相当小的数字。 说, time_after(110,150) ,其中110是jiffIEs,150是超时。 结果显然是错误的 – 无论是否缠绕:150-110总是> 0。

所以,我只想确认我没有错过任何事情,事实确实如此。

NTP不正确处理池服务器上的限制

Term :: Readline不寻常的行为

从多个进程追加到单个文件的“线程安全性”?

如何拦截键盘input在linux的最低水平?

*** glibc检测到*** ./main:双倍空闲或损坏(fasttop):0x08857008 ***

在ubuntu中使用TPM来保护证书

如何从PHP注册ejabberd用户?

如何为Qt应用程序创build一个“安装”包?

linux每进程的资源限制 – 一个深红色的奥秘

更改本地 *** 作系统时间会影响数据库吗?

只是要清楚,在你的例子中,因为110不是在150之后, time_after(110,150)应该(并且确实)返回false。 从评论:

time_after(a,b) returns true if the time a is after time b.

另外,请注意,代码确实处理到0绕包。为了使下面更容易理解,我将使用无符号和有符号的单字节值,即8位2的补码。 但是这个观点是一般的。

假设b是253,jiffIEs已经包含了5个tick。所以我们期望time_after(2,253)返回true。 它确实(使用int8_t来表示一个有符号的8位值):

(int8_t) 253 - (int8_t) 2 == -3 - 2 == -5 < 0

你也可以尝试其他的值。 这一个更棘手, time_after(128,127) ,这也应该是真实的:

(int8_t) 127 - (int8_t) 128 == 127 - (-128) == 255 == -1 (for 8-bit 2's complement) < 0

实际上,表达式(int8_t) 127 - (int8_t) 128将是一个int值,而真正的值将是255.但是使用long类型的表达式类型将会很长,对于time_after( 2147483648,2147483647) :

(long) 2147483647 - (long) 2147483648 == 2147483647 - (-2147483648) == 4294967295 == -1 < 0

最终,在“包装”之后,“之后”jiffIEs值a将开始赶上之前的值b ,而time_after(a,b)将报告错误。 对于n位2的补码,这发生在a比b晚2 ^(N-1)滴答时。 对于N = 8,当a在b之后有128个滴答时发生。 对于N = 32,即2147483648个刻度,或(约1 ms刻度)约25天。

对于数学上的倾斜,我相信一般time_after(a,b)如果(ab)的最小残数(模2 ^ N)> 0且<2 ^(N-1) time_after(a,b)将返回真。

从附近的同一个文件中:

/* * Have the 32 bit jiffIEs value wrap 5 minutes after boot * so jiffIEs wrap BUGs show up earlIEr. */ #define INITIAL_JIFFIES ((unsigned long)(unsigned int) (-300*HZ))

人们会希望这意味着它已经很好的测试了。

总结

以上是内存溢出为你收集整理的是time_after()Linuxmacros100%傻瓜certificate关于围绕jiffies?全部内容,希望文章能够帮你解决是time_after()Linuxmacros100%傻瓜certificate关于围绕jiffies?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1247061.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存