文章目录
- 2.3.3 进程互斥的硬件实现方法
- 2.3.3.1 中断屏蔽方法
- 2.3.3.2 TestAndSet指令
- 2.3.3.3 Swap指令
- 2.3.3.4 小结
2.3.3 进程互斥的硬件实现方法
知识总览
2.3.3.1 中断屏蔽方法
利用开/关中断指令
实现中断屏蔽方法,可以使得某进程开始访问临界区到结束期间不允许被中断,也就是不能发送进程切换,这样的话也就不可能发生两个进程同时访问临界区。
这样的优点虽然简单高效,但是却不适用于多处理机;而且其只适用于操作系统内核进程,不适用于用户进程(因为开/关中断指令只能运行在内核态,这组指令如果能让用户随意使用会很危险)。
2.3.3.2 TestAndSet指令
简称TS指令,也有地方称为TestAndSetLock指令,或TSL指令。TSL指令是用硬件
实现的,执行的过程不能中断,只能一气呵成。以下是C语言描述的逻辑。
逻辑,不是实现过程!本质上还是用硬件实现的。
2.3.3.3 Swap指令
Swap指令在有的地方也被叫做Exchange指令,或简称XCHG指令。Swap指令是用硬件实现的,执行的过程不允许被中断,只能一气呵成。以下使用C语言描述的逻辑。