Linux操作系统分析 Chapter 7 Linux的时钟和定时测量 陈香兰(xlanchen@ustc.edu.cn) 计算机应用教研室计算机学院 嵌入式系统实验室●苏州研究院 中国科学技术大学 Fa112014 January 14,2015 口49142年元·至Q0 陈香兰(xlanchene哪ustc,edu,cn)(计算Linux捧作系统分折Chapter7 Linux的时4 January 14,2015 1/43
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Linux操作系统分析 Chapter 7 Linux的时钟和定时测量 陈香兰(xlanchen@ustc.edu.cn) 计算机应用教研室@计算机学院 嵌入式系统实验室@苏州研究院 中国科学技术大学 Fall 2014 January 14, 2015 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 7 Linux的时钟和定时测量 @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) January 14, 2015 1 / 43
Outline Linux的计时体系结构 。ARM中的系统时钟system_timer ●arm的滴答机制 ●Jiffies变量 ●Linux的时钟源 ●xtime变量 。时钟中断处理 。软定时器 延迟函数 相关API和命令 小结和作业 口9,4二营三)Q0 陈香兰(xlanchenoustc:cdu.cn)(计算Linux振作系统分折Chapter7 Linux的时4 January 14,2015 2/43
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Outline 1. Linux的计时体系结构 ARM中的系统时钟system_timer arm的滴答机制 Jiffies变量 Linux的时钟源 xtime变量 时钟中断处理 软定时器 2. 延迟函数 3. 相关API和命令 4. 小结和作业 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 7 Linux的时钟和定时测量 @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) January 14, 2015 2 / 43
定时测量 。Linux内核提供两种主要的定时测量 ●获得当前的时间和日期 。系统调用:time(),ftime()以及gettimeofday() ©维持定时器 o settimer(),alarm() 。定时测量是由基于固定频率振荡器和计数器的 几个硬件电路完成的 口·02元#至分QC 练香兰(xlanchen哪ustc,edu.cn)(计算inux操作系航分折Chapter7 Linux的时4 January 14,2015 3/43
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 定时测量 Linux内核提供两种主要的定时测量 1. 获得当前的时间和日期 系统调用:time(), ftime()以及gettimeofday() 2. 维持定时器 settimer(), alarm() 定时测量是由基于固定频率振荡器和计数器的 几个硬件电路完成的 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 7 Linux的时钟和定时测量 @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) January 14, 2015 3 / 43
Linux的计时体系结构 ●Linux的计时体系结构 。更新自系统启动以来所经过的时间 。更新时间和日期 。确定当前进程的执行时间,考虑是否要抢占 。更新资源使用统计计数 。检查到期的软定时器 口·042万至QC 陈香兰(xlanchene0ustc:edu.cm)(计算Linux捧作系统分折Chapter7 Linux的时◆January14,2015 5/43
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Linux的计时体系结构 Linux的计时体系结构 更新自系统启动以来所经过的时间 更新时间和日期 确定当前进程的执行时间,考虑是否要抢占 更新资源使用统计计数 检查到期的软定时器 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 7 Linux的时钟和定时测量 @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) January 14, 2015 5 / 43
计时体系结构中的关键数据结构和变量 ARM中的系统时钟system_timer和sys_timer结构 。时钟中断发生源 。参见sys_timer.数据结构 garm的滴答产生机制:时钟中断tick o timer tick()>do timer() O Jiffies变量 。计时时钟源 Xtime变量 口·02元#至分QC 练香兰(xlanchen哪ustc,edu.cn)(计算inux操作系航分折Chapter7 Linux的时4 January 14,2015 6/43
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 计时体系结构中的关键数据结构和变量 1. ARM中的系统时钟system_timer和sys_timer结构 时钟中断发生源 参见sys_timer数据结构 2. arm的滴答产生机制:时钟中断→tick timer_tick()→do_timer() 3. Jiffies变量 4. 计时时钟源 5. Xtime变量 陈香兰(xlanchen@ustc.edu.cn) (计算机应用教研室 Linux操作系统分析Chapter 7 Linux的时钟和定时测量 @计算机学院嵌入式系统实验室@苏州研究院中国科学技术大学Fall 2014) January 14, 2015 6 / 43