Linux 中的 时钟和定时测量 Linux Operating Systems Analysis2 举例.

Slides:



Advertisements
Similar presentations
第十二章 常微分方程 返回. 一、主要内容 基本概念 一阶方程 类 型 1. 直接积分法 2. 可分离变量 3. 齐次方程 4. 可化为齐次 方程 5. 全微分方程 6. 线性方程 类 型 1. 直接积分法 2. 可分离变量 3. 齐次方程 4. 可化为齐次 方程 5. 全微分方程 6. 线性方程.
Advertisements

1 第五章 MCS-51 单片机中断系统 概述 概述 第一节 中断系统结构 第一节 中断系统结构 第二节 中断和响应.
一、拟合优度检验 二、变量的显著性检验 三、参数的置信区间
计算机 在分析化学的应用 ( 简介 ) 陈辉宏. 一. 概述 信息时代的来临, 各门学科的研究方法都 有了新的发展. 计算机的介入, 为分析化学的进展提供了 一种更方便的研究方法.
离心泵性能测定实验 指导教师:. 一、实验目的 ⒈熟悉离心泵的操作方法。 ⒉掌握离心泵特性曲线的测定方法、表示 方法,加深对离心泵性能的了解。
嵌入式操作系统 陈香兰 Fall 系统调用 10/27/09 嵌入式 OS 3/12 系统调用的意义  操作系统为用户态进程与硬件设备进行交互提供 了一组接口 —— 系统调用  把用户从底层的硬件编程中解放出来  极大的提高了系统的安全性  使用户程序具有可移植性.
系统调用 Embedded Operating Systems2 系统调用的意义 操作系统为用户态进程与硬件设备进行交互提 供了一组接口 —— 系统调用 把用户从底层的硬件编程中解放出来 极大的提高了系统的安全性 使用户程序具有可移植性.
吉林大学远程教育课件 主讲人 : 杨凤杰学 时: 64 ( 第六十二讲 ) 离散数学. 最后,我们构造能识别 A 的 Kleene 闭包 A* 的自动机 M A* =(S A* , I , f A* , s A* , F A* ) , 令 S A* 包括所有的 S A 的状态以及一个 附加的状态 s.
2.1 结构上的作用 作用及作用效应 作用的分类 荷载分类及荷载代表值.
1 为了更好的揭示随机现象的规律性并 利用数学工具描述其规律, 有必要引入随 机变量来描述随机试验的不同结果 例 电话总机某段时间内接到的电话次数, 可用一个变量 X 来描述 例 检测一件产品可能出现的两个结果, 也可以用一个变量来描述 第五章 随机变量及其分布函数.
Linux 中的时钟 Embedded Operating Systems2 定时测量 Linux 内核提供两种主要的定时测量 获得当前的时间和日期 系统调用: time(), ftime() 以及 gettimeofday() 维持定时器 settimer(),
论匀强磁场条件下磁通回 路的取法 物理四班 物理四班 林佳宁 (PB ) 林佳宁 (PB ) 指导老师 : 秦敢 指导老师 : 秦敢.
主讲教师:陈殿友 总课时: 124 第八讲 函数的极限. 第一章 机动 目录 上页 下页 返回 结束 § 3 函数的极限 在上一节我们学习数列的极限,数列 {x n } 可看作自变量 为 n 的函数: x n =f(n),n ∈ N +, 所以,数列 {x n } 的极限为 a, 就是 当自变量 n.
第十一章 曲线回归 第一节 曲线的类型与特点 第二节 曲线方程的配置 第三节 多项式回归.
第二部分 行政法律关系主体 第一节 行政主体 一、行政主体 (一)行政主体的概念 cc (二)行政主体资格含义及构成要件 CASE1CASE1\CASE2CASE2 (三)行政主体的职权和职责 1 、行政职权的概念及内容 2 、行政职权的特点 3 、行政职责.
线性代数习题课 吉林大学 术洪亮 第一讲 行 列 式 前面我们已经学习了关 于行列式的概念和一些基本 理论,其主要内容可概括为:
1 供应链波动性研究简述. 2 供应链外生波动性和内生波动性 供应链波动性的测量 在途库存的管理.
Linux 操作系统分析 主讲:陈香兰 助教:贾永泉、毛熠璐 (西区电三 421 ) Autumn 2007.
第二章 随机变量及其分布 第一节 随机变量及其分布函数 一、随机变量 用数量来表示试验的基本事件 定义 1 设试验 的基本空间为 , ,如果对试验 的每一个基 本事件 ,规定一个实数记作 与之对应,这样就得到一个定义在基本空 间 上的一个单值实函数 ,称变量 为随机变量. 随机变量常用字母 、 、 等表示.或用.
第 4 章 过程与变量的作用范围. 4.1 Visual Basic 的代码模块 Visual Basic 的应用程序是由过程组成的, 过程代码存放在模块中。 Visual Basic 提供了 三类模块,它们是窗体模块、标准模块和类 模块。 窗体模块 窗体模块是大多数 Visual Basic.
数 学 系 University of Science and Technology of China DEPARTMENT OF MATHEMATICS 第 3 章 曲线拟合的最小二乘法 给出一组离散点,确定一个函数逼近原函数,插值是这样的一种手段。 在实际中,数据不可避免的会有误差,插值函数会将这些误差也包括在内。
实验三: 用双线性变换法设计 IIR 数字滤波器 一、实验目的 1 熟悉用双线性变换法设计 IIR 数字滤波器的原理与方法。 2 掌握数字滤波器的计算机仿真方法。 3 通过观察对实际心电图信号的滤波作用, 获得数字滤波的感性知 识。
大亚湾 PMT 读出电子学介绍 王铮 中科院 “ 核探测技术与核电子学重点实验室 ” 年会.
外文文献检索示例. 实验目的: 掌握利用计算机网络检索外文文献的基本方法; 了解熟悉下列数据库的结构、内容并掌握其检索方 法 ; 掌握检索的主要途径:出版物( Publication )、关键 词( Keyword )、作者( Author )等。
OS 进程调度模拟演示 制作人: 钱晶 高上上. OS 进程调度模拟-实验原理 静态优先级原理 在这种方式下,系统一旦把处理机分配给就绪队 列中的优先权最高的进程后,该进程便一直执行下去, 直至完成。或因为发生某事件使该进程放弃处理机,系 统方可再将处理机分配给另一优先级最高的进程。这些 事件包括有优先级更高的进程进入,或是因为某些原因.
1 第 7 章 专家控制系统 概述 专家系统的起源与发展 专家系统的一般结构 专家系统的知识表示和获取 专家系统的特点及分类.
第二章 贝叶斯决策理论 3学时.
量子化学 第四章 角动量与自旋 (Angular momentum and spin) 4.1 动量算符 4.2 角动量阶梯算符方法
数 学 系 University of Science and Technology of China DEPARTMENT OF MATHEMATICS 第 5 章 解线性方程组的直接法 实际中,存在大量的解线性方程组的问题。很多数值方 法到最后也会涉及到线性方程组的求解问题:如样条插值的 M 和.
主讲教师:陈殿友 总课时: 124 第十一讲 极限的运算法则. 第一章 二、 极限的四则运算法则 三、 复合函数的极限运算法则 一 、无穷小运算法则 机动 目录 上页 下页 返回 结束 §5 极限运算法则.
1 学籍归档工作 年学籍归档工作安排 从 2008 年开始,改为按届移交档案 从 2008 年开始,改为按届移交档案 今年的归档工作范围: 今年的归档工作范围: 2014 年应届毕业班级 2014 年应届毕业班级 2014 年办理毕业证的往届生。 2014 年办理毕业证的往届生。 整理内容:根据.
第一节 相图基本知识 1 三元相图的主要特点 (1)是立体图形,主要由曲面构成; (2)可发生四相平衡转变; (3)一、二、三相区为一空间。
9的乘法口诀 1 .把口诀说完全。 二八( ) 四六( ) 五八( ) 六八( ) 三七( ) 三八( ) 六七( ) 五七( ) 五六( ) 十六 四十八 四十二 二十四 二十一 三十五 四十 二十四 三十 2 .口算, 并说出用的是哪句口诀。 8×8= 4×6= 7×5= 6×8= 5×8=
第二章 处理器管理 南通大学电子信息学院 2010 年 9 月. 第二章 处理器管理 2.1 中央处理器 2.2 中断技术 2.3 进程及其实现 2.4 线程及其实现 2.5 Linux 进程和线程 2.6 Windows 2003 进程和线程 2.7 处理器调度 2.8 作业的管理与调度 2.9.
吉林大学远程教育课件 主讲人 : 杨凤杰学 时: 64 ( 第五十三讲 ) 离散数学. 定义 设 G= ( V , T , S , P ) 是一个语法结构,由 G 产生的语言 (或者说 G 的语言)是由初始状态 S 演绎出来的所有终止符的集合, 记为 L ( G ) ={w  T *
周期信号的傅里叶变换. 典型非周期信号 ( 如指数信号, 矩形信号等 ) 都是满足绝对可 积(或绝对可和)条件的能量信号,其傅里叶变换都存在, 但绝对可积(或绝对可和)条件仅是充分条件, 而不是必 要条件。引入了广义函数的概念,在允许傅里叶变换采用 冲激函数的前提下, 使许多并不满足绝对可积条件的功率.
U niversity of S cience and T echnology of C hina 操作系统关键指标 对应用性能的影响 陈香兰 中国科学技术大学计算机系 2015年7月15日 2015年7月15日 2015年7月15日.
 符号表  标识符的作用: 声明部分:定义了各种对象及对应的属性和 使用规则。 程序体:对所定义的对象进行各种操作。 $ididname IdnameAttributeIR  必要性 Token : 新表-符号表(种类、类型等信息):
Department of Mathematics 第二章 解析函数 第一节 解析函数的概念 与 C-R 条件 第二节 初等解析函数 第三节 初等多值函数.
1 第 7 章 存储过程、触发器和程序包 在很多时候,都需要保存 PL/SQL 程序块,以便 随后可以重新使用。这也意味着,程序块需要一个名 称,这样需才可以调用或者引用它。命名的 PL/SQL 程序块可被独立编译并存储在数据库中,任何与数据 库相连接的应用程序都可以访问这些存储的 PL/SQL 程序块。
网上预约集港操作指南 一、登录系统 登陆下面图片显示网址:输入堆场用户名、密码和校验码登陆系统.
首 页 首 页 上一页 下一页 本讲内容本讲内容 视图,剖视图(Ⅰ) 复习: P107 ~ P115 作业: P48(6-2,6-4), P49( 去 6-6) P50, P51(6-13), P52 P50, P51(6-13), P52 P53 (6-18,6-20) P53 (6-18,6-20)
《 UML 分析与设计》 交互概述图 授课人:唐一韬. 知 识 图 谱知 识 图 谱知 识 图 谱知 识 图 谱.
适用场景 应用背景 1 、企业使用电商平台作为前 台销售门户, NC 作为后台管 理软件; 2 、后台从商城平台自动定时 下载,快速导入到 NC 形成销 售订单,并按 ERP 业务规则 进行校验及触发后续流程; 3 、提高订单传递的及时性、 准确性、规范性,减少工作量, 降低出错率;
LOGO s 数控机床故障诊断与维修. 子项目 8 掌握 M 、 T 代码的工作原理并进行控制 冷却、转速、刀库等 。 任务 8.3 编制斗笠式刀库换刀 PLC 程序,排除故障.
1 、如果 x + 5 > 4 ,那么两边都 可得 x >- 1 2 、在- 3y >- 4 的两边都乘以 7 可得 3 、在不等式 — x≤5 的两边都乘以- 1 可得 4 、将- 7x — 6 < 8 移项可得 。 5 、将 5 + a >- 2 a 移项可得 。 6 、将- 8x < 0.
名探柯南在侦查一个特大盗窃集团过程 中,获得藏有宝物的密码箱,密码究竟 是什么呢?请看信息: ABCDEF( 每个字 母表示一个数字 ) A :是所有自然数的因数 B :既有因数 5 ,又是 5 的倍数 C :既是偶数又是质数 D :既是奇数又是合数 EF :是 2 、 3 、 5 的最小公倍数.
项目七: PLC 功能指令应用 带进位循环左移指令 XXXXX. 项目七: PLC 功能指令应用 FX2 系列可编程控制器移位控制指令有移位、循环移位、字移位 及先进先出 FIFO 指令等 10 条指令。 带进位循环右移指令 RCR 带进位循环左移指令 RCL 字右移位指令 WSFR 先入先出读出指令.
1 物体转动惯量的测量 南昌大学理学院
第四章 计算机数控( CNC )系统  本章重点:  1 计算机数控系统构成及其结构特点  2 运动轨迹插补原理  3 刀具补偿.
§10.2 对偶空间 一、对偶空间与对偶基 二、对偶空间的有关结果 三、例题讲析.
表单自定义 “ 表单自定义 ” 功能是用于制作表单的 工具,用数飞 OA 提供的表单自定义 功能能够快速制作出内容丰富、格 式规范、美观的表单。
7 生产费用在完工产品与在产 品之间分配的核算. 2 第七章 生产费用在完工产品与在产品之 间的分配  知识点 :  理解在产品的概念  掌握生产费用在完工产品与在产品之间的分 配.
项目 1 典型低压电器 的拆装、检修及调试 任务 2 交流接触器的拆装与检修 接触器是一种自动的电磁式自动开关,是 一种依靠电磁力作用使触点闭合或分离的自 动电器,用于接通和断开电动机或其它用电 设备电路。适用于远距离频繁地接通或断开 交直流主电路及大容量控制电路。交流接触 器具有控制容量大、操作方便、便于远距离.
力的合成 力的合成 一、力的合成 二、力的平行四边形 上一页下一页 目 录 退 出. 一、力的合成 O. O. 1. 合力与分力 我们常常用 一个力来代替几个力。如果这个 力单独作用在物体上的效果与原 来几个力共同作用在物体上的效 果完全一样,那么,这一个力就 叫做那几个力的合力,而那几个 力就是这个力的分力。
个体 精子 卵细胞 父亲 受精卵 母亲 人类生活史 问题:人类产生配子(精、卵 细胞)是不是有丝分裂?
算得清写的准 —— 物业费公示报告的编写 讲师:朱芸 物业费的 构成? 哪些是管 理人员工 资呢? 哪些算工程费 用? 怎样才能核 算的清楚呢?
荆门市总工会会员信息采集系统 操作培训 融建信息技术有限公司 肖移海 QQ群号:
逻辑设计基础 1 第 7 章 多级与(或)非门电路 逻辑设计基础 多级门电路.
“ 百链 ” 云图书馆. 什么是百链云图书馆?1 百链云图书馆的实际效果?2 百链云图书馆的实现原理?3 百链云图书馆的价值?44 图书馆要做什么?55 提 纲.
参考文献管理软件. 常见参考文献管理软件 : 中文 : CNKI E-learning (目前免费) NoteExpress NoteFirst 英文: Refworks Endnote (网络版免费) Mendeley……
八. 真核生物的转录 ㈠ 特点 ① 转录单元为单顺反子( single cistron ),每 个蛋白质基因都有自身的启动子,从而造成在功能 上相关而又独立的基因之间具有更复杂的调控系统。 ② RNA 聚合酶的高度分工,由 3 种不同的酶催化转 录不同的 RNA 。 ③ 需要基本转录因子与转录调控因子的参与,这.
U niversity of S cience and T echnology of C hina VxWorks 及其应用开发 陈香兰 年 7 月.
§5.6 利用希尔伯特 (Hilbert) 变换 研究系统的约束特性 希尔伯特变换的引入 可实现系统的网络函数与希尔伯特变换.
1 第三章 数列 数列的概念 考点 搜索 ●数列的概念 ●数列通项公式的求解方法 ●用函数的观点理解数列 高考 猜想 以递推数列、新情境下的 数列为载体, 重点考查数列的通 项及性质, 是近年来高考的热点, 也是考题难点之所在.
第二节. 广告牌为什么会被风吹倒? 结构的稳定性: 指结构在负载的作用下 维持其原有平衡状态的能力。 它是结构的重要性质之一。
§9. 恒定电流场 第一章 静电场 恒定电流场. 电流强度  电流:电荷的定向移动  正负电荷反方向运动产生的电磁效应相同 ( 霍尔效应 特例 ) 规定正电荷流动的方向为正方向  电流方向:正方向、反方向  电流强度 ( 电流 ) A 安培 标量 单位时间通过某一截面的电荷.
目录 上页 下页 返回 结束 二、无界函数反常积分的审敛法 * 第五节 反常积分 无穷限的反常积分 无界函数的反常积分 一、无穷限反常积分的审敛法 反常积分的审敛法  函数 第五章 第五章.
§7.2 估计量的评价标准 上一节我们看到,对于总体 X 的同一个 未知参数,由于采用的估计方法不同,可 能会产生多个不同的估计量.这就提出一 个问题,当总体的一个参数存在不同的估 计量时,究竟采用哪一个好呢?或者说怎 样评价一个估计量的统计性能呢?下面给 出几个常用的评价准则. 一.无偏性.
高 频 电 子 线 路高 频 电 子 线 路 主讲 元辉 5.5 晶体振荡器 石英晶体振荡器的频率稳定度 1 、石英晶体谐振器具有很高的标准性。 、石英晶体谐振器与有源器件的接入系数通常近似 如下 受外界不稳定因素的影响少。 3 、石英晶体谐振器具有非常高的值。 维持振荡频率稳定不变的能力极强。
Presentation transcript:

Linux 中的 时钟和定时测量

Linux Operating Systems Analysis2 举例

Operating Systems Analysis3 定时测量 Linux 内核提供两种主要的定时测量 获得当前的时间和日期 系统调用: time(), ftime() 以及 gettimeofday() 维持定时器 settimer(), alarm() 定时测量是由基于固定频率振荡器和计数器的 几个硬件电路完成的

Operating Systems Analysis4 主要内容 定时的硬件设备 Linux 内核中与时间有关的程序 实现 CPU 分时、更新系统时间、维护软定时器 与定时测量相关的系统调用及相关服务例程

Operating Systems Analysis5 硬时钟 80x86 体系结构上,内核必须显式的与四种时 钟打交道 实时时钟 Real time clock , RTC 时间戳计数器 Time stamp counter , TSC 可编程间隔定时器 Programmable interval timer, PIT SMP 系统上的本地 APIC 定时器 用于跟踪 当前时间 产生周期性的时钟中断, 用于计时

Operating Systems Analysis6 实时时钟 RTC 基本上所有的 PC 都包含实时时钟 独立于 CPU 与所有其他芯片 依靠一个独立的小电池供电给 RTC 中的振荡器 即使关闭 PC 电源,还会继续运转 与 CMOS RAM 往往集成在一个芯片内 例如: Motorala 能在 IRQ8 上发出周期性的中断,频率在 2HZ~8192 之间 可以对其编程实现一个闹钟

Operating Systems Analysis7 Linux 本身只使用 RTC 获得时间和日期 对应的设备文件为 /dev/rtc 可以通过设备文件对其编程 内核通过 0x70 和 0x71 两个端口访问 RTC 系统管理员可以通过执行时钟程序设置时钟

Operating Systems Analysis8 时间戳计数器 TSC 在 80x86 微处理器中,有一个 CLK 输入引线 接收外部振荡器的时钟信号 从 pentium 开始,很多 80x86 微处理器都引入 了一个 TSC 一个 64 位的、用作时间戳计数器的寄存器 它在每个时钟信号( CLK )到来时 +1 例如时钟频率 400MHz 的微处理器, TSC 每 2.5ns 就 +1 rdtsc 指令用于读该寄存器

Operating Systems Analysis9 与后面介绍的可编程间隔定时器相比, TSC 可 以获得更精确的时钟 为此, Linux 在系统初始化的时候必须确定时钟信 号 CLK 的频率(即 CPU 的实际频率) calibrate_tsc 根据在一个相对较长的时间间隔内(约 50ms )所发生 的 TSC 计数的个数进行计算 那个间隔由可编程间隔定时器给出 由于只在系统初始化的时候运行一次,因此本程序可以 执行较长时间,而不会引起问题

Operating Systems Analysis10 可编程间隔定时器 PIT 经过适当编程后,可以周期性的给出时钟中断 通常是 8254 CMOS 芯片 使用 I/O 端口 0x40~0x43 Linux 将 PIT 编程为: 100Hz 通过 IRQ0 发出时钟中断 每 10ms 产生一次时钟中断,即一个 tick

Operating Systems Analysis11 Tick 的长短 短 优点:分辨率高 缺点:需要较多的 CPU 时间处理,会导致用户程序 运行变慢 适用于非常强大的机器,这种机器能够承担较大的 系统开销 Tick 的设置是一个折中,例如 在大多数惠普的 Alpha 和 Intel 的 IA-64 上约 1ms 产生 一个 tick (每秒 1024 个时钟中断) Rawhide Alpha 工作站采用更高( 1200tick/ 秒)

Operating Systems Analysis12 在 Linux 中,下列宏决定时钟中断频率 每秒钟时钟中断的个数,即每秒 tick 的个数 8254 芯片的内部振荡器频率,每秒多少次 对 8254 分频,获得 HZ 所需的时钟

Operating Systems Analysis13 在 init_IRQ() 中初始化时钟中断频率 init_IRQ 此后,只要允许处理时钟中断,约每 10ms 就会产生一个时钟中断 1tick 约为 10ms

Operating Systems Analysis14 如何计算 CPU 的时钟频率 CLK Linux 在初始化的时候,利用可编程间隔定时 器获得 CPU 的频率 观察 calibrate_tsc() ,了解如何计算 CPU 的频 率 calibrate_tsc 已知: PIT 的频率 未知: CLK 频率 方法:统计在 PIT 已知的一段时间内( 50ms ), CLK 发生了多少次;然后计算出 CLK 频率(次数 /50ms )

Operating Systems Analysis15 Linux 的计时体系结构 Linux 要周期性的执行一些任务,例如 更新系统自启动以来所经过的时间 更新时间和日期 确定进程运行了多久 检查每个软定时器是否已经到期

Operating Systems Analysis16 在单处理器系统中,所有定时活动都由 IRQ0 上的时钟中断触发,包括 在中断中立即执行的部分,和 作为下半部分延迟执行的部分

Operating Systems Analysis17 PIT 的时钟中断处理例程 Linux 初始化时由 time_init() 建立 IRQ0 对应的中 断处理函数 time_init 将 irq0 作为 irq_desc 的第一项 的中断处理函数

Operating Systems Analysis18 如果有 TSC ,那么就得到时钟中断处理延迟, 以给用户提供更精确的时钟 该函数会调用 do_timer 进一步处理

Operating Systems Analysis19 do_timer 全局变量,存放自系统启动 以来的时钟节拍数 32 位 约 497 天会溢出(回归为 0 ) 检查当前进程对时间片的使用 情况 激活下半部分 如果 tq_timer 非空,还要激活相关的下半部分处理

Operating Systems Analysis20 update_process_times 更新时间片 视需要进行调度 统计当前进程对 CPU 时间的使用 情况

Operating Systems Analysis21 TIMER_BH 下半部分 当时钟中断处理例程运行结束并返回时,会立 即处理下半部分 更新系统日期和时间,计算当前的系统负载 维护软定时器处理

Operating Systems Analysis22 更新时间和日期 用户程序从下面这个变量中获得当前时间和日 期 存放从 1970 年 1 月 1 日凌晨 0 点 以来经过的所有秒数 最后一秒已经过去的微秒数 取值范围: 0~999999

Operating Systems Analysis23 系统初始化时, time_init() 初始化时间和日期 time_init 观察 get_cmos_time() get_cmos_time 获得 coms 时间 一旦完成, Linux 不再需要 RTC , 依靠下半部分维护 xtime

Operating Systems Analysis24 更新 xtime 上一次 xtime 更新后的 jiffies

Operating Systems Analysis25 软定时器 定时器是一种软件功能,它允许在将来的某个 时刻调用某个函数 大多数设备驱动程序利用定时器完成一些特殊 工作 软盘驱动程序在软盘暂时不被访问时就关闭设备的 发动机 并行打印机利用定时器检测错误的打印机情况

Operating Systems Analysis26 Linux 中存在两类定时器: 动态定时器 内核使用 间隔定时器 由进程在用户态创建 注意:由于软定时器在下半部分处理,内核不能保 证定时器正好在时钟到期的时候被执行,会存在延 迟,不适用于实时应用

Operating Systems Analysis27 动态定时器 动态定时器被动态的创建和撤销,当前活动的 动态定时器个数没有限制 数据结构: 系统使用 512 个双向链表维护动态定时器 定时器到期时要执行的函数 函数使用的参数 到期时间

Operating Systems Analysis28 创建并激活一个动态定时器 创建一个新的 timer_list 对象 调用 init_timer 初始化,并设置定时器要处理的 函数和参数 设置定时时间 使用 add_timer 加入到合适的链表中 通常定时器只能执行一次,如果要周期性的执 行,必须再次将其加入链表

Operating Systems Analysis29 动态定时器的处理 为提高处理动态定时器的效率,必须给定时器 排序,并使用合适的数据结构 Linux 根据 expires 的值,维护这样的数据结构

Operating Systems Analysis30 =64, 64 个双向链表,包含了未来某个时间段内的 动态定时器 index 指向当前应当用来更新上一级定时器的链表 ( =256 ), 256 个双向链表,每个表示对应 时钟到期时的动态定时器链表 Index 表示当前节拍对应的那个链表 未来 个节拍内的定时器 每 256 个节拍内的定时器为 1 个链表 共 64 个 未来 个节拍内的定时器 每 2 14 个节拍内的定时器为 1 个链表 共 64 个 未来 个节拍内的定时器 每 2 20 个节拍内的定时器为 1 个链表 共 64 个 未来 个节拍内的定时器 每 2 26 个节拍内的定时器为 1 个链表 共 64 个 一点点不同:最后一个链表中的 定时器的时间可以任意大

Operating Systems Analysis31 run_timer_list 下半部分 timer_bh() 调用 run_timer_list() 检查到 期的动态定时器,包括: 执行动态定时器 更新链表 观察 run_timer_list() run_timer_list

Operating Systems Analysis32 动态定时器的应用 使用 schedule_timeout() 可以使进程被延迟 (睡眠一段时间) 观察 schedule_timeout() 并看一个内核应用实 例 schedule_timeout

Operating Systems Analysis33 与定时测量相关的系统调用 time() 返回从 1970 年 1 月 1 日凌晨 0 点开始的秒数 ftime() 返回从 1970 年 1 月 1 日凌晨 0 点开始的秒数以及最后 一秒的毫秒数 数据结构为 timeb gettimeofday() 返回从 1970 年 1 月 1 日凌晨 0 点开始的秒数 对应于 sys_gettimeofday()

Operating Systems Analysis34 settimer() 间隔定时器 频率:周期性的触发定时器(若为 0 ,只触发一次) alarm() 引起 SIGALARM 信号

Operating Systems Analysis35 与时钟相关的命令 date :显示或者更改系统时钟 使用 time 获得时钟 使用 ctime 改变时钟格式

Operating Systems Analysis36 Project 5 在用户态编写一个程序,该程序设定一个定时 器,在时间到期的时候做出某种可观察的响应 方法不限 分析你的程序的实际执行借助了内核的哪些机 制