我是靠谱客的博主 会撒娇荷花,最近开发中收集的这篇文章主要介绍linux 内核获取时间,Linux内核中的jiffies 以及时间的获取time,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

硬件给内核提供一个系统定时器用以计算和管理时间,内核通过编程预设系统定时器的频率,即节拍率(tick rate),每一个周期称作一个tick(节拍)。Linux内核从2.5版内核开始把频率从100调高到1000(当然带来了很多优点,也有一些缺点).

jiffies是内核中的一个全局变量,用来记录自系统启动一来产生的节拍数。譬如,如果计算系统运行了多长时间,可以用 jiffies/tick rate 来计算。jiffies定义在文件中:

extern unsigned long volatile jiffies;

可以利用jiffies设置超时等,譬如:

unsigned long timeout = jiffies + tick_rate * 2; // 2秒钟后超时

if(time_before(jiffies, timeout){

// 还没有超时

}

else{

// 已经超时

}

内核提供了四个宏来比较节拍计数,这些宏定义在文件中:

time_before(unknown, known)

time_after(unknown, known)

time_before_eq(unknown, known)

time_after_eq(unknown, known)

比较的时候用这些宏可以避免jiffies由于过大造成的回绕问题。

除了系统定时器外,还有一个与时间有关的时钟:实时时钟(RTC),这是一个硬件时钟,用来持久存放系统时间,系统关闭后靠主板上的微型电池保持计时。系统启动时,内核通过读取RTC来初始化Wall Time,并存放在xtime变量中,这是RTC最主要的作用。

===================================

struct timeval tv;

do_gettimeofday(&tv);

最后

以上就是会撒娇荷花为你收集整理的linux 内核获取时间,Linux内核中的jiffies 以及时间的获取time的全部内容,希望文章能够帮你解决linux 内核获取时间,Linux内核中的jiffies 以及时间的获取time所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部