HZ和jiffies

本文介绍了Linux内核中的定时器节拍数HZ及其与jiffies的关系。jiffies变量记录系统启动以来定时器触发次数,每秒增加HZ次。内容涉及HZ在不同体系结构上的默认值,以及如何通过jiffies进行时间计算。同时提到了jiffies_64变量用于处理溢出问题,并提及了相关头文件和宏定义。
摘要由CSDN通过智能技术生成

系统定时器能以可编程的频率中断处理器。此频率即为每秒的定时器节拍数,对应着内核变量HZ。

jiffies变量记录了系统启动以来,系统定时器已经触发的次数。

内核每秒中将jiffies变量增加HZ次。

 

HZ的值取决于体系架构。在x86系统上,在2.4内核中,该值默认设置为100;在2.6内核中,该值变为1000;而在2.6.13中,它又被降低到了250。在基于ARM的平台上,2.6内核将HZ设置为100。在目前的内核中,可以在编译时通过配置菜单选择一个HZ值。该项的默认值取决于系统架构的版本。

2.6.21内核支持无节拍的内核(CONFIG_NO_HZ),它会根据系统的负载动态触发定时器中断。无节拍系统暂不讨论。

 

根据上述内容可得:

秒数 = jiffies / Hz

jiffies相关的一些内容被定义在<linux/jiffies.h>中,但实际使用过程中只需要导入linux/sched.h>就可以了,sched.h包含了对jiffies.h的导入。

 

一些简单的使用:

jiffies + HZ; //未来一秒钟

jiffies + (n * HZ); //未来n秒

jiffies + (n * HZ / 1000); 未来n毫秒

 

假定jiffies的值是1000,,3位的jiffies会在大约50天的时间溢出。由于系统的运行时间可以比该时间长许多倍,因此,内核提供了另一个变量jiffies_64以存放64位(u64)的jiffies。连接器将jiffies_64的低32位于32位的jiffies指向同一个地址。在32位的机器上,为了将一个u64变量赋值给另

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值