作者ggg12345 (ggg)
看板ASM
标题Re: [问题] 关於interrupt handler中的组语
时间Tue Sep 25 09:04:40 2007
※ 引述《willhunting (这些年来)》之铭言:
: 标题: [问题] 关於interrupt handler中的组语
: 时间: Sun Sep 23 18:07:52 2007
: 想请问一下,大部分的作业系统都可以看到interrupt handler中
: 有不少的组语。虽然说这几年也出了一些纯粹用高阶语言写的handler
: ,但就一般情况来说,除了速度上的考量外,还有什麽理由是interrupt
: handler经常是用组语来写的理由呢?谢谢
: → wuzen:code size 09/23 21:15
==========
OS 中的 interrupt handler 跟一般组语写的 interrupt handler
是有差异的.
1. OS 的 ISR(Interrupt service routine) 只记录与传递事件,
很少直接进行处理, 以免延误下一个 Interrupt request
2. OS 的 hardware interrupt return 通常不会直接回到被中断
的程式, 而是将机器的主控权交回 dispatcher/scheduler ,
所以会对 return-address 做一些处理, 再执行 RETI .
3. OS 的 trap interupt 会对 system call interrupt 做对应
代码的呼叫, 甚至检查 mutual exclusive lock 与换 stack
之後, 也是会更动 return 执行次序.
一般高阶语言不做这种细腻的宣告与编译.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.6.234