中断屏蔽方法
就是在一个进程开始访问临界区到结束访问的时间段内都不允许中断,就是不允许进程切换。
优点: 简单高效
缺点: 不适用于多处理机;只适用于操作系统的内核进程,不适用于用户进程(因为开关中断指令只能运行在内核态,如果能让用户随意使用会很危险)
TestAndSet 指令或者TestAndSetLock(TSL指令)
用硬件实现,执行的过程中只能一气呵成,不能中断。这个指令大致做的就是给临界区加锁(无论之前是否加锁),然后返回加锁前的加锁状态。
优点: 实现简单, 适用于多处理机环境
缺点: 不满足让权等待的原则
![在这里插入图片描述](https://img-blog.csdnimg.cn/1c5d3ad0980f4cd3a0fcbc889da8a9db.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6JKZ5aWHwrdEwrfot6_po57Ct-WuneS6rg==,size_20,color_FFFFFF,t_70,g_se,x_16)
Swap指令
也是一气呵成, 逻辑上和TSL也没有多少区别
![在这里插入图片描述](https://img-blog.csdnimg.cn/34f491f402744e1c9e36ce134b28ec67.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA6JKZ5aWHwrdEwrfot6_po57Ct-WuneS6rg==,size_20,color_FFFFFF,t_70,g_se,x_16)