操作系统基础——09 同步互斥


背景


独立进程&并发进程

在这里插入图片描述



进程并发执行的好处

在这里插入图片描述



进程并发执行出现异常的例子

在这里插入图片描述
再来看看程序实际运行的情况
在这里插入图片描述
由于在程序运行的时候进行了上下文切换,进程一保存的Reg1是100,所以最后进程一next_pid是101。

进程二也是一样,获取到的next_pid也是101。


原子操作

为了解决上面可能出现的异常问题,我们需要原子操作。
在这里插入图片描述



临界区

进程中访问临界资源的一段需要互斥执行的代码。



访问规则

  • 空闲则入
    没有进程在临界区时,任何进程可进入。

  • 忙则等待
    有进程在临界区时,其它进程不能进入。

  • 有限等待
    等待进入临界区的进程,不能无限期等待。

  • 让权等待(可选)
    不能进入临界区的进程,应释放CPU。



实现方法

  • 禁用中断
  • 软件方法
  • 更高级的抽象方法

这里主要讲解一下禁用中断,另外两种可以自行去扩展了解。


禁用中断
  • 没有中断,就没有了上下文切换,因此没有并发。

  • 进入临界区
    随即禁用中断

  • 离开临界区
    随即开启中断

缺点:

  1. 禁用中断后,进程无法被停止

  2. 临界区可能很长

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值