1.进程互斥的软件实现方法
1.单标志法
- 算法思想:两个进程在访问完临界区后会把使用临界区的权限转让给另一个进程,也就是说每个进程进入临界区的权限只能被另一个进程赋予
- 局限性
2.双标志先检查法
- 算法思想:设置一个布尔数组flag[],数组中各个元素用来标记各进程想进入临界区的意愿,比如"flag[0]=true"意味着0号进程P0现在想要进入临界区,每个进程在临界区之前先检查有没有别的进程想进入临界区,如果没有,则把自身对应的标志flag[i]设为true,之后开始访问临界区。
3.双标志后检查法
- 算法思想:双标志先检查法的改版,前一个算法的问题先“检查”后“上锁”,但是这两个操作又无法一气呵成,因此导致两个进程同时进入临界区的问题,因此,人们又想到了先“上锁”后”检查“的方式,来避免上述问题
4.PeterSon算法
- 算法思想:如果两个进程都想争着进入临界区,那可以让进程尝试“孔融让梨”,主动让对方使用临界区