进程互斥的实现方式

1.进程互斥的软件实现方法

image-20230416225247057

1.单标志法

  • 算法思想:两个进程在访问完临界区后会把使用临界区的权限转让给另一个进程,也就是说每个进程进入临界区的权限只能被另一个进程赋予

image-20230416222013172

  • 局限性

image-20230416222137937

2.双标志先检查法

  • 算法思想:设置一个布尔数组flag[],数组中各个元素用来标记各进程想进入临界区的意愿,比如"flag[0]=true"意味着0号进程P0现在想要进入临界区,每个进程在临界区之前先检查有没有别的进程想进入临界区,如果没有,则把自身对应的标志flag[i]设为true,之后开始访问临界区。

image-20230416223824977

3.双标志后检查法

  • 算法思想:双标志先检查法的改版,前一个算法的问题先“检查”后“上锁”,但是这两个操作又无法一气呵成,因此导致两个进程同时进入临界区的问题,因此,人们又想到了先“上锁”后”检查“的方式,来避免上述问题

image-20230416224240682

4.PeterSon算法

  • 算法思想:如果两个进程都想争着进入临界区,那可以让进程尝试“孔融让梨”,主动让对方使用临界区

image-20230416225338324

2.进程互斥的硬件实现方法

image-20230416231952219

1.中断屏蔽方法

image-20230416230423210

2.TestAndSet指令

image-20230416231719947

3.Swap指令

image-20230416231923260

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值