Linux
内核的时钟中断机制
opyright © 2003 by
詹荣开
E-mail:zhanrk@sohu.com
Linux-2.4.0
Version 1.0.0
,
2003-2-14
摘要:
本文主要从内核实现的角度分析了
Linux 2.4.0
内核的时钟中断、
内核对时间的表示等。
本文是为那些想要了解
Linux I/O
子系统的读者和
Linux
驱动程序开发人员而写的。
关键词:
Linux
、时钟、定时器
申明:
这份文档是按照自由软件开放源代码的精神发布的,任何人可以免费获得、使用和重
新发布,但是你没有限制别人重新发布你发布内容的权利。发布本文的目的是希望它能对读
者有用,
但没有任何担保,
甚至没有适合特定目的的隐含的担保。
更详细的情况请参阅
GNU
通用公共许可证
(GPL)
,以及
GNU
自由文档协议
(GFDL)
。
你应该已经和文档一起收到一份
GNU
通用公共许可证
(GPL)
的副本。如果还没有,写信给:
The Free Software Foundation, Inc., 675 Mass Ave, Cambridge,MA02139, USA
欢迎各位指出文档中的错误与疑问。
前言
时间在一个操作系统内核中占据着重要的地位,
它是驱动一个
OS
内核运行的
“
起博器
”
。
一般说来,内核主要需要两种类型的时间:
(
1
)
、在内核运行期间持续记录当前的时间与日期,以便内核对某些对象和事件作时间标记
(
timestamp
,也称为
“
时间戳
”
)
,或供用户通过时间
syscall
进行检索。
(
2
)
、维持一个固定周期的定时器,以提醒内核或用户一段时间已经过去了。
PC
机中的时间是有三种时钟硬件提供的,
而这些时钟硬件又都基于固定频率的晶体振荡
1