【Linux内核】定时器和时间管理

本文探讨了Linux内核中时间管理的概念,包括节拍率(HZ)、全局变量jiffies的使用,以及硬时钟和定时器的工作原理。高HZ值能提高精度但增加系统负担,而定时器则用于指定时间执行任务。时钟中断处理程序分为体系结构相关和无关部分,延迟执行则涉及多种方法,如忙等待和schedule_timeout函数。
摘要由CSDN通过智能技术生成

内核中时间的概念

1.内核中很多函数需要内核提供时间,比如周期性执行的函数,同时,内核还必须管理系统的运行时间以及当前日期和时间

2.内核必须在硬件的帮助下才能计算和管理时间,硬件为内核提供了一个系统定时器定时器会定时触发时钟中断:

  • 中断的间隔时间叫做节拍,节拍的倒数叫做节拍率

3.内核靠的是中断的时间间隔(节拍)来计算墙上时间和系统运行时间

  • 墙上时间,也就是实际时间
  • 系统运行时间,自系统启动到现在的时间

4.有些工作会在多次时钟中断运行一次,有的会每次中断运行

节拍率:HZ

1.100HZ也就是每秒时钟中断100次,在i386体系中为100HZ,在2.5开发内核中提到了1000HZ

2.高HZ值的优势提高了精度,比如可以使进程抢占更准确,加快响应时间,进而提高了效率

3.高HZ值的劣势主要是增加了系统负担,同时也增加了耗电

jiffies

1.全局变量jiffies记录了系统启动以来的时钟中断总数,但是它并非一定从0开始

2.jiffies变量是个unsigned long类型,在32位体系结构上是32位,在64位体系结构是64位

3.在32位情况下,如果达到32位上限,就会回绕到0,为了正确处理回绕计数,内核提供了四个宏

硬时钟和定时器

Linux提供两种设备进行计时:

  • 实时时钟 系统启动时,内核通过读取时钟来初始化墙上时
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值