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 系统中有很多与时间相关的程序(比如定期执行的任务,某一时间执行的任务 ...
随机推荐
- 关于netcore 发布到服务器的准备
1.先cmd到指定的网站目录, 然后执行 dotnet xxx.dll, 浏览器查看 localhost:5000 确认没有问题之后才去部署到iis
- JSONP解决跨域问题,什么是JSONP(转)
原文链接:https://www.cnblogs.com/xinxingyu/p/6075881.html 说到AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交换数据?第二个是跨域的 ...
- url中特殊符号转换
特殊符号 url中显示 空格 %20 & %26
- Flask源码阅读-第一篇(flask包下的__main__.py)
源码: # -*- coding: utf-8 -*-""" flask.__main__ ~~~~~~~~~~~~~~ Alias for flask.run for ...
- 推荐内置android控件的开源项目alcinoe
开源地址:https://github.com/Zeus64/alcinoe 该控件包,含以下几个控件: 1.基于OpenGL实现的视频播放器 ALVideoPlayer. ALVideoPlayer ...
- mysql常见查询练习题
#建学生信息表student create table student ( sno varchar(20) not null primary key, sname varchar(20) not nu ...
- CNN 参数计算
CNN 时间计算复杂度与空间复杂度 即,连续个数与参数个数, 每一个连接都意味着一个计算, 每一个参数都意味一个存储单元. 只计算主要部分. CNN局部连接与权值共享 如图所示: 全连接:如左图所示, ...
- 安装12C小问题及pdb表空间配置
安装12C小问题及pdb表空间配置 一.安装 1.RPM包 #安装12C需要安装的rpm包,官网搜索,做个记录 bc binutils-2.23.52.0.1-12.el7(x86_64) compa ...
- OpenVPN多用户配置
/********************************************************************************* * OpenVPN多用户配置 * ...
- DQN-深度Q网络
深度Q网络是用深度学习来解决强化中Q学习的问题,可以先了解一下Q学习的过程是一个怎样的过程,实际上就是不断的试错,从试错的经验之中寻找最优解 关于Q学习,我看到一个非常好的例子,另外知乎上面也有相关的 ...