linux时间管理 之 jiffies
来源:互联网 发布:大淘宝客联盟 编辑:程序博客网 时间:2024/05/21 06:19
1、jiffies
又称时钟滴答,是一个全局变量,它的值在系统引导的时候初始化为0,在时钟中断初始化完成后,每次时钟中断发生,在时钟中断处理例程中都会将jiffies的值 +1。
jiffies_64:为了解决jiffies溢出问题,更重要的是通过jiffies_64可以知道自开机以来的时间间隔。
2、HZ
HZ表示时钟中断发生的频率。可以在.config的配置文件中改写。1/HZ是每个jiffies+1的时间间隔。
3、通过jiffies可以进行时间的比较和时间转换
4、时间比较
32位 64位
time_after(a,b) time_after64(a,b)
time_before(a,b) time_before64(a,b)
time_after_eq(a,b) time_after_eq64(a,b)
time_before_eq(a,b) time_before_eq64
time_in_range(a,b,c) time_in_range(a,b,c)
5、时间转换
a、jiffies和msecs以及usecs的转换:
unsigned int jiffies_to_msecs(const unsigned long);
unsigned int jiffies_to_usecs(const unsigned long);
unsigned long msecs_to_jiffies(const unsigned int m);
unsigned long usecs_to_jiffies(const unsigned int u);
b、jiffies和timespec以及timeval的转换
在用户空间,应用程序更多的使用秒以及毫秒等时间形式,而在内核中多使用jiffes。
内核定义了struct timeval 和 struct timespec 两种数据结构
struct timespec {
__kernel_time_t tv_sec;
long tv_nsec;
}
struct timeval {
__kernel_time_t tv_sec;
__kernel_suseconds_t tv_usec;
}
相互转换函数:
unsigned long timespec_to_jiffies(const struct timespec *value);
void jiffies_to_timespec(const unsigned long jiffies, struct timespec *value);
unsigned long timeval_to_jiffies(const struct timeval *value);
void jiffies_to_timeval(const unsigned long jiffies, struct timeval *value);
6、要注意的是jiffies的精度问题。如果HZ = 1000,则jiffies增加1代表1ms。
如果要用到更高精度的始终,要用其他的硬件机制。
- linux时间管理 之 jiffies
- linux jiffies
- jiffies溢出与时间先后比较 + linux的HZ, Tick, Jiffies
- jiffies溢出与时间先后比较 + linux的HZ, Tick, Jiffies
- Linux设备驱动---获知当前时间(高于jiffies精度)
- Linux时间管理之hardware
- Linux时间管理之clocksource
- Linux时间管理之hardware
- linux驱动之时间管理
- jiffies 时间转换
- linux HZ Tick Jiffies
- linux HZ Tick Jiffies
- linux jiffies tick hz
- Linux内核中的jiffies
- Linux内核中的jiffies
- linux中的jiffies变量
- linux中的jiffies变量
- linux HZ Tick Jiffies
- shell脚本实现ipa一键安装(itms-services协议)
- 10g rac 备份 RMAN
- 用Ant实现Java项目的自动构建和部署
- Java 自动转换为Unicode文件
- PopupWindow 点击后如何消失
- linux时间管理 之 jiffies
- java.lang.NoSuchMethodError:
- Windows7 64位电脑打开*.chm文件,无法显示内容
- How to Completely Fix updspapi.dll Error
- 学习编程的经验
- JMS简明学习教程
- 从Jetty、Tomcat和Mina中提炼NIO构架网络服务器的经典模式
- 如何修改Eclipse默认打开路径
- 监控行业相关的几种分辨率