Linux内核设计基础(三)之定时器和时间管理
版权声明:本文为博主原创文章。未经博主同意不得转载。 https://blog.csdn.net/BlueCloudMatrix/article/details/29294529
内核知道连续两次时钟中断的间隔时间。而这个间隔时间就是所谓的节拍,它是从节拍率计算而来。
节拍率:
节拍率也叫系统定时器(硬件)频率或时钟中断频率,用HZ来度量。
在x86体系结构下。节拍率默认100HZ。事实上怎样确定HZ值是一门非常大的学问。提高HZ等同于提高中断解析度。比方HZ=100的时钟的运行粒度为10ms,即系统中的周期事件最快为每10ms运行一次。但当HZ=1000时,解析度为1ms——精细了10倍。这对于触发定时器超时,能够提高精确度。事实上高的HZ会加重系统负担,由于每一次时钟中断就要去运行对应的中断处理程序,这样占用处理器的时间会增多。
Linux支持无节拍操作,会动态调整时钟中断周期,使得空暇时不会被不必要的时钟中断打断,能够省电。
jiffies:
全局变量jiffies(unsigned long)用来记录自系统启动以来产生的节拍的总数。每次时钟中断就会添加该值,所以jiffies一秒内添加的值就为HZ。所以系统运行时间等于jiffies/HZ。
实时时钟RTC:
RTC是用来持久存放系统时间的设备。即便系统关闭后,它也能够靠主板上的微型电池提供的电力继续为系统计时。RTC最基本的作用是在启动时初始化xtime变量。以便得到墙上时间。
与RTC对应的是系统定时器。系统定时器的根本思想是——提供一种周期性触发中断机制。
时钟中断处理程序:
与体系结构相关的例程作为系统定时器的中断处理程序而注冊到内核中。以便在产生时钟中断时。它能够对应地运行。
- 获得xtime_lock锁,以便对訪问jiffies_64和墙上时间xtime进行保护。
- 须要时应答或又一次设置系统时钟。
- 周期性地使用墙上时间更新实时时钟。
- 调用体系结构无关的时钟例程,tick_periodic()。
- 给jiffies_64变量添加1。
- 更新资源消耗的统计值。如当前进程消耗的系统时间和用户时间。
- 运行已经到期的动态定时器。
- 运行scheduler_tick()。
- 更新墙上时间,该时间存放在xtime变量中。
- 计算平均负载值。
Linux内核设计基础(三)之定时器和时间管理的更多相关文章
- (笔记)Linux内核学习(八)之定时器和时间管理
一 内核中的时间观念 内核在硬件的帮助下计算和管理时间.硬件为内核提供一个系统定时器用以计算流逝的时间.系 统定时器以某种频率自行触发,产生时钟中断,进入内核时钟中断处理程序中进行处理. 墙上时间和系 ...
- Linux内核设计基础(九)之进程管理和调度
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/BlueCloudMatrix/article/details/30799225 在Linux中进程用 ...
- Linux内核设计基础(五)之内存管理
我感觉学习操作系统首先要从内存分配和管理入手. 首先我们应该知道现代操作系统是以页为单位进行内存管理的,32位体系结构支持4KB的页.而64位体系结构支持8KB的页.页是用来分配的.怎样才干进行高效和 ...
- Linux内核——定时器和时间管理
定时器和时间管理 系统定时器是一种可编程硬件芯片.它能以固定频率产生中断.该中断就是所谓的定时器中断.它所相应的中断处理程序负责更新系统时间,还负责执行须要周期性执行的任务. 系统定时器和时钟中断处理 ...
- linux内核的三种主要调度策略
linux内核的三种主要调度策略: 1,SCHED_OTHER 分时调度策略, 2,SCHED_FIFO实时调度策略,先到先服务 3,SCHED_RR实时调度策略,时间片轮转 实时进程将得到优先调用, ...
- Linux之定时器与时间管理 【转】
转自:http://blog.chinaunix.net/uid-23228758-id-154820.html 定时器与时间管理: 次,为一秒.一般的情况下编程者不要改变这个值,因为内核编很多代码都 ...
- Linux内核设计笔记11——定时器
定时器与时间管理笔记 内核中的时间 时钟中断:内核中的系统定时器以某种频率触发中断,该频率可以通过编程预定. 节拍率HZ:时钟中断的频率称为节拍率. 节拍:相邻两次中断的时间间隔称为节拍,1/节拍率. ...
- Linux内核的三种调度策略
一 Linux内核的三种调度策略: 1,SCHED_OTHER 分时调度策略, 2,SCHED_FIFO实时调度策略,先到先服务.一旦占用cpu则一直运行.一直运行直到有更高优先级任务到达或自己放 ...
- Linux内核设计与实现 总结笔记(第十一章)定时器和时间管理
时间管理在内核中占用非常重要的地位,内核中有大量的函数都需要基于时间驱动的,内核对相对时间和绝对时间都非常需要. 一.内核中的时间概念 内核必须在硬件的帮助下才能计算和管理时间,系统定时器以某种频率自 ...
- 《Linux内核设计与实现》读书笔记(十一)- 定时器和时间管理【转】
转自:http://www.cnblogs.com/wang_yb/archive/2013/05/10/3070373.html 系统中有很多与时间相关的程序(比如定期执行的任务,某一时间执行的任务 ...
随机推荐
- ubuntu 命令行卸载并清理软件
1.删除软件 方法一.如果你知道要删除软件的具体名称,可以使用 sudo apt-get remove --purge 软件名称 sudo apt-get autoremove --purge 软件名 ...
- ROS tab键补全操作出现错误
ros tab键补全操作出现错误如下: $ roslaunch sp[rospack] Warning: error while crawling /home/hemudu: boost::files ...
- 网口扫盲三:以太网芯片MAC和PHY的关系(转)
问:如何实现单片以太网微控制器? 答:诀窍是将微控制器.以太网媒体接入控制器(MAC)和物理接口收发器(PHY)整合进同一芯片,这样能去掉许多外接元器件.这种方案可使MAC和PHY实现很好的匹配, ...
- Effective Java (ENUM篇)
我们存放一些静态变量,像是一些变量和设置,等等等等,我们尽量使用ENUM,因为ENUM是不可实例化和继承的,所以他很安全,它是在程序一开始运行的时候进行一些编译,修改ENUM不需要再次编译. 在什么时 ...
- <Java><类与对象><OOP>
Overview 类 封装(encapsulation): 也称为数据隐藏.从形式上看,是将数据与行为组合起来,并对对象的使用者隐藏了数据的实现方式.封装给对象赋予了黑盒特征,提高重用性和可靠性. 继 ...
- selenium 自动化安装火狐谷歌插件
谷歌插件下载地址 https://npm.taobao.org/mirrors/chromedriver selenium下载地址 https://pypi.org/simple/selenium/ ...
- IDEA PYCHARM USAGE NOTE
初次安装使用PyCharm,在新建.py文件时会发现文件头并没有什么信息,因此,使用模板会比较方便. 方法如下: 1.打开PyCharm,选择File--Settings 2.依次选择Editor-- ...
- 区分IE版本的js代码
function IEVersion() { var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 var isIE = userAgen ...
- express安装中出现无此命令
原来,最新express4.0版本中将命令工具分家出来了(项目地址:https://github.com/expressjs/generator),所以我们还需要安装一个命令工具,命令如下: 安装ex ...
- JAVA将单词首字母大写方法
public class FirstLetterUppercase { public static void main(String[] args){ System.out.println(new F ...