linux内核设计与实现---定时器和时间管理(11)
来源:互联网 发布:网络dns错误是什么原因 编辑:程序博客网 时间:2024/06/06 18:37
相对于事件驱动(事件驱动其实也是一种事件驱动,但发生频率非常高,对内和至关重要)而言,内核中有大量的函数都是基于事件驱动的。其中有些函书是周期性执行。
- 周期性产生的事件—–由系统定时器驱动。系统定时器是一种可编程硬件控制芯片,它能以固定频率产生中断。就是所谓的定时器中断。它所对应的中断处理程序负责更新系统时间,也负责执行需要周期运行的任务。
- 系统定时器和时钟中断处理程序是Linux系统内核管理机制中的中枢
- 动态定时器—-一种用来推迟执行程序的工具。比如说,软驱马达在一定时间内都为活动,那么软驱驱动程序会使用动态定时器关闭软驱马达。动态定时器可由内核动态创建和撤销。
- 内核中的时间概念
- 内核必须在硬件的帮助下才能计算和管理时间。系统定时器用于计算流逝的时间。
- 系统定时器以某种频率自行触发(击中–hitting或射中—popping)时钟中断,频率可通过编程预设,称为节拍率(tick rate)。
- 内核通过预编的节拍率得知连续两次时钟中断的间隔时间,间隔时间称为节拍(tick),为节拍率分之一秒。来更新墙上时间和系统运行时间
- 墙上时间—实际时间,对用户空间的应用程序最重要。通过控制时钟中断维护。提供API for 用户空间。
- 系统运行时间—-自系统启动开始所经历的时间,对用户空间和内核都很有用。
- 节拍率:HZ
- 通过静态预处理定义的,也就是HZ(赫兹)。
- 无节拍的OS
- jiffies
- 全局变量jiffies用来记录自系统启动以来产生的节拍总数。一秒内时钟中断产生的次数等于HZ,jiffies增加的值就是HZ。
- 系统运行时间以秒为单位,就等于jiffies/HZ
- jiffies的回绕—-(warp around)提供了四个宏.
- 用户空间和HZ—-改变内核HZ的值,会给用户空间的某些程序造成异常结果。因为内核是以节拍数/秒的形式给用户空间的,如果更改HZ的定义值,用户并不知道新的HZ值,就会出现错误。因此内核必须导出所有更改的jiffies值。因而内核定义了USER_HZ来代表用户空间看到的HZ值。
- 硬时钟和定时器
- 体系结构提供了两种设备进行计时:系统定时器和实时时钟。
- 实时时钟(RTC)—是用来持久存放系统时间的设备,即使系统关闭后,它也可以靠主板上的微型电池提供的电力保持系统的计时。
- 当系统启动时,内核通过读取RTC来初始化墙上时间,该时间存放在xtime变量中。内核一般不会在系统启动后再读取xtime变量,但是有时会周期性的将当前时间值存回RTC中。RTC最主要的作用仍是在启动时初始化xtime变量。
- 系统定时器:内核定时机制中最重要的角色。—-提供一种周期性触发中断机制。
- x86中主要采用可编程中断时钟(PIT)。
- 其他的时钟资源包括:APIC(高级可中断终端控制器)和TSC(时间戳计数)
- 时钟中断处理程序
阅读全文
0 0
- linux内核设计与实现---定时器和时间管理(11)
- linux内核设计与实现(9)定时器和时间管理
- linux内核设计与实现(第十一章)----定时器和时间管理
- 《Linux内核设计与实现》读书笔记(十一)- 定时器和时间管理
- 《Linux内核设计与实现》读书笔记(十一)- 定时器和时间管理
- 《Linux内核设计与实现》读书笔记(十一)- 定时器和时间管理
- 读薄《Linux 内核设计与实现》(5) - 定时器、时间管理和内存管理
- Linux内核设计与实现 学习笔记(1)定时器和时间管理
- [笔记]《Linux内核设计与实现》第十一章定时器和时间管理
- <<Linux内核设计和实现>>读书笔记(十一)-定时器和时间管理
- 《Linux内核与实现》——定时器与时间管理
- LINUX内核设计思想之定时器和时间管理
- Linux内核设计基础(三)之定时器和时间管理
- Linux内核时间管理和定时器
- 《Linux设计与实现》学习笔记——定时器和时间管理
- 再读《Linux内核设计与实现》之时间管理
- linux内核分析笔记----定时器和时间管理
- linux内核分析笔记----定时器和时间管理
- 从 AngularJS 模块定义说起
- 网络营销实战课-笔记2
- ZOJ3508 The War 贪心,最大流
- Xmind基础教程-保存到印象笔记
- iOS将状态栏设置成白色
- linux内核设计与实现---定时器和时间管理(11)
- 使用一个定时器和回调函数防止代码阻塞
- Python几个特殊语法的使用实例
- png转jpg具体操作方法
- yii2 RESTful 接口 api -2 : 自定义函数
- 3-sum问题平方对数级别解法(algs4)
- C程序设计基础——求a+aa+aaa+...+...得累加和
- 位图
- PopupWindow的简单使用