Linux内核中的jiffies

硬件给内核提供一个系统定时器用以计算和管理时间,内核通过编程预设系统定时器的频率,即节拍率(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最主要的作用。

http://soft.chinabyte.com/os/373/11782873.shtml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值