- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
time Linux中的时钟和定时测量 Linux内核分析PPT培训讲解.ppt
Linux OS Analysis global_clock_event 在setup_pit_timer中被初始化为pit_clockevent 其event_handler在注册过程中,被初始化为tick_handle_periodic tick_handle_periodic的关键是tick_periodic,该函数 调用do_timer和update_process_times do_timer 全局变量,存放自系统启动 以来的时钟节拍数 update_process_times 软定时器 定时器是一种软件功能,它允许在将来的某个时刻调用某个函数 大多数设备驱动程序利用定时器完成一些特殊工作 软盘驱动程序在软盘暂时不被访问时就关闭设备的发动机 并行打印机利用定时器检测错误的打印机情况 Linux中存在两类定时器: 动态定时器 内核使用 间隔定时器 由进程在用户态创建 注意:由于软定时器在下半部分处理,内核不能保证定时器正好在时钟到期的时候被执行,会存在延迟,不适用于实时应用 延迟函数 动态定时器 动态定时器被动态的创建和撤销,当前活动的动态定时器个数没有限制 include/linux/timer.h 创建并激活一个动态定时器 创建一个新的timer_list对象 调用init_timer初始化,并设置定时器要处理的函数和参数 设置定时时间 使用add_timer加入到合适的链表中 通常定时器只能执行一次,如果要周期性的执行,必须再次将其加入链表 动态定时器的维护 数据结构 kernel/timer.c 处理 kernel/timer.c kernel/timer.c,函数init_timers中 kernel/timer.c 阅读kernel/timer.c 动态定时器应用之delayed work kernel/workqueue.c include/linux/workqueue.h 动态定时器应用之schedule_timeout kernel/timer.c 延迟函数 与定时测量相关的系统调用 time() 返回从1970年1月1日凌晨0点开始的秒数 ftime() 返回从1970年1月1日凌晨0点开始的秒数以及最后一秒的毫秒数 数据结构为timeb gettimeofday() 返回从1970年1月1日凌晨0点开始的秒数 对应于sys_gettimeofday() * Linux操作系统分析 中国科学技术大学计算机系 陈香兰(0512 xlanchen@ustc.edu.cn Autumn 2010 Linux中的时钟和定时测量 定时测量 Linux内核提供两种主要的定时测量 获得当前的时间和日期 系统调用:time(), ftime()以及gettimeofday() 维持定时器 settimer(), alarm() 定时测量是由基于固定频率振荡器和计数器的几个硬件电路完成的 主要内容 定时的硬件设备 Linux内核中与时间有关的程序 实现CPU分时、更新系统时间、维护软定时器 与定时测量相关的系统调用及相关服务例程 硬时钟 80x86体系结构上,内核必须显式的与四种时钟打交道 实时时钟Real time clock,RTC 时间戳计数器Time stamp counter,TSC 可编程间隔定时器Programmable interval timer, PIT CPU本地定时器 高精度事件定时器 ACPI电源管理定时器 用于跟踪 当前时间 产生周期性的时钟中断, 用于计时 ? 时间戳计数器TSC 在80x86微处理器中,有一个CLK输入引线 接收外部振荡器的时钟信号 从pentium开始,很多80x86微处理器都引入了一个TSC 一个64位的、用作时间戳计数器的寄存器 它在每个时钟信号(CLK)到来时+1 例如时钟频率400MHz的微处理器,TSC每2.5ns就+1 rdtsc指令用于读该寄存器 与后面介绍的可编程间隔定时器相比,TSC可以获得更精确的时钟 为此,Linux在系统初始化的时候必须确定时钟信号CLK的频率(即CPU的实际频率) tsc_calibrate 根据在一个相对较长的时间间隔内(约5ms)所发生的TSC计数的个数进行计算 那个间隔由可编程间隔定时器给出 由于只在系统初始化的时候运行一次,因此本程序可以执行较长时间,而不会引起问题 可编程间隔定时器PIT 经过适当编程后,可以周期性的给出时钟中断 通常是8254 CMOS芯片 使用I/O端口0x40~0x43 Linux将PIT编程为: 100Hz、1000Hz 通过IRQ0发出时钟中断 每若干毫秒(100Hz为10ms)产生一次时钟中断,即一个tick Tick的长短 短 优点:分辨率高
您可能关注的文档
- Structure of Lipids 大学动物营养学课件 英文版知识介绍.ppt
- Struts 入门技术方案.ppt
- Summarization and Review 弹塑性力学讲义 英文版 典型实例.ppt
- Superdirective Arrays 《天线与电波传播》课件典型实例.ppt
- syntax 英语语言学ppt技术方案.ppt
- syntax 语言学导论课件培训讲解.ppt
- syscall 系统调用 Linux内核分析PPT技术方案.ppt
- S可编程控制器的通信与网络教学 讲义.ppt
- t mr高分辨磁敏感加权成像在颅脑弥漫性轴索损伤中的应用价值 培训讲解.ppt
- task Linux的进程 Linux内核分析PPT培训讲解.ppt
- time out in ancient cities 北京大学年春季学期古代罗马城市研究课件教学 讲义.ppt
- Time Value of Money 学习课件财务管理英文方案策划.ppt
- tone and speaker 北京外国语大学 文学概论 方案策划.ppt
- TradeOffs, Comparative Advantage, and the Market System 管理经济学 技术方案.ppt
- Transportation & Logistics 商务现场口译课件单元PPT技术方案.ppt
- Trivantis 公司副总裁演讲稿微课之路教学 讲义.pptx
- TTL逻辑门 CMOS的课件技术方案.ppt
- T、B 淋 巴 细 胞 医学课件技术方案教学 讲义.ppt
- Unit Topic Section A 英语 九年级 上学期方案策划.ppt
- Unit Topic Section A 英语八上知识介绍.ppt
最近下载
- 实验室2025年度生物安全培训计划.docx VIP
- 邮轮港口及旅游资源李肖楠50课件.pptx VIP
- 现场作业人员管理.pptx VIP
- nt1100逆变器技术资料.doc VIP
- 中国梦知识竞赛试题及答案.pdf VIP
- 律师事务所服务质量反馈制度.docx VIP
- 人教pep五年级上册unit4-What-can-you-do-单元整体作业设计.docx VIP
- 西师大版六年级上册数学全册教案(教学设计).doc VIP
- DB5206_T28—2018_梵净山茶叶冲泡品饮指南_铜仁市 .docx VIP
- DB37_T5110-2018:城市地下综合管廊工程施工及验收规范.pdf VIP
文档评论(0)