发表于 2008-4-6 20:47 资料 短消息
仍有疑惑,请陈老师帮忙
我把定时测量这一章看了一下,仍然找不到问题的答案。
我的理解是
只要时钟中断是可屏蔽的(通过8259A的任何一个引脚申请中断),那么中断的丢失是会有可能的(驱动程序又会经常关中断,这又增加丢失中断的概率)。若 此时IRR寄存器的第0位为1(即IRQ0)CPU还没受理的情况下,8254又发送了一个中断请求,它也只是把IRR寄存器的第0位置1,对CPU来说 应该无法知道之前置1的那个中断请求。虽然每一次时钟中断,中断服务程序都将jiffies加1,但如果要精确计时的话,应该要准确知道丢失的中断个数 (如果有的话),这样才能准确计时,是不是这样子呢?如果是这样的话,软件时间是不可靠的,怎么会用它去写RTC呢?
让我们想象这么一种极端的情况,若某个程序禁止外部中断,在那里死循环就是不开中断或是过一俩个钟头再开中断,这样即使8254不断地在IRQ0上发中断请求也不会得到受理,等到过了很久才开中断,再把jiffies加一,显然是不合适的.
到底系统是靠哪种机制 正确计时的,请陈老师帮忙.再一次谢谢陈老师.
顶部
[广告] 推荐个超酷的web2.0相册
陈莉君
版主
Rank: 7Rank: 7Rank: 7
UID 26540
精华 1
积分 2281
帖子 152
LUPA币 2203 点
阅读权限 100
注册 2006-11-9
#4
发表于 2008-4-7 18:00 资料 个人空间 短消息
内核中除了使用可编程间隔定时器PIT外,还用到了时间戳计数器TSC(64位),高精度事件定时器HPET和ACPI电源管理定时器。后三种保证精确性。 其中有一个mark_offset方法检查自上一个节拍以来是否丢失时钟中断,如果丢失,则更新Jiffies_64。
相关热门文章
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
require.js疑惑
汉子转拼音(不支持多音字)
require.js入门
CSS+transform画动态表情
nodejs的简单爬虫
根据选择的省市区自动匹配邮政编码
node将excel内容转json
js实现省市区联动
sql server 作业收缩数据库