题目:

某寺庙,有小和尚、老和尚若干。庙内有一水缸,由小和尚提水入缸,供老和尚饮用。水缸可容纳10桶水,每次入水、取水仅为1桶,不可同时进行。水取自同一井中,水井径窄,每次只能容纳一个水桶取水。设水桶个数为3个,试用信号量和PV操作给出老和尚和小和尚的活动。

提示:从井中取水并放入水缸是一个连续的动作可以视为一个进程,从缸中取水为另一个进程。

设水井和水缸为临界资源,引入mutex1,mutex2;三个水桶无论从井中取水还是放入

水缸中都一次一个,应该给他们一个信号量count,抢不到水桶的进程只好为等待,水缸满了时,不可以再放水了。设empty控制入水量,水缸空了时,不可取水设full。

伪代码: 

    int n1 = 10; /*水缸容量*/int n2 = 3;  /*水桶数量*/semaphore mutex1 = 1; /*水井互斥信号量*/semaphore mutex2 = 1; /*水缸互斥信号量*/semaphore empty = n1; /*小和尚取水同步信号量*/semaphore full = 0;   /*老和尚饮水同步信号量*/semaphore count = n2; /*水桶数信号量*/void youngMonk(){while (1){P(empty);P(count);P(mutex1);//小和尚从井中取水V(mutex1);p(mutex2);//小和尚向缸中倒水V(mutex2);V(count);V(full);}}void oldMonk(){while (1){P(full);P(count);P(mutex2);//老和尚从缸中取水饮用V(mutex2);V(count);V(empty);}}

操作系统PV操作伪代码(小和尚提水、老和尚饮水问题)相关推荐

  1. 操作系统 | PV操作七大经典问题 生产者消费者 读者写者 哲学家进餐 理发师理发睡觉 和尚打水 吸烟者 吃水果

    一.生产者消费者问题 生产者消费者问题(英语:Producer-consumer problem),也称有限缓冲问题(英语:Bounded-buffer problem),是一个多线程同步问题的经典案 ...

  2. 某寺庙,有小和尚、老和尚若干。有一水缸,由小和尚用水桶从井中提水入缸,老和尚用水桶从缸里取水饮用。水缸可容30桶水,水取自同一井中。水井径窄,每次只能容一个水桶取水。水桶总数为5个。每次入、取缸水仅为

    和尚取水问题 某寺庙,有小和尚.老和尚若干.有一水缸,由小和尚用水桶从井中提水入缸,老和尚用水桶从缸里取水饮用.水缸可容30桶水,水取自同一井中.水井径窄,每次只能容一个水桶取水.水桶总数为5个.每次 ...

  3. 计算机操作系统PV操作

    PV操作 和尚打水问题 某寺庙,有小和尚和老和尚若干,有一个水缸,由小和尚提水入缸供老和尚饮用.水缸可以容纳10桶水,水取自同一口井中,由于水井口窄,每次只能容纳一个水桶取水.水桶总数为3个.每次入水 ...

  4. 操作系统-PV操作-独木桥问题

    操作系统-PV操作-独木桥问题 前言 问题描述 解决思路 伪代码实现 改造题型 解决思路 伪代码实现 总结 前言 在操作系统中,使用pv操作实现进程的同步和互斥是进程管理的重要内容.pv操作不仅是本科 ...

  5. 操作系统-PV操作-理发师问题

    操作系统-PV操作-理发师问题 前言 问题描述 解决思路 伪代码 总结 前言 hello,大家好,使用pv操作来实现进程的同步和互斥是我们本科授课的重点,同时也是研究生入学考试的重点考察题型.今天给大 ...

  6. 小和尚和老和尚取水问题

    一.问题描述 某寺庙有小和尚.老和尚若干.有一水缸,由小和尚用水桶从井中提水入缸,老和尚用水桶从缸里取水饮用.水缸可容10桶水,水取自同一井中.水井径窄,每次只能容一个水桶取水.水桶总数为3个.每次入 ...

  7. 操作系统pv操作学习总结

    PV操作 PV操作与信号量的处理相关,P表示通过的意思,V表示释放的意思. 目录 1 简介 2 详细资料 3 解释 ▪ 信号量的概念 ▪ 典型理解偏差 简介 1962年,狄克斯特拉离开数学中心进入位于 ...

  8. 计算机操作系统pv实验,计算机操作系统PV操作例题.doc

    计算机操作系统PV操作例题 问题1 一个司机与售票员的例子 在公共汽车上,为保证乘客的安全,司机和售票员应协调工作: 停车后才能开门,关车门后才能行车.用PV操作来实现他们之间的协调. S1:是否允许 ...

  9. 操作系统——PV操作

    PV操作概念:操作系统中的一种同步机制,实现对于并发进程中临界区的管理. 并发进程分为两种: ①无交互的并发进程:每个进程是相互独立的,谁也不影响谁,基本不会用到PV操作. ②有交互的并发进程:多个进 ...

最新文章

  1. linux C 内存管理方式之半动态
  2. C++ XML解析之TinyXML篇
  3. C++类的静态成员详解
  4. AFNetworking速成教程
  5. Linux系统管理技术(3)
  6. .NET 正则验证邮箱
  7. Cocos2D:塔防游戏制作之旅(九)
  8. scratch编程体感游戏
  9. 【LaTeX入门】02、CJK环境讲解
  10. 探花交友10-数据统计与内容审核
  11. 免费、好用、强大的开源笔记软件综合评测
  12. 00 后程序员就要为“你”加班?呵呵
  13. astrolog php,Astrolog星象学软件使用指南(2)
  14. vi新建一个shell脚本_如何在Vim中为Shell脚本创建自定义页眉模板
  15. win7旗舰版出现COM Surrogate已停止工作
  16. idea如何import_导入项目
  17. NB-IoT技术优势及其与GPS定位的综合应用
  18. 使用CSS 中伪元素:before 和:after 做简单的动画(以小米商城非首页 logo 动画为例)
  19. 苹果 Fitness+ Apple Watch“去散步”即将推出
  20. Vue SSR 服务端渲染原理(简易版本)

热门文章

  1. 毛志坚:交通设计在应对城市交通问题中的重要作用
  2. 推箱子游戏设计与实现(Java+swing+JAWT)
  3. Rockland 艾美捷Foxp3抗体说明书
  4. LOL作者或者C+会的来这里
  5. 专访轮子哥:我在微软「造轮子」,一不小心成了知乎大V
  6. 俄罗斯的摆渡:yandex
  7. 23亿美元!吉利德联手Nurix开发蛋白质降解新疗法
  8. kt-connect简单使用
  9. linux中sqlite3数据库的基础命令和使用方法
  10. 使用Office Deployment Tool离线安装Office 365