image.png

进程互斥的软件实现方法

image.png

单标志法

背后的逻辑:表达「谦让」

image.png

双标志先检查法

用一个 flag 数组检查他人是否有意愿,并表达自己的意愿

image.png

两个进程并发执行的情况下,可能两个进程会同时进入临界区:检查和上锁的操作不是同时执行的,需要硬件保证两个操作同时执行

双标志后检查法

image.png

这种情况下可能产生的问题是:两个进程都进不了临界区,产生饥饿现象

Peterson 算法

同时主动争取和主动谦让,但是未遵循让权等待原则

image.png

进程互斥的硬件实现方法

中断屏蔽

用来实现原语,在执行临界区的代码范围内不允许进程切换

缺点:不适合多处理机程序,另外处理器的进程仍然能并行运行;且只有操作系统内核进程才能执行开关中断指令