进程间的同步与互斥

在了解同步与互斥机制之前,我们先得知道进程间的资源访问冲突类型。

1.进程间资源访问冲突的类型

 主要有两种:
      1.共享变量的访问冲突 
      2.访问顺序的冲突
 解决第一种冲突类型的方式:进程间的互斥 
 解决第二种冲突类型的方式:进程间的同步 

实例理解:

一条食品生产线上,假设A、B、C共同完成一个食品的包装任务,A负责将食品放入盒子中,B、C负责将食品打包。
首先分析,必须是A先装食品,然后B、C再进行打包,A与B、C就形成了同步关系。
再假设打包需要用到刀子,而车间就只有一把刀子,那么这时候B、C就形成了互斥关系。

2.同步

    在多任务的操作系统环境下,多个进程会同时运行,并且一些进程可能会存在一定的关联。
    多个进程可能会为了完成同一个任务相互协作,这就形成了进程间的同步关系。


比如说进程B 需要从缓冲区读取进程A 产生的信息,当缓冲区为空时,进程B读不到信息,被阻塞。 当进程A产生信息放入缓冲区时,进程B才会被唤醒。
这里写图片描述

同步经典案例:
这里写图片描述
这里写图片描述

3.互斥

    在不同进程间,为了争夺有限的系统资源(硬件或软件资源)会进入竞争状态,这就是进程间的互斥关系。

比如进程B需要访问打印机,此时进程打印机已经把访问权限给了B,那么进程B没有资源可访问,被阻塞。 直到进程A不访问打印机时,把访问权限交还给打印机,进程B才能访问。
这里写图片描述
同步与互斥经典案例:
这里写图片描述
同步与互斥的存在根源:
——临界资源

临界资源:在同一时刻只允许有限个(通常只有一个)进程可以访问(读)或修改(写)的资源,
通常包括硬件资源(处理器、内存、存储器、以及其他一些外围设备等)
和软件资源(共享代码段、共享结构和变量)

访问临界资源的代码————临界区      临界区本身也被称为临界资源
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值