
时间子系统
xingjiren
这个作者很懒,什么都没留下…
展开
-
Linux时间子系统之五:低分辨率定时器的原理和实现
利用定时器,我们可以设定在未来的某一时刻,触发一个特定的事件。所谓低分辨率定时器,是指这种定时器的计时单位基于jiffies值的计数,也就是说,它的精度只有1/HZ,假如你的内核配置的HZ是1000,那意味着系统中的低分辨率定时器的精度就是1ms。早期的内核版本中,内核并不支持高精度定时器,理所当然只能使用这种低分辨率定时器,我们有时候把这种基于HZ的定时器机制成为时间轮:time wheel。虽转载 2013-04-23 09:24:32 · 567 阅读 · 0 评论 -
Linux时间子系统之六:高精度定时器(HRTIMER)的原理和实现
上一篇文章,我介绍了传统的低分辨率定时器的实现原理。而随着内核的不断演进,大牛们已经对这种低分辨率定时器的精度不再满足,而且,硬件也在不断地发展,系统中的定时器硬件的精度也越来越高,这也给高分辨率定时器的出现创造了条件。内核从2.6.16开始加入了高精度定时器架构。在实现方式上,内核的高分辨率定时器的实现代码几乎没有借用低分辨率定时器的数据结构和代码,内核文档给出的解释主要有以下几点:转载 2013-04-23 09:25:18 · 642 阅读 · 0 评论 -
Linux时间子系统之一:clock source(时钟源)
Linux时间子系统之一:clock source(时钟源)分类: Linux内核架构 Linux时间管理系统 2012-09-13 22:25 2381人阅读 评论(0)收藏举报目录(?)[+]struct clocksource结构rating时钟源的精度read回调函数mult和shift字段clocksource的注册和初始化clocks转载 2013-04-23 09:18:43 · 610 阅读 · 0 评论 -
Linux时间子系统之八:动态时钟框架(CONFIG_NO_HZ、tickless)
在前面章节的讨论中,我们一直基于一个假设:Linux中的时钟事件都是由一个周期时钟提供,不管系统中的clock_event_device是工作于周期触发模式,还是工作于单触发模式,也不管定时器系统是工作于低分辨率模式,还是高精度模式,内核都竭尽所能,用不同的方式提供周期时钟,以产生定期的tick事件,tick事件或者用于全局的时间管理(jiffies和时间的更新),或者用于本地cpu的进程统计、时转载 2013-04-23 09:26:42 · 841 阅读 · 0 评论 -
Linux时间子系统之七:定时器的应用--msleep(),hrtimer_nanosleep()
我们已经在前面几章介绍了低分辨率定时器和高精度定时器的实现原理,内核为了方便其它子系统,在时间子系统中提供了一些用于延时或调度的API,例如msleep,hrtimer_nanosleep等等,这些API基于低分辨率定时器或高精度定时器来实现,本章的内容就是讨论这些方便、好用的API是如何利用定时器系统来完成所需的功能的。/***********************************转载 2013-04-23 09:25:55 · 597 阅读 · 0 评论 -
Linux时间子系统之四:定时器的引擎:clock_event_device
早期的内核版本中,进程的调度基于一个称之为tick的时钟滴答,通常使用时钟中断来定时地产生tick信号,每次tick定时中断都会进行进程的统计和调度,并对tick进行计数,记录在一个jiffies变量中,定时器的设计也是基于jiffies。这时候的内核代码中,几乎所有关于时钟的操作都是在machine级的代码中实现,很多公共的代码要在每个平台上重复实现。随后,随着通用时钟框架的引入,内核需要支持高转载 2013-04-23 09:23:54 · 838 阅读 · 0 评论 -
Linux时间子系统之三:时间的维护者:timekeeper
本系列文章的前两节讨论了用于计时的时钟源:clocksource,以及内核内部时间的一些表示方法,但是对于真实的用户来说,我们感知的是真实世界的真实时间,也就是所谓的墙上时间,clocksource只能提供一个按给定频率不停递增的周期计数,如何把它和真实的墙上时间相关联?本节的内容正是要讨论这一点。1. 时间的种类内核管理着多种时间,它们分别是:RTC时间 wall time转载 2013-04-23 09:23:11 · 572 阅读 · 0 评论 -
Linux时间子系统之二:表示时间的单位和结构
分类: Linux内核架构 Linux时间管理系统 2012-09-14 17:18 2019人阅读 评论(0)收藏举报linuxstruct数据结构timer脚本list目录(?)[+]jiffiesstruct timevalstruct timespecstruct ktime人们习惯用于表示时间的方法是:年、月、日、时、分、秒、毫秒、转载 2013-04-23 09:22:00 · 531 阅读 · 0 评论 -
Linux内核时间管理
Linux内核时间管理(1)内核中的时间概念 时间管理在linux内核中占有非常重要的作用。 相对于事件驱动而言,内核中有大量函数是基于时间驱动的。 有些函数是周期执行的,比如每10毫秒刷新一次屏幕; 有些函数是推后一定时间执行的,比如内核在500毫秒后执行某项任务。 要区分: *绝对时间和相对时间转载 2013-07-17 17:07:55 · 546 阅读 · 0 评论