信号量机制的应用(PV操作)

概述

    什么是信号量机制,  
    信号量机制其实就是用户进程可以通过使用  
    操作系统提供的一对原语来对信号量进行操作,  
    从而很方便的实现了进程互斥和进程同步。

信号量

    信号量就是一个变量(可以为一个整数也可以是记录型变量),  
    假设其为s,当s>=0时表示某资源的可利用数,  
    若s<0时,则其绝对值表示阻塞队列中等待该资源的进程数

临界资源

   临界资源是各个进程间需要互斥方式对其进行共享的资源

临界区

   每个进程中访问临界资源的那段代码称为临界区

PV操作

P操作:申请资源,使得s=s-1,当s大于0时,说明可以继续进行P操作,若s小于0,则说明该进程当前无资源可用,进入阻塞状态
V操作:释放资源,使得s=s+1,当s大于0时,则当前仍有资源,可以将阻塞的状态的进程唤醒,若小于零,则可以继续进行V操作
阻塞队列

PV操作的应用

第一题

  1. 若信号量的初值为2,当前值为负3,则表示有( )个等待进 程。
    A. 1 B. 2 C. 3 D. 5
    答案:c,因为由题可知,s=-3,一共有三个进程在阻塞队列中,所以选c

第二题

在这里插入图片描述
答案选c,2名发货员,1名审核员,S1初值为2, S2初值为1=>说明S1指的是发货员资 源个数,S2指的是审核员资源个数。 根据题干,顾客提货需要消耗发货 员,因此a是P(S1),提货完要释放 发货员,因此b是V(S1)。 之后审核员要检验,因此检验前后 是PV审核员资源,因此c是P(S2), d是V(S2),选C

第三题

在这里插入图片描述
答案为A B C
首先P1可以直接执行,根据前驱图P1执行完要释放一个资源给 P2,因此a一定是个V操作。P2在执行前获取到来自P1释放的资 源,因此b肯定是个P操作,并且这个P跟a的V是同一个信号量, 因此选A
并且我们根据选项知道了P1给P2释放的信号量是S1, 同理可推c和d,P2执行完分别给P4P3释放了资源,因此c肯定 是两个V操作,并且P4和P3在执行前分别获得了这两个信号量。d和e:P3执行前用了来自P2的一个资源,因此d是P操作;P3结 束后要释放资源给P5,因此P3执行后的e,e是V操作,一个P操 作一个V操作因此第二空选B。
f和g:同前分析,P4执行前拿了来自P2的那个资源因此是P(S3), 已知P4执行后释放资源的信号量S5,释放的这个资源是给P5的, P5拿了分别从P3和P4来的资源,因此P5执行前是两个P操作。 选C

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小白程序员在线记录

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

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

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

打赏作者

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

抵扣说明:

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

余额充值