4.1.3、操作系统-概述及进程管理-信号量PV操作

  • 互斥:某资源(即临界资源)在同一时间内只能由一个任务单独使用,使用时需要加锁,使用完后解锁才能被其他任务使用;如打印机。

  • 同步:多个任务可以并发执行,只不过有速度上的差异,在一定情况下停下等待,不存在资源是否单独或共享的问题;如自行车和汽车。

  • 临界资源:各进程间需要以互斥方式对其进行访问的资源。

  • 临界区:指进程中对临界资源实施操作的那段程序。本质是一段程序代码。

  • 互斥信号量:对临界资源采用互斥访问,使用互斥信号量后其他进程无法访问,初值为1。

  • 同步信号量:对共享资源的访问控制,初值一般是共享资源的数量。

信号量

很重要,基本上年年都考

  • P操作:申请资源,S=S-1,若S>=0,则执行P操作的进程继续执行;若S<0,则置该进程为阻塞状态(因为无可用资源),并将其插入阻塞队列。
    S>=0 —> 资源;S < 0 —> 阻塞任务数

  • V操作:释放资源,S=S+1,若S>0,代表此时资源有空余,没有阻塞的进程,则该进程继续执行;若S<=0,代表此时线程在被阻塞,所以需要从阻塞状态唤醒一个进程,并将其插入就绪都队列(此时因为缺少资源被P操作阻塞的进程可以继续执行),然后执行V操作的进程继续。

在这里插入图片描述

生产者和消费者

经典问题:生产者和消费者的问题
三个信号量:互斥信号量S0(仓库独立使用权),同步信号量S1(仓库空闲位置),同步信号量S2(仓库商品个数)。

生产者流程消费者流程
生产一个商品S
P(S0)
P(S1)
将商品放入仓库中
V(S2)
V(S0)
P(S0)
P(S2)
取出一个商品
V(S1)
V(S0)

先P后V,申请和释放数是对称的P(S0) V(S0),P(S1) V(S1)

练习题

【(2016年】进程P1、P2、P3、P4和P5的前趋图如下图所示:
在这里插入图片描述
若用PV操作控制进程P1、P2、P3、P3、P4和P5并发执行的过程,则需要设置5个信号S1、S2、S3、S4和S5,且信号量S1~S5的初值都等于零。下图中a和b处应分别填(26);c和d处应分别填写(27);,e和f玫处应分别填写(28)。
26、
A.V(S1)P(S2)和V(S3)
B.P(S1)V(S2)和V(S3)
C.V(S1)V(S2)和V(S3)
D.P(S1)P(S2)和V(S3)
27、
A.P(S2)和P(S4)
B.P(S2)和V(S4)
C.V(s2)和P(s4)
D.V(S2)和V(S4)
28、
A.P(S4)和V(S4)V(S5)
B.V(S5)和P(S4)P(S5)
C.V(S3)和v(s4)v(s5)
D.P(S3)和P(S4)V(P5)

答案C B B
任务开始前都是P操作,任务结束都是V操作。所以a b d e都是V操作,c f是P操作
先P后V,P和V是对称的可以推导出以下图。首先a b是V(S1)V(S2),但是P1->P2是S1还是S2,不知道,可以先假设S1;然后右图P2:V(S1),由于P和V是对称的,所以P1->P2就是S1
在这里插入图片描述

【2019年】进程P1、P2、P3、P4、P5和P6的前趋图如下所示,若用PV操作控制这6个进程的同步与互斥的程序如下,那么程序中的空①和空②处应分别为();空③和空④处应分别为();空⑤和空⑥处应分别()。
在这里插入图片描述
A.V(S1)V(S2)和P(S2)
B.P(S1)P(S2)和V(S2)
C.V(S1)V(S2)和P(S1)
D.P(S1)P(S2)和V(S1)

A.V(S3)和V(S5)V(S6)
B.P(S3)和V(S5)V(S6)
C.V(S3)和P(S5)P(S6)
D.P(S3)和P(S5)P(S6)

A.P(S6)和P(S7)V(S8)
B.V(S6)和V(S7)V(S8)
C.P(S6)和P(S7)P(S8)
D.V(S7)和P(S7)P(S8)

答案C B D
开始是P,结束是V,所以①肯定是V操作,②是P操作。看答案知道①是V(S1)V(S2)但是P1->P2,P1->P3哪个是S1,哪个是S2不知道,所以②也不确定;接着看P2:V(S3)V(S4)可以知道P2->P3,P2->P4一个是S3,一个是S4;接着看P3:③是P,④是V,所以答案是B。P3:P(S2)P(S3),可以确定P1->P3是S2,P2->P3是S3。。。。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

yoyo勰

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

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

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

打赏作者

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

抵扣说明:

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

余额充值