快速业务通道

容易混淆LINUX时钟的xtime和jiffies

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-05-07

在LINUX的时钟中断中涉及至二个全局变量一个是xtime,它是timeval数据结构变量,另一个则是jiffies,看timeval结构

struct timeval
{
time_t tv_sec; /***second***/
susecond_t tv_usec;/***microsecond***/
}

这个地方一直有很多人容易混淆,到底microsecond是毫秒还是微秒,我也经常犯这个错误,也被搞的糊涂了很久,我们理清一下吧,1秒=1000毫秒(3个零),1秒=1000 000微秒(6个零),1秒=1000 000 000纳秒(9个零),1秒=1000 000 000 000皮秒(12个零).秒用s表现,毫秒用ms,微秒用μs表示,纳秒用ns表示,皮秒用ps表示,他们的分级单位是千,即每次3个零.混淆的原因找到了,毫秒用ms表示,我老是以为microsecond是毫秒,就把tv_usec理解错了.microsecond查词霸也是微秒的意思,看来单位的表示迷惑了我,也迷惑了大多数人,请朋友们牢记这里,非常重要.

那么xtime是从cmos电路中取得的时间,一般是从某一历史时刻开始到现在的时间,也就是为了取得我们操作系统上显示的日期.这个就是所谓的“实时时钟”,它的精确度是微秒.

jiffies是记录着从电脑开机到现在总共的时钟中断次数.在linux内核中jiffies远比xtime重要,那么他取决于系统的频率,单位是Hz,这里不得不说一下频率的单位,1MHz=1000,000Hz(6个零),1KHz=1000Hz(3个零).频率是周期的倒数,一般是一秒钟中断产生的次数,,假如我们需要知道系统的精确的时间单位时,需要换算了,假如我们系统的频率是200Mhz,那么一次中断的间隔是1秒/200,000,000Hz=0.000 000 005秒看一下上面我们的时间单位,对照一下小数点后面是9个零,理论上我们系统的精确度是5纳秒.LINUX系统时钟频率是一个常数HZ来决定的,通常HZ=100,那么他的精度度就是10ms(毫秒).也就是说每10ms一次中断.一般来说Linux的精确度是10毫秒.

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号