OS学习笔记-17(清华大学慕课)进程的同步和互斥

进程的同步和互斥

背景

  • 多个进程一起执行有很多好处,但执行时容易产生资源共享的问题

在这里插入图片描述
进程的交互

  • 互斥(一个进程占用某资源,则其他进程不能使用该资源)
  • 死锁(多个进程占用各自部分资源,形成循环等待)
  • 饥饿(一些进程轮流占用一个资源,导致一个进程一直无法得到该资源执行)

同步和互斥

  • 同步亦称直接制约关系,异步亦称简介制约关系
  • 同步例子:输入程序A通过单缓冲向B发送数据。缓冲区为空时B阻塞,缓冲区满时A阻塞
  • 异步例子:当一个进程访问临界区时另一个进程需要等待,等它退出之后才能访问

临界区

  • 许多物理设备都属于临界资源,还有许多变量和数据等被若干进程共享,也属于临界资源
  • 访问临界资源的那段代码称为临界区
  • 访问临界资源,依次包括进入区,临界区,退出区,剩余区

在这里插入图片描述
实现进程互斥访问临界区的方法

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

方法一:禁用中断
在这里插入图片描述

  • 禁用中断方法的缺点

在这里插入图片描述
基于软件的同步方法

  • 两个进程间通过共享变量实现(比较麻烦)
    在这里插入图片描述

  • 注意while是个死循环,条件不满足时会不断等待

在这里插入图片描述

  • 方法一缺点:如果另一个进程未进入临界区,则该进程也无法进入临界区

在这里插入图片描述

  • 方法二缺点:有可能同时进入临界区

在这里插入图片描述

  • 方法三缺点:可能两个都进入不了

Peterson算法

  • 后写的满足条件,会循环等待,进不去,先写的进入

在这里插入图片描述
在这里插入图片描述
Dekkers
在这里插入图片描述

  • 容易扩展到多线程

N线程实现方法
在这里插入图片描述
高级抽象的同步方法
在这里插入图片描述

  • ?

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小怪兽会微笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值