- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
操作系统中P、V操作实现进程同步与互斥
操作系统中P、V操作实现进程同步与互斥
摘要:操作系统是计算机科学与技术的专业基础课程,进程的同步与互斥问题是操作系统中的重要内容。如何正确使用P、V操作实现进程的同步与互斥是防止死锁的重要手段,怎样判断进程是同步还是互斥问题,以及如何正确使用P、V操作防止进程死锁,该文通过具体的实例给出一种通用的解决模式。
关键词:进程同步;进程互斥;信号量;P、V操作
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2012)30-7144-04
操作系统中,可以使用软件和硬件方法解决临界区的问题,虽然它们都可以解决互斥问题,但是存在一定的缺陷。于是计算机科学家们努力寻找其他更有效地方法。荷兰著名的计算机科学家E.W.Dijkstra提出了一个信号量和P、V操作同步机构。其基本原则是在多个相互合作的进程之间使用简单的信号来协调控制。
1 信号量的含义
信号量被定义为含有整型数据项的结构变量,其整型值大于等于零代表可供并发进程使用的资源个数,小于零时其绝对值表示正在等待使用临界资源的进程数。其数据结构表示为:
2 P、V原语的含义
信号量的值可以修改,但只能由P和V操作来访问,对信号量的操作由P、V操作原语来实现。P操作和V操作在执行时是不可中断的过程。
P操作P(s)
表示申请一个资源,将信号量s的整型值减去1,若结果小于0,则将调用P(s)的进程插入等待该资源的阻塞队列。
V操作V(s)
表示释放一个资源,将信号量s的整型值加上1,若结果不大于0,则从该资源的阻塞队列首部唤醒一个进程插入到就绪队列中。
P、V操作原语是一种阻塞等待的同步原语,若进程通过该原语的调用而不允许继续执行时,它将被阻塞或挂起,在此期间就没有机会获得CPU执行,直到它被唤醒为止。故可使得进程在等待进入临界区时,将CPU让给了其他就绪进程执行。而忙等待的临界区管理法,使得进程在等待进入临界区时,也和其他就绪进程一起分享CPU的服务。
3 P、V操作在进程同步中的意义
进程同步包括进程互斥和进程同步两个方面,进程互斥是同步的一种特例。用P、V操作解决进程同步问题时首先要分清哪些是互斥问题(互斥访问临界资源的),哪些是同步问题(具有前后执行顺序要求的)。
在互斥问题中,P操作的意义是申请资源,是否能进入临界区;V操作的意义是退出临界区,从而释放资源;通常只设置一个互斥信号量,且初值为1,代表一次只允许一个进程对临界资源进行访问。在同步问题中,P操作的意义是接受发来的信息、通知,表示可以执行;V操作的意义是发送消息、通知,告知对方。在设置同步信号量时,通常同步信号量的个数与参与同步的进程种类有关,即同步关系涉及几类进程,就有几个同步信号量。同步信号量表示该进程是否可以开始或该进程是否已经结束。
在每个进程中用于实现互斥的P、V操作必须成对出现;用于实现同步的P、V操作也必须成对出现,但可以分别出现在不同的进程中;在某个进程中如果同时存在互斥与同步的操作,则其顺序不能颠倒,必须先执行对同步信号量的P操作,再执行对互斥信号量的P操作,但V操作的顺序没有严格要求。
4 实现P、V操作的具体做法
1)确定进程间的关系以及进程的个数。这一环节非常重要,如果理解不准确,则之后的操作都将是错误的。进程间的关系主要指是进程同步还是进程互斥,它决定了P、V操作在进程中存在的意义。进程的个数主要看题目中需要P、V控制的事件有多少个,则进程个数就是几个。
2)信号量个数的设置,并给信号量赋初值。一般情况下,在进程互斥中,信号量都为一个;在同步中,要根据进程间的同步关系来设置信号量的个数, 有一个也可能是多个。
3)画出进程的工作流程图。流程图时最好反映题意的一种方法,工作流程图越准确,最后的算法就越容易实现。
4)根据流程图使用一门语言来描述进程之间的关系。这步主要是看个人的编程基础,用不同的语言实现都可以,最好是用自己掌握较好的一门语言。
下面就一些典型例子做分析,在分析中理解P、V操作在进程同步中的实际运用:
4.1 用PV原语实现进程的互斥
为了正确地解决一组并行进程对临界资源的竞争使用,可以引入一个互斥信号量,对于互斥使用的资源,其信号量的初值就是系统中这个资源的数量。以哲学家进餐问题为例:
有四位哲学家围着一个圆桌在思考和进餐,每人思考时手中什么都不拿,当需要进餐时,每人需要用刀和叉各一把,餐桌上的布置如图1所示,共有两把刀和两把叉,每把刀或叉供相邻的两个人使用。请用信号量及PV操作说明四位哲学家的同步过程。
1)确定进程的个数及其工作内容。本例子涉及四个进程,每个哲学家为一个进程。因相邻的两个哲学家要竞争刀或叉,刀或叉就成为了临界资源,所以属于互斥关
您可能关注的文档
最近下载
- 《解析几何》教案--吕林根,许子道.pdf
- 美国加州桥梁抗震caltrans seismic design criteria vlysis.pdf VIP
- 2025云南省临沧市市级单位公开遴选(选调)工作71人笔试参考题库附答案解析.docx VIP
- HSE保障措施优化及实施方案研究.docx VIP
- 2025甘肃省公路交通建设集团武仙公路收费运营人员招聘61人笔试模拟试题及答案解析.docx VIP
- 2025年秋新鲁科版英语四年级上册全册课件.pptx
- 颚式破碎机技术参数.docx VIP
- 2024河南资本集团“方舟”第三批招聘41人笔试参考题库附带答案详解.pdf
- 《时尚配饰设计》课件.ppt VIP
- 高边坡专家论证PPT汇报材料(中建).ppt VIP
文档评论(0)