- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
进程的PV操作详解进程的PV操作详解
进程的PV操作
在操作系统中,P、V操作是进程管理中的难点。这是1968年荷兰人Dijkstra给出的一种解决并发进程间互斥和同步关系的通用方法。
1. P、V操作的意义
定义了信号量及其上的P操作和V操作,来实现并发进程间的同步和互斥,甚至可以用来管理资源的分配。P、V操作因交换的信息量少,属于进程的低级通信。
2. 什么是信号量?
信号量(semaphore)是由一个值和一个指针构成的数据结构。值为整型变量,表示信息量的值;指针指向进程控制块(PCB)队列的队头,表示等待该信号量的下一个进程。如下图所示。
信号量的一般结构及PCB队列
(1;
② 如果S(0,则该进程继续执行;否则该进程状态置为阻塞状态,进程PCB排入信号量PCB队列末尾,放弃CPU,等待V操作的执行。
V(S):
① 将信号量S的值加1,即S=S+1;
② 如果S(0,释放信号量队列中第一个PCB所对应的进程,将进程状态由阻塞态改为就绪态。执行V操作的进程继续执行。
一般来说,信号量S(0时,S表示可用资源的数量。执行一次P操作意味着请求分配一个单位资源,因此S的值减1;当S0时,表示已经没有可用资源,请求者必须等待别的进程释放该类资源,它才能运行下去。而执行一个V操作意味着释放一个单位资源,因此S的值加1;若S(0,表示有某些进程正在等待该资源,因此要唤醒一个阻塞状态的进程,使之成为就绪状态。
4. 利用信号量和P、V操作实现进程互斥
一般地,n个进程利用信号量和P、V操作实现进程互斥的一般模型如下:
进程P1 进程P2 …… 进程Pn
…… …… ……
P(S); P(S); P(S);
临界区; 临界区; 临界区;
V(S); V(S); V(S);
…… …… …… ……
其中S是互斥信号量,初值为1。
使用P、V操作实现进程互斥时应该注意的问题是:
(1)每个程序中,用户实现互斥的P、V操作必须成对出现,先做P操作,进临界区,后做V操作,出临界区。若有多个分支,要认真检查P、V操作的成对性。
(2)P、V操作应分别紧靠临界区的头尾部,临界区的代码应尽可能短,不能有死循环。
(3)互斥信号量的初值一般为1。
5. 利用信号量和P、V操作实现进程同步
P、V操作是典型的进程同步机制之一。用一个信号量与一个消息联系起来,当信号量的值为0时,表示期望的消息尚未产生;当信号量的值为非0时,表示期望的消息已经存在。用P、V操作实现进程同步时,调用P操作测试消息是否到达,调用V操作来发送消息。
使用P、V操作实现进程同步时应该注意的问题是:
(1)分析进程间的制约关系,确定信号量种类。在保持进程间有正确的同步关系情况下,哪个进程应先执行,哪些进程后执行,彼此间通过什么信号量进行协调,从而明确要设置哪些信号量。
(2)信号量的初值与相应资源的数量有关,也与P、V操作在程序代码中出现的位置有关。
(3)同一信号量的P、V操作要成对出现,但它们分别在不同的进程代码中。
6. P、V操作举例
【例1】生产者-消费者问题
在多道程序环境下,进程同步是一个十分重要又令人感兴趣的问题,而生产者-消费者问题是其中一个有代表性的进程同步问题。下面我们给出了各种情况下的生产者-消费者问题,深入地分析和透彻地理解这个例子,对于全面解决操作系统内的同步、互斥问题将有很大帮助。
(1)一个生产者,一个消费者,公用一个缓冲区(Buffer)。
定义两个同步信号量:
empty——表示缓冲区是否为空,初值为1。
full——表示缓冲区中是否为满,初值为0。
生产者进程
while(TRUE){
生产一个产品;
P(empty);
产品送往Buffer;
V(full);
}
(2)一个生产者,一个消费者,公用n个环形缓冲区。
定义两个同步信号量:
empty——表示缓冲区是否为空,初值为n。
full——表示缓冲区中是否为满,初值为0。
设缓冲区的编号为1~n(1,定义两个指针in和out,分别是生产者进程和消费者进程使用的指
您可能关注的文档
- 近代经济结构变动近代经济结构变动.doc
- 近代物理实验 2近代物理实验 2.doc
- 近代玉雕大师大全近代玉雕大师大全.doc
- 近几年中招试题分析近几年中招试题分析.doc
- 近几年中考相似典题近几年中考相似典题.doc
- 近年改革高考试题近年改革高考试题.doc
- 近年文言文阅读近年文言文阅读.doc
- 近摄镜常见问题近摄镜常见问题.doc
- 近景考试重点总结近景考试重点总结.doc
- 近期中期远期目标近期中期远期目标.doc
- 2023年江苏省镇江市润州区中考生物二模试卷+答案解析.pdf
- 2023年江苏省徐州市邳州市运河中学中考生物二模试卷+答案解析.pdf
- 2023年江苏省苏州市吴中区中考冲刺数学模拟预测卷+答案解析.pdf
- 2023年江苏省南通市崇川区田家炳中学中考数学四模试卷+答案解析.pdf
- 2023年江西省吉安市中考物理模拟试卷(一)+答案解析.pdf
- 2023年江苏省泰州市海陵区九年级(下)中考三模数学试卷+答案解析.pdf
- 2023年江苏省苏州市高新二中中考数学二模试卷+答案解析.pdf
- 2023年江苏省南通市九年级数学中考复习模拟卷+答案解析.pdf
- 2023年江苏省南通市海安市九年级数学模拟卷+答案解析.pdf
- 2023年江苏省泰州市靖江外国语学校中考数学一调试卷+答案解析.pdf
最近下载
- 2025年高考数学模拟卷(四)含答案及解析.pdf VIP
- 急性呼吸循环衰竭的早期识别与救治(共88张PPT)【88页】.pptx VIP
- 2023年河南省普通高校对口招生考试电子类专业课试卷.pdf VIP
- 院感及院感管理的基本概念.ppt VIP
- 维生素d3与骨骼健康课件.ppt
- 重点项目信息管理平台建设方案.docx
- 2025年高考数学模拟卷(三)含答案及解析.pdf VIP
- 河师大焦争鸣张万琴版线性代数答案解析.pdf VIP
- Unit4NaturalDisastersListeningandSpeaking课件高中英语人教版22.pptx
- 接受人生的荒谬是强大还是懦弱的表现?辩论赛 正方辩词一辩、二辩、三辩、四辩发言稿.docx
文档评论(0)