容易混淆LINUX时钟的xtime和jiffie…
来源:互联网 发布:装修图纸软件 编辑:程序博客网 时间:2024/05/19 10:15
在LINUX的时钟中断中涉及至二个全局变量一个是xtime,它是timeval数据结构变量,另一个则是jiffies,首先看timeval结构
struct timeval
{
time_t tv_sec;
susecond_t tv_usec;
}
这个地方一直有很多人容易混淆,到底microsecond是毫秒还是微秒,我也经常犯这个错误,也被搞的糊涂了很久,我们理清一下吧,1秒=1000毫秒(3个零),1秒=1000000微秒(6个零),1秒=1000 000 000纳秒(9个零),1秒=1000 000 000000皮秒(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.000000005秒看一下上面我们的时间单位,对照一下小数点后面是9个零,所以理论上我们系统的精确度是5纳秒。X86下的LINUX系统时钟频率是一个常数HZ(其取值与具体的体系结构有关)来决定的,通常HZ=1000,那么他的精度度就是1ms(毫秒)。也就是说每1ms一次中断。所以一般来说Linux的精确度是1毫秒。
- 容易混淆LINUX时钟的xtime和jiffie…
- linux墙上时间xtime与高精度时钟gettimeofday
- gettimeofday和xtime的定时精度
- grttimeofday和xtime的定时精度
- Linux下容易混淆的命令
- Linux-容易出错/混淆的地方
- 容易混淆的数据库单引号和双引号
- boost::xtime和::xtime会冲突
- 容易混淆的概念
- 容易混淆的const
- 容易混淆的概念
- 容易混淆的函数
- 容易混淆的概念
- 容易混淆的知识点
- 容易混淆的 const
- 粒度为HZ的时钟中断里如何更新纳秒级别的xtime的值
- Linux驱动开发中容易混淆的概念
- Linux驱动开发中容易混淆的概念
- 2010年12月04日的日记
- 对mini2440板子附带的《Mini2440 L…
- linux之write函数
- Linux下vfork实例
- 不畏浮云遮望眼,只缘身在此山中
- 容易混淆LINUX时钟的xtime和jiffie…
- Linux内核中的jiffies(转)
- 2.6.36中struct file_operations 的变化
- arm-linux-2.6.29的GPIO宏与…
- mini2440的led的Linux驱动程序
- IIS安装常见错误
- Linux输入(input)子系统
- Linux设备模型之input子系统详解
- Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]