1、 什么是相对时间、绝对时间、节拍率、节拍、墙上时间、系统运行时间
a) 相对时间
i. 有些是周期执行的,如对调度程序中的运行队列进行平衡调整或对屏幕进行刷新,都需要定期执行(系统定时器负责)
ii. 另一些函数需要等待一个相对时间后才运行,如需要推后执行的磁盘I/O操作等
b) 绝对时间
i. 内核还必须管理系统的运行时间以及当前日期和时间(系统定时器负责)
系统定时器和时钟中断处理程序是Linux系统内核管理机制的中枢
节拍率(tick rate)
系统定时器以某种频率自行触发(hitting击中)或射中(popping)时钟中断,当时钟中断发生时内核通过一次特殊的中断处理程序对其进行处理。不同体系结构HZ值不同。
#define HZ 1000 //相当于1秒钟中断1000次
节拍(tick):节拍率的倒数
连续两次时钟中断的间隔时间
与节拍率相乘为1
墙上时间(实际时间)
对用户空间的应用程序来说最重要。
内核通过控制时钟中断维护实际时间,同时也为用户空间提供了一组系统调用以获取实际日期和实际时间,所谓墙上时间也就是当前的实际时间。
墙上时间存储于系统核心变量xtime中,该变量记录了现实世界中的年月日格式的时间,以便内核对某些对象和事件作时间标记
系统运行时间(启动后经过的时长)
通过两次读取运行时间再计算差,以获取程序运行时长
2、 判断哪些工作需要利用时钟中断执行
更新系统运行时间
更新实际时间
在smp(Symmetric Multi Processing)系统上,均衡调度程序中各处理器上的运行队列
检查当前进程是否用尽了自己的时间片
运行超时的动态定时器
更新资源消耗和处理器时间的统计值
3、 提高节拍率的优缺点
优点:
a) 内核定时器能够以更高的频度和更高的准确度运行
b) 依赖定时值执行的系统调用,能够以更高的精度运行
c) 对诸如资源消耗和系统运行时间等的测量会有更精细的解析度
d) 提高进程抢占的准确度
缺点:
时钟频率越高,意味着系统负担越重
减少了处理器处理其他工作的时间
更频繁地打乱处理器高速缓存并增加耗电
4、 时钟中断处理程序中,tick_periodic()执行了哪些工作
a) 给jiffies_64变量增加1
b) 更新资源消耗的统计值,比如当前进程所消耗的系统时间和用户时间
c) 执行已经到期的动态定时器
d) 执行scheduler_tick()函数
e) 更新墙上时间,该时间存放在xtime变量中
f) 计算平均负载值
5、 定时器使用的三个步骤
执行一些初始化工作
设置一个超时时间
指定超时发生后执行的函数
注意:
定时器并不周期运行,它在超时后就自行撤销(和任务队列一样)
动态定时器不断地创建和撤销,而且它的运行次数也不受限制
定时器有可能并不是超时马上处理相应的函数,可能会推迟到下一个节拍,不能用定时器来实现任何硬实时任务