操作系统——信号量机制(PV操作)
PV操作
学习PV时,不要一头钻到代码里,要注意理解信号量背后的含义,一个信号量对应一种资源,信号量其实就是一个变量(可以是一个整数,也可以是更复杂的记录型变量),可以用一个信号量来表示系统中某种资源的数量。
P就是wait操作,等待资源,V就是++操作,释放资源
- 用户进程可以通过使用操作系统提供的一对原语来对信号量进行操作,从而很方便的实现了进程互斥、进程同步。
- 原语就是一种特殊的程序段,其执行只能一气呵成,不可被中断。
- 一对原语: wait(S)原语和signal(S)原语,可以把原语理解为我们自己写的函数,函数名分别为wait和 signal,括号里的信号量S其实就是函数调用时传入的一个参数
- wait、 signal原语常简称为P、Ⅴ操作,因此,做题的时候常把Wait(S)、signal(S)两个操作分别写为 P(S)、V(S)。
- 信号量的值=这种资源的剩余数量(信号量的值如果小于0,说明此时有进程在等待这种资源)
- P(S)——申请一个资源S,如果资源不够就阻塞等待
- V(S)——释放一个资源S,如果有进程在等待该资源,则唤醒一个进程
1.实现互斥
2.实现同步
3.总结
4.例题
1.
解析
首先我们要明白S1、S2、S3的含义,S1就是盘子里的资源情况,起始一个水果,为1;S2为儿子所拥有资源情况(橘子),初始他没有拿到水果,故初始时S2=0;S3为女儿的拥有资源情况(苹果)。
①由于题目S1为1,所以这一空先请求资源,让孩子们吃水果,所以P(S1);
②、③橘子让儿子吃,也就是给儿子一个资源,所以V(S2),否则给女儿V(S3);
④儿子进程中,要申请拿橘子,也就是P(S2);
⑤吃完橘子后,需要释放所占用盘子里的资源,也就是V(S1);
⑥⑦同④⑤
2.
解析
3.
解析
首先我们要明白S1,S2的意义,可以看到初始值S1=2,说明S1代表发货员这个资源,起初有两个发货员,S2初始值为1,说明其可作为审核员这个资源。
a:顾客想要进仓库,要申请发货员这个资源,也就是P(S1);(如果S1>0说明有发货员,可以进去,否则说明没有空闲的发货员,需要等待)。
b:进程i这个人提完货,需要释放自己所占用的资源(发货员),所以V(S1);
c:提完货需要检验,申请审核员这个资源,就是P(S2);
d:检验完后,释放自己占有的资源(审核员),也就是V(S2);
4.
解析
同样的我们要去理解每个信号量的含义,seats:表示座位这个资源,mutex表示取号机这个资源,customer表示等待被叫的顾客这个资源;由题目的初始值分别为10、1、0更加能确认我们信号量的含义。
(1):在顾客进程,首先我们要申请座位这个资源:P(seats);
(2):由(2)的下面的“从取号机取号”可得(2)为取号的操作,所以我们要申请取号机这个资源:P(mutex);
(3):我们取外号,需要释放所占用的取号机这个资源,所以V(mutex);
(4):我们需要等待叫号,给营业员发送请求,也就是给他加个顾客服务,V(customer);
(5):营业员进程中,在(5)的下面是叫号,说明营业员去申请顾客这个资源,所以P(customer);
5.
解析
6.
解析
操作系统——信号量机制(PV操作)相关推荐
- 【操作系统·考研】信号量机制/PV操作
在操作系统引入进程后,一方面,系统中的多道程序可以并发执行,不仅有效改善资源利用率,而且显著提高系统的吞吐量.另一方面,如果不对多个进程的运行进行妥善管理,必然会因为这些进程对系统资源的无序争夺给系统 ...
- 【系统架构设计师】第一章:操作系统(1.2.2) 信号量与pv操作
本篇帖子继续上篇.有兴趣可以点击链接进行查看以前写过的文章. [系统架构设计师]第一章:操作系统(1.2.2) 参考教材: <系统架构设计师考试全程指导(第二版)> <系统架构设计师 ...
- 操作系统复习——信号量与PV操作
信号量与PV操作 问题的提出 TS或swap指令管理临界区,采用忙式轮询,效率低 关开中断管理临界区,不便交给用户程序使用 信号量的构思 一种可动态定义的软件资源:信号量 核心数据结构:等待进程队列 ...
- 操作系统中的P-V操作(转)
信号量是最早出现的用来解决进程同步与互斥问题的机制(也可实现进程通信),包括一个称为信号量的变量及对它进行的两个原语操作.信号量为一个整数,我们设这个信号量为:sem.很显然,我们规定在sem大于等于 ...
- 转 信号量与PV操作
在计算机操作系统中,PV操作是进程管理中的难点. 首先应弄清PV操作的含义:PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下: P(S):①将信号量 ...
- 【操作系统-进程】PV操作——生产者消费者问题
文章目录 生产者消费者问题的万能方法步骤 Step 1. 有几类进程 Step 2. 用中文描述动作 Step 3. 添加 PV 操作,用中文描述里面的操作 Step 4. 检查是否出现死锁 Step ...
- 小和尚挑水(信号量和PV操作)
<--------个人网站传送门-------> 某寺庙,有小和尚.老和尚若干.庙内有一水缸,由小和尚提水入缸,供老和尚饮用. 水缸可容纳 30 桶水,每次入水.取水仅为1 桶,不可 ...
- 用户信号量及其PV操作处理实际问题
P187-43 Cemaphore empty=1;橘子精=0;糖=0:水=0; Process product(){ While(true){ P(empty); 产生一个随机数s; If(s==0 ...
- 系统架构设计师考试知识点整理-3:信号量与PV操作
出现场景 进程之间会出现互斥和同步两种关系.为了处理这两种情况,提出信号量和PV操作. 1.信号量:是一种特殊的变量,变现形式是一个整型S和一个队列. 2.P操作:S=S-1,若S<0,进程暂停 ...
- 简单理解操作系统中的PV操作
可以这样理解: 临界区门前有棵树 用来挂红灯 进程想进CPU的门 先得上树取下盏灯(调用一次P) 取下一个去敲门(S=S-1) 如果树上没有灯取(S<=0) 树说暂时欠你一盏灯(S为负时) 进程 ...
最新文章
- PAT甲级1079 Total Sales of Supply Chain:[C++题解] 树、结点到根结点的距离、树形dp、记忆化搜索
- 关于longlong与位运算
- 1spring注解:@Configuration,@Bean,@ComponentScan(),@Scope
- 各大浏览器CSS Hack收集
- C语言课后习题(52)
- N1刷音乐服务器系统,NAS也要发烧-Melco N1A音乐服务器
- html代码格式化nodejs,使用Node编写的Sublime代码格式化工具插件(HTML/CSS/JS)
- 简单类型视图状态应用
- OpenCV自带的CamShift算法解读
- java爬虫基础知识,Java网络爬虫基础知识
- 搭建VC2010 开发环境,创建《C语言实现俄罗斯方块游戏》教程
- KendoGrid的使用
- Excel2016 折线图
- 您的Android版本不兼容,android – “你的设备与此版本不兼容”
- 在OEL6.5平台安装Oracle11g 数据库
- [AISTATS21]Towards Flexible Device Participation in Federated Learning阅读笔记
- 英语的计算机软件如何拼写,软的英文单词
- 【魔方攻略】SQ1魔方教程(原创)
- 架构-Android Studio利用 sourceSet独立出UI资源
- 小区人脸识别门禁系统云平台需求分析文档