找回密码
 立即注册
搜索
热搜: 活动 通知
查看: 261|回复: 2

请教:《x86 编写64位多处理器多线程操作系统》第 6 章代码

[复制链接]

11

主题

22

回帖

203

积分

至尊会员

积分
203

至尊会员

发表于 2025-2-14 14:41:45 | 显示全部楼层 |阅读模式
李老师,您好!


      在第 6 章代码中,测量 Local APIC 定时器时,已经关中断 (cli),但为什么作为参考的 RTC 的中断信号,还能被检测到,用作计时时长

      在实模式进入保护模式前,已 cli 关中断;

      直到内核程序中,自举处理器 BSP 安装 SIPI 中断门后,才开放中断 sti;

      说明,测量 Local APIC 定义器时处于关中断状态,那么 RTC 的中断信号为什么还能发出

      为了进一步验证,我在测量前又加了 1 个 'cli',打印出 1ms 的测试值,还是能测量出。

      请问老师,这里 RTC 中断信号,为什么不受 cli 控制

431

主题

320

回帖

3463

积分

管理员

积分
3463
发表于 2025-2-14 15:57:30 | 显示全部楼层
你的问题虽然 很长,但是答案却非常简单。
CLI指令只是导致处理器不响应和处理中断,但并不阻止中断的发生。
何况,我们只是读RTC来判断中断是否发生,又不是在中断处理过程内测量。

11

主题

22

回帖

203

积分

至尊会员

积分
203

至尊会员

 楼主| 发表于 2025-2-14 17:08:27 | 显示全部楼层
谢谢老师精准的解答!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|鼠侠网 ( 吉ICP备19001332号 )

GMT+8, 2025-2-22 02:03 , Processed in 0.232008 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表