中断屏蔽方法
伪代码如下:
void lock() {
DisableInterrupts(); //关中断
}
void unlock() {
EnableInterrupts(); //开中断
}
优点:
- 实现简单,完全依靠硬件实现;
缺点:
- 开关中断是一种系统的操作,如果使用这个程序,可能会出现严重的安全问题。例如,关了中断而不开中断(单线程独占 CPU),从而 OS 就不能获得控制权了——导致严重的系统问题;
- 只在单处理器中才有效;
- 不高效;
应用:
- 操作系统访问系统内部的数据结构时保证原子性;
- 防止某些混乱的中断产生;