计算机操作系统P V操作(精品·公开课件).pptVIP

计算机操作系统P V操作(精品·公开课件).ppt

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
论文答辩 北航计算机系硕士论文答辩 信号量机制 P、V操作例题 Var Semaphore mutex,Lmutex,Rmutex=1,0,0; int Lcount=0, Rcount=0; Main() { cobegin Left(); Right(); Coend } Left() { while (true) {P(Lmutex); if Lcount==0 P(mutex); Lcount=Lcount+1; V(Lmutex) 过桥; p(Lmutex); if Lcount==0 V(mutex); Lcount=Lcount-1; V(Lmutex) } } 桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果和香蕉,儿子专等吃盘中的香蕉,女儿专等吃盘中的苹果。 Var dish,apple,banana:Semaphore:=1,0,0; Main() { cobegin Father(); son();daugher(); Coend } Father() { while (true) {p(dish); if 放的是苹果 v(apple); else V(banana)} } son() { while (true) { p(banana);从盘子取香蕉;v(dish); 吃香蕉;} } daugher() { while (true) { p(apple);从盘子取苹果;v(dish); 吃苹果;} } 桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,妈妈向盘中放香蕉,儿子专等吃盘中的香蕉,女儿专等吃盘中的苹果。 Var dish,apple,banana:Semaphore:=1,0,0; Main() { cobegin Father();mother();son();daugher(); Coend } Father() { while (true) {p(dish); 将苹果放入盘子;v(apple);} } Mother() { while (true) { p(dish);将香蕉放入盘子;v(banana);} } son() { while (true) { p(banana);从盘子取香蕉;v(dish); 吃香蕉;} } daugher() { while (true) { p(apple);从盘子取苹果;v(dish); 吃苹果;} } 某寺庙,有小、老和尚若干,有一水缸,有小和尚提水入缸供老和尚饮用。水缸可容10 桶水,水取自同一井中。水井径窄,每次只能容一个桶取水。水桶总数为3个。每次入、取缸水仅为1桶,且不可同时进行。给出取水、入水的算法描述 Semaphore mutex1=1;mutex2=1; empty=10;full=0;count=3; Main() {cobegin get(); use(); coend } Get() //小和尚入水 {while (true) { p(empty) ; p(count) ; P(mutex1); 从井中取水; v(mutex1) ; P(mutex2) ; 将水倒入缸中; v (mutex2) ; v (count) ; v (full) ; } } Use() //老和尚取水 { while(true) {p (full) ; p(count) ; P(mutex2) ; 从缸中取水; v (mutex2) ; v(empty) ; v (count) ; } } * * 信号量机制 信号量机制 wait和signal又称为P、V操作,P、V原语, P、V操作的一般描述如下: P操作: (1)S减1; (2)若s减1后仍大于或等于零,则进程继续执行(可进入临界区); (3)若s减1后小于零,则该进程被阻塞在与该信号相对应的队列中,然后转进程调度。 P、V操作 入 口 S = S - 1 S ≥ 0 返 回 调用进程入等待队列 转进程调度 否 是 入 口 S = S + 1 S ≤ 0 返 回 唤醒等待队列中的一个进程 返回或转进程调度 是 否 V操作: (1)S加1; (2)若相加结果大于零,进

文档评论(0)

秦圈圈 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档