1. 内核函数:事件驱动和时间驱动
  2. 相对时间和绝对时间
  3. 周期性产生的事件——都是由系统定时器驱动的。系统定时器是一种可编程硬件芯片,它能以固定频率产生中断,该中断就是所谓的定时器中断,它所对应的中断处理程序负责更新系统时间和执行需要周期性运行的任务。

内核的时间概念

  1. 内核必须在硬件的帮助下才能计算和管理时间。
  2. 节拍(tick):两次时钟中断的间隔时间。,它等于节拍率分之一
  3. 利用时间中断周期执行的工作:
  1. 更新系统运行时间
  2. 更新实际时间
  3. 在smp系统上,均衡调度程序中各处理器上的运行队列,如果运行队列负载不均衡的话,尽量使他们均衡
  4. 检查当前进程是否用尽了自己的时间片。如果用尽,就重新调度
  5. 运行超时的动态定时器
  6. 更新资源消耗和处理器时间的统计值

节拍率:HZ

  1. HZ:节拍率,一个周期为1/HZ秒。在X86体系结构中,默认是100,也就是每秒产生时钟中断100次。
  2. 理想的HZ值

提高节拍率会带来如下好处:提高时间驱动事件的解析度和准确度,会带来如下优点:

  1. 依赖定时器执行的系统调用,比如poll()和select(),能够以更高精度运行。
  2. 对资源消耗和系统运行时间等测量会更精细
  3. 提高进程抢占的准确度

高HZ的劣势:拍率越高,意味着时钟中断频率越高,意味着系统负担越重。

无节拍的OS:linux支持无节拍操作,按需动态调度时间中断,在系统空闲时减少能耗

  1. jiffies

全局变量jiffies记录自系统启动以来产生的节拍的总数。一秒钟内时钟中断的次数等于HZ,所以系统运行时间以秒为单位计算,=jiffies/HZ。

内核中将秒转换为jiffies用得多一些,内核本身很少用到绝对时间。

unsigned long later = jiffies+5*HZ;  /*从现在开始5秒*/

LKD:定时器和时间管理相关推荐

  1. Linux内核深入理解定时器和时间管理(7):相关的系统调用

    Linux内核深入理解定时器和时间管理 相关的系统调用 rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 结构体 ---------------------------- ...

  2. Linux内核深入理解定时器和时间管理(5):clockevents 框架

    Linux内核深入理解定时器和时间管理 clockevents 框架 rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 1. Introduction to the cl ...

  3. Linux内核深入理解定时器和时间管理(4):定时器 timer

    Linux内核深入理解定时器和时间管理 定时器 timer rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 1. Timers This is fourth part ...

  4. Linux内核深入理解定时器和时间管理(3):tick 广播 框架 和 dyntick

    Linux内核深入理解定时器和时间管理 tick 广播 框架 和 dyntick rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 结构体 --------------- ...

  5. Linux内核深入理解定时器和时间管理(2):clocksource 框架

    Linux内核深入理解定时器和时间管理 clocksource 框架 rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 全局部变量 ------------------- ...

  6. Linux内核深入理解定时器和时间管理(1):硬件时钟和jiffies

    Linux内核深入理解定时器和时间管理 硬件时钟和jiffies rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容. 全局部变量 --------------------- ...

  7. Linux内核——定时器和时间管理

    定时器和时间管理 系统定时器是一种可编程硬件芯片.它能以固定频率产生中断.该中断就是所谓的定时器中断.它所相应的中断处理程序负责更新系统时间,还负责执行须要周期性执行的任务. 系统定时器和时钟中断处理 ...

  8. Linux内核深入理解定时器和时间管理(6):x86_64 相关的时钟源(kvm-clock,tsc,acpi_pm,hpet)

    Linux内核深入理解定时器和时间管理 x86_64 相关的时钟源(kvm-clock,tsc,acpi_pm,hpet) rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容 ...

  9. 《Linux内核设计与实现》读书笔记(十一)- 定时器和时间管理

    系统中有很多与时间相关的程序(比如定期执行的任务,某一时间执行的任务,推迟一段时间执行的任务),因此,时间的管理对于linux来说非常重要. 主要内容: 系统时间 定时器 定时器相关概念 定时器执行流 ...

  10. Linux定时器和时间管理

    时间管理在内核中占有非常重要的地位.相对于事件驱动而言,内核中有大量的函数都是基于时间驱动的.其中有些函数都是周期执行的,像对调度程序中的运行队列进行平衡调整或对屏幕进行刷新这样的函数,都需要定期执行 ...

最新文章

  1. 美团搜索中NER技术的探索与实践
  2. 一个实用的显示Visual Studio Code文件绝对路径的扩展应用
  3. Script Lab 续:为 Officejs 开发配置 VSCode 环境
  4. uva 1610——Party Games
  5. 工作63:await和anync
  6. Go语言channel与select原理
  7. AI智能问答核心代码
  8. Android 微光闪烁效果之更强Shimmer-android
  9. 计算机绘图软件应用于哪些领域,计算机绘图软件在环境艺术设计中的运用
  10. 坚定Freyja2的发展方向
  11. 笔记本无法启用免费wifi
  12. 借助方便的工具平台,让App制作变简单
  13. 云计算+,如何推动建筑行业智慧化升级?
  14. 404错误代码页面 调用自动获取小姐姐图片
  15. java验证手机号格式方法
  16. [转贴]变态的C自增
  17. 李开复:长尾效应带给媒体的不是威胁
  18. channel error:reply-code=404, reply-text=NOT_FOUND - no exchange ‘console‘ in vhost ‘/‘, class-id=40
  19. Linux应用开发【第十二章】I2C编程应用开发
  20. XTAL OSC的经验小结

热门文章

  1. 微信支付开发出现redirect_uri参数错误的解决方法
  2. python实现的原生ping脚本工具
  3. 同步与异步,回调与协程
  4. win10快捷方式怎么去掉盾牌?
  5. 4计算准确率_让最差的学生突破计算关,只需10分钟,不会算我输
  6. C语言printf函数格式字符
  7. jvm优化—监控工具:诊断内存泄露、cpu飙升、线程死锁、响应变慢
  8. win7 mac虚拟机linux,小白练习win7系统在虚拟机下装mac的具体方案
  9. reac-获取自定义data-属性
  10. 给Firefox火狐浏览器 修改设置默认搜索引擎为百度