linux内核源代码分析-定时器与时间管理.ppt
《linux内核源代码分析-定时器与时间管理.ppt》由会员分享,可在线阅读,更多相关《linux内核源代码分析-定时器与时间管理.ppt(29页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、定时器与时间管理、内存管理上次课的回顾及后面的安排内核中的时间概念Linux中时间表示硬件时钟和定时器Linux下的时钟中断和相关时间应用Linux内存页Linux内存区内存管理提供的服务内存管理缓存机制内存映射上次内容回顾和后面的安排系统调用和中断(回顾上节课内容)中断处理程序的上、下半部机制LINUX下半部处理机制同步的经典问题LINUX内核同步实现增加一次课,课本内容完成后通过两个专题的形式增加对内核的认识内核中的时间概念事件驱动与时间驱动内核中需管理相对时间和绝对时间内核时间的硬件基础(系统定时器以某种频率触发,hitting or poping,该频率可以通过编程预定(tick ra
2、te)直接用处:更新系统运行时间更新实际时间定期均衡运行队列(SMP上)时间片定期统计Linux中时间表示(HZ)节拍率(HZ)系统定时器频率,可以通过设置修改,系统启动时设置,不同体系结构下不同。如:在中:#define Hz 1000 /相当于1秒中断1000次思考:时间的精确性书上P116表9-1给出一般情况下各种体系结构下的时钟中断频率理想的HZ值应该是多少?多时会产生中断频繁但提高精度(分析:平均误差)Linux中时间表示(HZ)精度提高的进一步讨论一些关键系统调用的效率提高(poll(),select())进程抢占的精度提高时间测量方面精度提高中断次数增加带来的问题综合考虑认为目前
3、体系结构的系统设为1000可以忍受。Linux中时间表示(jiffies)全局变量,用来记录系统启动以来产生的节拍总数在中定义:Extern unsigned long volatile jiffies;响应地有:Seconds*HZ=jiffies;(jiffies/HZ)=seconds;(还有一些其他的转换)有关jiffies的内部位数问题:溢出时间问题64位问题(中)Linux中时间表示(jiffies)64位与32位的结合Jiffies的回绕unsigned long timeout=jiffies+HZ/2;/*执行一些任务.*/if(timeout jiffies)未超时,正常处
4、理else 超时,错误处理;Linux中时间表示(jiffies)回绕的处理:time_afterTime_beforeTime_after_eqTime_before_eq分析怎样避免的回绕影响(借用了LONG的符号)Linux中时间表示(用户空间和HZ)内核改变HZ的值会影响一些基于原来值的应用内核需要导出合适的jeffies值若新旧HZ数差整数倍则比较简单#define jiffies_to_clock(x)(x)/(HZ/USER_HZ)否则,需要向时间上做一下转换,误差会小一些。思考一下,为什么?硬件时钟和定时器体系结构提供了两种设备计时系统定时器实时时钟(RTC),不开机时靠电池供
5、电工作,系统启动时,初始化xtime变量。Linux下的时钟中断和相关时间应用时钟中断处理程序做的工作:获得xtime_lock锁,对jiffies_64和xtime进行保护(为什么jiffies不用保护)应答或重新设置系统时钟周期性地使用墙上时间更新实时时钟调用体系结构无关的时钟例程:do_timer():Jiffies_64变量加1更新资源消耗的统计值执行到期的动态定时器执行sheduler_tick()函数更新墙上时间并存到xtime变量中计算平均负载值Linux下的时钟中断和相关时间应用Do_timer()void do_timer(struct pt_regs*regs)jiffie
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- linux 内核 源代码 分析 定时器 时间 管理
限制150内