6 x86 assembly atomic interrupt critical-section
是否可以使用ASM/C/C++程序禁用所有中断以完全控制处理器?
如果是 - >怎么样?
如果不是 - >"原子"操作系统调用如何工作(例如进入临界区)?
谢谢你的帮助!
Lud*_*erl 5
在x86程序集中,命令是
sti
cli
这些命令设置并清除IF标志.当IF标志置1时,CPU将处理硬件中断,当它清零时,CPU将忽略硬件中断.它不会影响不可屏蔽中断的处理,也不会影响软件中断或异常.这些指令也不能在非特权模式下工作(通常一切都高于环0,取决于IOPL).
Goz*_*Goz 3
在 x86 和大多数其他现代处理器上,您可以获得原子指令。在另一个线程/处理器可以访问该内存之前保证不会完成执行。
在 Win32 下,您拥有 Interlocked* 函数,可以在受支持的平台上从您那里抽象出这些功能。
在 MIPS 上,很多指令可以有一个 .I 添加到指令末尾以保证互锁。
归档时间:
16 年,4 月 前
查看次数:
8025 次
最近记录:
12 年,12 月 前