linux下时间子系统
2016-03-29 21:34
405 查看
每个architecture相关的代码中要有实现clock event会让clock source模块。
一般而言,每个CPU形成自己的一个小系统,有自己的调度,有自己的进程统计,这个小系统都是拥有自己的tick设备,而且是唯一的。
硬件有多少个timer硬件就注册多少个clock event device,各个CPU的tick device会选择自己合适的那个clock event设备。
clock_event_device主要用于实现普通定时器和高精度定时器,有时也用于产生tick事件。
为了完成 time keeping功能,硬件需要提供至少一种clock source和clock event source.
timerde中断在kernel即对应jiffies,每次timer中断,jiffies就增加1.
定时测量是由于基于固定频率振荡器和计数器的几个硬件电路完成的。
linux只用RTC来获取时间和日期。
内核通过0x70和0x71I/O端口来访问RTC。
HZ产生每秒钟时钟中断的近似个数,也就是时钟中断的近似个数。
内核使用里那个个基本的计数函数:一个保持当前最新的时间,另一个计算在当前秒内走过的纳秒数。
jiffies变量是一个计数器,用来记录自系统启动以来产生的节拍总数,每次时钟中断发生时它便增加一。
jiffies被初始化为-300×HZ。是一个32位的有符号值。这样做的目的,使得那些不对jiffies作溢出检测的有缺陷的内核代码在开发阶段被及时发现,从而不再出现稳定的内核版本中。
xtime变量存放当前时间和日期。
大多数设备驱动程序利用定时器检测反常情况。
linux考虑两种类型的定时器,即动态定时器和间隔定时器。第一种类型由内核使用,而间隔定时器由进程在用户态创建。
动态定时器存放在timer_list变量中。
被异步激活的动态计时器有参与竞争条件的倾向。
动态定时器的主要数据结构是一个叫做tvec_bases的每CPU变量。
sys_nanosleep();接受一个指向timespec结构的指针作为参数,并将调用进程挂起知道特定的时间间隔用完。
loop_per_jiffy变量用来揭露一个节拍里面有多少个“loop”。
一般而言,每个CPU形成自己的一个小系统,有自己的调度,有自己的进程统计,这个小系统都是拥有自己的tick设备,而且是唯一的。
硬件有多少个timer硬件就注册多少个clock event device,各个CPU的tick device会选择自己合适的那个clock event设备。
clock_event_device主要用于实现普通定时器和高精度定时器,有时也用于产生tick事件。
为了完成 time keeping功能,硬件需要提供至少一种clock source和clock event source.
timerde中断在kernel即对应jiffies,每次timer中断,jiffies就增加1.
定时测量是由于基于固定频率振荡器和计数器的几个硬件电路完成的。
linux只用RTC来获取时间和日期。
内核通过0x70和0x71I/O端口来访问RTC。
HZ产生每秒钟时钟中断的近似个数,也就是时钟中断的近似个数。
内核使用里那个个基本的计数函数:一个保持当前最新的时间,另一个计算在当前秒内走过的纳秒数。
jiffies变量是一个计数器,用来记录自系统启动以来产生的节拍总数,每次时钟中断发生时它便增加一。
jiffies被初始化为-300×HZ。是一个32位的有符号值。这样做的目的,使得那些不对jiffies作溢出检测的有缺陷的内核代码在开发阶段被及时发现,从而不再出现稳定的内核版本中。
xtime变量存放当前时间和日期。
大多数设备驱动程序利用定时器检测反常情况。
linux考虑两种类型的定时器,即动态定时器和间隔定时器。第一种类型由内核使用,而间隔定时器由进程在用户态创建。
动态定时器存放在timer_list变量中。
被异步激活的动态计时器有参与竞争条件的倾向。
动态定时器的主要数据结构是一个叫做tvec_bases的每CPU变量。
sys_nanosleep();接受一个指向timespec结构的指针作为参数,并将调用进程挂起知道特定的时间间隔用完。
loop_per_jiffy变量用来揭露一个节拍里面有多少个“loop”。
相关文章推荐
- linux基础命令练习1
- linux系统基础及简单安装步骤
- 【9】Linux-设备驱动概述
- Linux学习之路:变量值的删除、替代和替换
- Linux开发环境搭建 二 (Ubuntu串口工具minicom的安装及使用)
- 《Linux内核分析》第六周 读书笔记
- Centos下Yum安装PHP5.5,5.6,7.0
- 3.26课堂笔记——linux基础入门
- Linux下查看和添加PATH环境变量
- linux 内存管理分析之-----SLAB层
- 《Linux内核设计与实现》学习总结 Chap3
- Linux-HA开源软件Heartbeat(概念篇)
- 《Linux内核设计与实现》学习总结 Chap18
- centos启动时间查看
- 日常运维工作中如何确保你的linux操作系统安全
- VMware安装CentOS遇到Intel vt-x处于禁止状态
- VMware安装CentOS遇到Intel vt-x处于禁止状态
- 基于qt的嵌入式Linux开发环境搭建
- linux动态库编译和使用详细剖析
- 安装cactiez v11对windows和linux系统进行监控