好贷网好贷款

linux内核时间操作

发布时间:2016-12-5 2:23:29 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"linux内核时间操作",主要涉及到linux内核时间操作方面的内容,对于linux内核时间操作感兴趣的同学可以参考一下。

linux内核是通过定时器中断来跟踪时间流;使用"HZ"宏表示1秒的时钟中断次数,并使用"jiffies"及"jiffies_64"变量来记录时钟中断次数,在系统引导时计数器初始化为 0 1 内核时间比较api, 比较jiffies计数器 #include <linux/jiffies.h> int time_after(unsigned long a, unsigned b); int time_before(unsigned long a, unsigned b); int time_after_eq(unsigned long a, unsigned b); int time_before_eq(unsigned long a, unsigned b);2 内核表述方法(jiffies)与时间表述方法的转换 时间表述方法可用的数据结构有"struct timeval"和"struct timespec"。其中"struct timeval"为老式的数但较为流行,它使用秒和毫秒值;而"struct timespec"为新式的,它使用的是秒与纳秒值。 #include <linux/time.h> unsigned long timespec_to_jiffies(struct timespec *value); void jiffies_to_timespec(unsigned jiffies, struct timespec *value); unsigned long timeval_to_jiffies(struct timeval *val); void jiffies_to_timeval(unsigned long jiffies, struct timeval *value);3 获取jiffies_64值 #include <linux/jiffies.h> u64 get_jiffies_64(void);4 获取CPU时钟周期数值 使用jiffies值测量时间差间隔在大部分情况下已经足够,但如果测量更短的时间差,则可以使用处理器特定寄存器, rdtsc宏是与体系结构相关,而get_cycles则与体系结构无关。 #include <asm/msr.h> rdtsc(low32, high32); rdtscl(low32); rdtscsll(var64); #include <linux/timex.h> cycles_t get_cycles(void);5 获取当前时间 #include <linux/time.h> unsigned long mktime(unsigned int year, unsigned int mon, unsigned int day, unsigned int hour, unsigned int min, unsigned int sec); void do_gettimeofday(struct timeval *tv); struct timespec current_kernel_time(void)

上一篇:它有许多功能的局域网
下一篇:JAVA启动参数大全:标准参数[收藏]

相关文章

相关评论