2.1.2操作系统-进程管理:进程的同步与互斥、信号量与PV操作、PV操作与互斥模型、PV操作与同步模型

2.1.2操作系统-进程管理:进程的同步与互斥、信号量与PV操作、PV操作与互斥模型、PV操作与同步模型

进程的同步与互斥

进程是动态的,有一些动态变迁的过程,进程在计算机中是可以同时存在多个的,而单核CPU同个时刻只能处理一个进程,而现在的CPU是多核的,可以同时处理多个进程,在多个进程的处理过程当中,进程与进程会存在不同的关系,可以分为两个模型,如下:

互斥:互斥模型,进程与进程之间相互抵制,相互排斥。类似于如千军万马过独木桥,很多个进程都想要使用独木桥,但是独木桥一个时间只能让一个进程通过,全局上来看,所有进程都用到了这个独木桥,但是某一个时刻、某一个片段进程只能有一个通过,独木桥在这里就是临界资源,看起来是共享的,但是用起来是相互排斥的,只能让一个人先用,由于临界资源的限制,资源上限值的这些进程,他们之间的关系称为间接制约关系,我们称这些进程之间相互存在互斥关系。

同步:同步模型,进程与进程相互存在一些依赖关系。进程与进程可能不是同时开始的,也可能同时开始,但是速度有差异,在一定情况停下等待,在最终完成任务的时候,必须两个进程都完成,才可以继续走下去。这种由于进程与进程之间速度上的差异,我么称为直接制约关系。

  • 临界资源:各进程之间需要互斥方式对其进行共享的资源,如打印机、磁带机、缓冲区(缓冲区在使用过程中,一般同一时刻,只会让一个进程使用,如果多个进程使用可能会产生一些数据上的冲突)等
  • 临界区:每个进程中访问临界资源的那段代码称为临界区
  • 信号量:是一种特殊的变量,是与P操作和V操作结合起来用的,是一种全局变量,不同进程当中,可以控制同一个信号量;信号量是可以拿来记录相应的资源数量的

PV操作

PV是操作系统的原语,所谓的原语就是具有原子性,P操作和V操作每个里面都包含多个小步骤,原子性就是这些步骤要么都做,要么都不做。无论是P操作和V操作都会结合信号量来操作。

注意:P是荷兰语的Passeren,V是荷兰语的Verhoog;S<0的时候,还可以表示盘对的进程数。
请添加图片描述
如上图:
P操作会包含两个操作

  1. S=S-1,针对-1的过程,首先会对信号量-1。-1是怎么理解?信号量是可以拿来记录相应的资源数量的,针对一个资源数量如果有一个仓库,资源的数量是一个固定的取值,那么初始情况的数量就叫做初始值,也叫做是信号量的初值来源,对这个信号量的数量-1,可以理解为在仓库记账本上对资源进行-1记录,这个动作其实就是一个占据资源、锁定资源的一个过程。可以对第一个动作理解为折申请并占据资源,这个申请并占据的过程可以理解为锁定并加锁的过程。P(S)表示P操作的初始值。
  2. 判断S<0,只判断小于,没有等于。<0判断的其实就是判断资源是否够用,检查资源是否充足,当信号量S<0的时候,说明申请的资源并没有实际占用到,因为已经是负数了,我们就认为是资源不足,因此需要排队等着领资源,所以会进入阻塞队列排队等待,直到领取到资源,然后通知后续的进程执行下一步操作的过程。

V操作会包含两个操作

  1. S=S+1,会对信号量先执行+1的操作,+1是怎么理解?资源+1,说明资源用完释放掉了,表示用完资源释放的过程。
  2. S<=0,这个判断是当性能好靓<0的时候,即资源不足需要继续排队,S同时可以表示等待的个数,如S=-1,表示当前有一个进程正在排队,直到领取到资源,然后通知后续的进程执行下一步操作的过程。

请添加图片描述

从阻塞队列唤醒一个线程,它不会直接进入运行态,而是进入就绪状态,所以一定会执行完当前进程再去执行阻塞被唤醒的进程。

PV是成对出现的,只加锁不解锁,会形成死锁,只解锁,不加锁,也没有实际的意义。

PV操作与互斥模型

互斥信号量S的初始值为1

  1. P(s)=P(1)
  2. S=S=1=0
  3. 0<0?,满足可以继续执行V操作
  4. 这个时候第二个进程也来执行P操作,则
  5. P(s)=P(0)
  6. S=S=1=-1
  7. -1<0?,不能继续执行了,进程2会阻塞,需要等待资源释放,-1表示当前有一个进程在等待资源
  8. 当第一个执行V(S)操作
  9. V(S)=-1
  10. S=S+1=0
  11. S<=0,满足,可以唤醒阻塞队列中的一个进程,使其进入就绪状态,等待当前进程执行完成后被调用

信号量的初值=资源数量
信号量最小值(也就是排队的进程数量)=信号量的初值-进程数=资源数量-进程数

如5个资源,8个进程访问
则信号量初始值P(S)=5,最小值=5-8=-3,则信号量取值范围【-3,5】。

PV操作与同步模型

与互斥模型相比,同步模型要复杂很多,会涉及到多个不同进程之间的协作关系,比较典型的有生产者消费者问题。
请添加图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值