linux内核6-定时器

一 概述

  • 时钟中断: 周期信号,引发CPU中断行为,
  • 相关硬件
  1. 实时时钟RTC: 长时间存放系统的时间设备,即使睡眠也会计数
  2. 可编程间隔期 PIT: 周期性发送时钟中断信号,tick
  3. 时间戳计数器TSC: 时钟信号到来,自动加1(64位)
  4. 高精度计时器HPET
  5. CPU本地定时器: 单次或周期性产生中断系统
  6. 高精度定时器 hrtimer: 提供纳秒级及精度,精确时间迫切需求
  7. jiffies: 计数器,用例记录自系统启动以来的节拍总数
  8. xtime: 存放当前时钟和日期;

1.1 运作机制

  • BIOS关闭使用RTC, linux启动后使用OS时钟
    在这里插入图片描述

1.2 时钟架构

  • 时间戳服务于timekeeper, linux目前使用tickless(无节拍)进行,节约能耗
  • hrtimer服务于语音,视频等高精度的定时器,需要注意一下几点:
  1. 实现通过RBtree
  2. 每个cpu都有一个httimer_cpu_base结构
    在这里插入图片描述

1.3 函数执行

这是动态定时器相关内容

struct timer_list my_timer;
init_timer(&my_timer);
add_timer(&my_timer);
mod_timer(&my_timer);

定时器是通过软中断`run_timer_softirq进行执行;
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/CPriLuke/article/details/113060446
今日推荐