和尚挑水问题:寺庙里有多个小、老和尚,一水缸。小和尚打水,老和尚饮水。水缸容积10桶水,水取自同一水井,水井和水缸每次都只容放入一个桶,桶总数3个。试用P、V操作描述和尚取水、饮水的互斥与同步过程。


#include<stdio.h>
#include<stdlib.h>
typedef int seamphore;
seamphore jar=1;//水缸
seamphore well=1;//水井
seamphore bucket=1;//水桶
seamphore volume=1;//剩余容量
seamphore leave=1;//剩余水量drinkwater()
{//喝水
}
getWater()
{//取水}
putWater()
{//存水
}
seamwait(int a)
{//P原语
}
seamsignal(int a)
{//V原语
}
oldMonk()//老和尚
{while(true){   seamwait(leave);seamwait(bucket);//取水printf("老和尚取水\n");seamwait(jar);drinkwater();seamsignal(jar);//取水结束seamsignal(bucket);seamsignal(volume);}return 0;
}
youngMonk()//老和尚
{while(true){   seamwait(volume);seamwait(bucket);//水井取水printf("小和尚取水\n");seamwait(well);getWater();seamsignal(well);//取水结束//水缸存水printf("小和尚存水\n");seamwait(jar);putWater();seamsignal(jar);//存水结束seamsignal(bucket);seamsignal(leave);}return 0;
}
int main()
{oldMonk();youngMonk();return 0;
}


转载于:https://www.cnblogs.com/zhuhengjie/p/5966892.html

p,v原语解决和尚挑水问题相关推荐

  1. 【和尚挑水问题】P\V原语,信号量

    1.问题描述 某寺庙,有小和尚.老和尚若干.庙内有一水缸,由小和尚提水入缸,供老和尚饮用.水缸可容纳 10 桶水,每次入水.取水仅为1 桶,不可同时进行.水取自同一井中,水井径窄,每次只能容纳一个水桶 ...

  2. 用P、V操作解决进程同步问题的解题步骤

    蓝颜色是格外注意的 还有读读共享,读写互斥问题. 要背会四个模式,套用模式 例题讲解 1)生产者-消费者问题 一般意义的"生产者-消费者"问题:N个buffer,多个生产者,多个消 ...

  3. 操作系统实验 - 题目三 P、V原语的模拟实现(消费者问题)

    3.1 题目的主要研究内容及预期达到的目标 [设计目的] 理解信号量相关理论:掌握记录型信号量结构:掌握P.V原语实现机制. [课题描述] 本课题针对操作系统中信号量相关理论进行设计,要求编写程序并进 ...

  4. 和尚挑水故事IT新解

    在昨日写<小谈子对象中接口的设计原则>这篇博文的时候,突然想到三个和尚没水喝的故事,想来特有意思.故再次拿出来说明一下. 一个和尚挑水喝,两个和尚抬水喝,三个和尚没水喝.这个寓言故事是大家 ...

  5. 一个和尚挑水吃,两个和尚抬水吃,三个和尚没水吃

    有这样一个故事.说是一天,三个和尚在一座破落的庙里相遇. 甲和尚触景生情,随口说:"这个庙为什么一片荒废凄凉呢?"乙和尚说:"一定是和尚不虔诚,所以诸神不灵." ...

  6. 和尚挑水安排(回溯问题)

    题意:总共7个和尚,编号从1到7,星期的编号也是1到7,在一个星期中每个和尚在固定的某一天或几天挑水,求所有安排方案,使得每个和尚在一个星期中都有且仅有在其中某一天挑水. 举例: 和尚1 在星期2和星 ...

  7. 操作系统实验 P、V原语应用分析

    ** P.V原语应用分析 ** 1.实验原理 (1)Windows操作系统中P操作对应的函数是:WaitForSingleObject(),了解此函数的功能: (2)Windows操作系统中V操作对应 ...

  8. 桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进

    桌上有一空盘,允许存放一只水果.爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果.规定当盘空时一次只能放一只水果供吃者取用,请用P.V原语实现爸爸.儿子.女儿三个并发进 ...

  9. 【操作系统】编程实现如下互斥同步问题:桌上有一空盘,爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。请用P、V原语(wait和signal操作)实现爸爸、儿子、女儿三

    题目 编程实现如下互斥同步问题:桌上有一空盘,爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果.请用P.V原语(wait和signal操作)实现爸爸.儿子.女儿三个并发 ...

最新文章

  1. wx.getLocation 的使用
  2. 查看删除对象(活动目录快照配置管理系列五)
  3. SQL优化(二) 快速计算Distinct Count
  4. 谈谈java并发锁(重入锁、读写锁、公平锁)
  5. 极致的线上产品设计与终极数据分析工具,两者缺一不可(中)
  6. Modelarts与无感识别技术生态总结(浅出版)
  7. powershell 安装mvn_Maven 安装好之后,命令行执行 `mvn -v` 提示“'mvn' 不是内部或外部命令,也不是可运行的程序 或批处理文件。”...
  8. 数据中心高速需求 推动光通信迈向100Gbps
  9. 如何确定windows启动类型是bios还是uefi
  10. Eucalyptus简介
  11. 2023-2029年中国拼团游行业市场运行态势及发展趋向分析报告
  12. 认知差距决定我们的人生差距?!
  13. quadro 2000专业显卡 win7计算机体验指数5.9,quadro显卡天梯图小虫_quadro专业显卡天梯图小虫2020年 - 系统家园...
  14. 我的运算放大器(四)加法电路
  15. Pycharm Traceback (most recent call last):
  16. 58域内路由和域间路由
  17. 用Websocket聊天完整demo,做笔记用,各位大佬多多指教
  18. 天轰川 推荐的Javscript大收集 大集锦 收藏
  19. windows下安装mingw-w64
  20. python处理通达信数据,加入BOLL通道数据,量化交易

热门文章

  1. linux minicom usb串口
  2. GB2312、GBK与UTF-8的区别
  3. Spark 分布式调试工具
  4. 修改PHP session 默认时间方法
  5. 在VC中实现模拟键盘,输入内容并显示在ListBox中。
  6. 如何在IAR工程中创建和使用模板
  7. Linux bash中I/O重定向及管道
  8. 业界资讯:Alternativa 3D 7 免费
  9. 《Asp.Net 2.0 揭秘》读书笔记(十八)
  10. MapReduce运行原理和过程