设为首页 加入收藏 网站首页
休闲娱乐
军事·社会百态·娱乐八卦·校园
体育·美女写真·幽默笑话·游戏
综合·在线视频·搞笑图片·灵异
两性生活
两性知识·性爱技巧
情色实录·两性图片
女性健康·同性之恋
电脑网络
网络编程·网页制作·软件教学
操作系统·图形图象·冲浪宝典
网络安全·邮件系统·认证考试
热点专题
芙蓉·真人漫画
72式·欲望都市
帅哥·人体彩绘
您现在的位置: 世纪中国 >> 操作系统 >> Linux 教程 >> 教程正文
Linux操作系统内核的时钟中断机制
作者:中国图霸    教程来源:网络    点击数:    更新时间:2007-1-3

  摘要:

  本文主要从内核实现的角度分析了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)实时时钟(Real Time Clock,RTC);(2)可编程间隔定时器(Programmable Interval Timer,PIT);(3)时间戳计数器(Time Stamp Counter,TSC)。

  时钟硬件

  1、实时时钟RTC

  自从IBM PC AT起,所有的PC机就都包含了一个叫做实时时钟(RTC)的时钟芯片,以便在PC机断电后仍然能够继续保持时间。显然,RTC是通过主板上的电池来供电的,而不是通过PC机电源来供电的,因此当PC机关掉电源后,RTC仍然会继续工作。通常,CMOS RAM和RTC被集成到一块芯片上,因此RTC也称作“CMOS Timer”。最常见的RTC芯片是MC146818(Motorola)和DS12887(maxim),DS12887完全兼容于MC146818,并有一定的扩展。本节内容主要基于MC146818这一标准的RTC芯片。具体内容可以参考MC146818的Datasheet。

  1.1 RTC寄存器

  MC146818 RTC芯片一共有64个寄存器。它们的芯片内部地址编号为0x00~0x3F(不是I/O端口地址),这些寄存器一共可以分为三组:

  (1)时钟与日历寄存器组:共有10个(0x00~0x09),表示时间、日历的具体信息。在PC机中,这些寄存器中的值都是以BCD格式来存储的(比如23dec=0x23BCD)。

  (2)状态和控制寄存器组:共有4个(0x0A~0x0D),控制RTC芯片的工作方式,并表示当前的状态。

  (3)CMOS配置数据:通用的CMOS RAM,它们与时间无关,因此我们不关心它。

  时钟与日历寄存器组的详细解释如下:


Address Function 
00 Current second for RTC 
01 Alarm second 
02 Current minute 
03 Alarm minute 
04 Current hour 
05 Alarm hour 
0

[1] [2] [3] [4] 下一页

分类推荐
社会 社会 娱乐 军事 校园
幽默 体育 女性 专题
电脑 编程 网页 软件 系统
安全 图象 冲浪 认证
搞笑 人物 动物 物品 表情
签名 色图 漫画 奇闻
美女 明星 清纯 自拍 欧美
丝袜 卡通 性感 走光
两性 知识 性图 孕育 技巧
同性 单身 情感 实录
视频 写真 搞笑 MTV 翻唱
写实 片段 游戏 综艺
Linux 教程热门文章
普通教程 Linux下Makefile的automake生成
普通教程 Linux/Unix环境下的make命令详
普通教程 Linux系统中网络配置详解
普通教程 在Linux桌面环境下运行Photosh
普通教程 Linux操作系统内核和设备文件对
普通教程 网卡设置指南
普通教程 开源桌面竞争烈 30分钟自己做L
普通教程 将Linux代码移植到Windows的简
普通教程 Linux下Makefile的automake生成
普通教程 Linux操作系统定时任务系统Cro
普通教程 Linux下防范缓冲区溢出攻击安全
普通教程 自已动手制作Linux下拼音五笔输
普通教程 删除Linux后如何找回Windows启
普通教程 Linux服务器前台常出现的提示及
普通教程 Linux应用软件谈之远程桌面控制
普通教程 Linux操作系统笔记本电池使用技
普通教程 口袋里的Linux:在您的U盘上运
普通教程 LINUX动态链接库高级应用
普通教程 如何才能让MySQL与OpenOffice共
普通教程 Linux系统中提取DVD音频的方法

  广东广州海珠区 世纪网络工作室 版权所有 上海电信提供网络带宽
信箱: 9297659@qq.com 粤ICP备06113754号