p,v原语解决和尚挑水问题
和尚挑水问题:寺庙里有多个小、老和尚,一水缸。小和尚打水,老和尚饮水。水缸容积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原语解决和尚挑水问题相关推荐
- 【和尚挑水问题】P\V原语,信号量
1.问题描述 某寺庙,有小和尚.老和尚若干.庙内有一水缸,由小和尚提水入缸,供老和尚饮用.水缸可容纳 10 桶水,每次入水.取水仅为1 桶,不可同时进行.水取自同一井中,水井径窄,每次只能容纳一个水桶 ...
- 用P、V操作解决进程同步问题的解题步骤
蓝颜色是格外注意的 还有读读共享,读写互斥问题. 要背会四个模式,套用模式 例题讲解 1)生产者-消费者问题 一般意义的"生产者-消费者"问题:N个buffer,多个生产者,多个消 ...
- 操作系统实验 - 题目三 P、V原语的模拟实现(消费者问题)
3.1 题目的主要研究内容及预期达到的目标 [设计目的] 理解信号量相关理论:掌握记录型信号量结构:掌握P.V原语实现机制. [课题描述] 本课题针对操作系统中信号量相关理论进行设计,要求编写程序并进 ...
- 和尚挑水故事IT新解
在昨日写<小谈子对象中接口的设计原则>这篇博文的时候,突然想到三个和尚没水喝的故事,想来特有意思.故再次拿出来说明一下. 一个和尚挑水喝,两个和尚抬水喝,三个和尚没水喝.这个寓言故事是大家 ...
- 一个和尚挑水吃,两个和尚抬水吃,三个和尚没水吃
有这样一个故事.说是一天,三个和尚在一座破落的庙里相遇. 甲和尚触景生情,随口说:"这个庙为什么一片荒废凄凉呢?"乙和尚说:"一定是和尚不虔诚,所以诸神不灵." ...
- 和尚挑水安排(回溯问题)
题意:总共7个和尚,编号从1到7,星期的编号也是1到7,在一个星期中每个和尚在固定的某一天或几天挑水,求所有安排方案,使得每个和尚在一个星期中都有且仅有在其中某一天挑水. 举例: 和尚1 在星期2和星 ...
- 操作系统实验 P、V原语应用分析
** P.V原语应用分析 ** 1.实验原理 (1)Windows操作系统中P操作对应的函数是:WaitForSingleObject(),了解此函数的功能: (2)Windows操作系统中V操作对应 ...
- 桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用P、V原语实现爸爸、儿子、女儿三个并发进
桌上有一空盘,允许存放一只水果.爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果.规定当盘空时一次只能放一只水果供吃者取用,请用P.V原语实现爸爸.儿子.女儿三个并发进 ...
- 【操作系统】编程实现如下互斥同步问题:桌上有一空盘,爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。请用P、V原语(wait和signal操作)实现爸爸、儿子、女儿三
题目 编程实现如下互斥同步问题:桌上有一空盘,爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果.请用P.V原语(wait和signal操作)实现爸爸.儿子.女儿三个并发 ...
最新文章
- wx.getLocation 的使用
- 查看删除对象(活动目录快照配置管理系列五)
- SQL优化(二) 快速计算Distinct Count
- 谈谈java并发锁(重入锁、读写锁、公平锁)
- 极致的线上产品设计与终极数据分析工具,两者缺一不可(中)
- Modelarts与无感识别技术生态总结(浅出版)
- powershell 安装mvn_Maven 安装好之后,命令行执行 `mvn -v` 提示“'mvn' 不是内部或外部命令,也不是可运行的程序 或批处理文件。”...
- 数据中心高速需求 推动光通信迈向100Gbps
- 如何确定windows启动类型是bios还是uefi
- Eucalyptus简介
- 2023-2029年中国拼团游行业市场运行态势及发展趋向分析报告
- 认知差距决定我们的人生差距?!
- quadro 2000专业显卡 win7计算机体验指数5.9,quadro显卡天梯图小虫_quadro专业显卡天梯图小虫2020年 - 系统家园...
- 我的运算放大器(四)加法电路
- Pycharm Traceback (most recent call last):
- 58域内路由和域间路由
- 用Websocket聊天完整demo,做笔记用,各位大佬多多指教
- 天轰川 推荐的Javscript大收集 大集锦 收藏
- windows下安装mingw-w64
- python处理通达信数据,加入BOLL通道数据,量化交易