进程同步问题——卡车装水
问题描述:
有10辆卡车,每车可装20桶水,装满开走,两个工人装水,装满10辆车,使用普通变量和信号量实现进程控制。
问题分析:
1、一辆车装完20桶水后才能进行下一辆车的操作,因此车之间是互斥的。
2、两个工人之间没有互斥关系,可同时装水,但装满后需及时停止装水操作(两个工人不能同时进行对当前已装桶数进行统计),装满后释放当前车辆并对下一车辆进行操作。
伪代码实现:
依据分析结果设置信号量
mutex1 | 卡车信号量 | 每次对一辆车进行操作,初值为1 |
empty | 空位信号量 | 每辆车可装水的数量,初值为0,最大20 |
go | 放行信号量 | (装满后)对当前车辆放行,初值为0 |
mutex2 | 判断信号量 | 对已装的数量进行判断,初值为1 |
卡车类
void car(){while(mutex1){car in; //车进入for(i=1;i<=20;i++)signal(empty); //对每辆车的empty置20wait(go); //未装满水则不能释放car go; //车走signal(mutex1);}
}
工人类(每个工人的操作都一样,只是同时只能由一个工人对in进行判断并释放go信号量)
void worker(){while(1){wait(empty); //该工人进行一次装水操作,empty就-1in++; //装水wait(mutex2); //对已装水的数量进行判断,同时只能有一个工人进行判断if(in>=20){in=0; //若当前车辆已装满,in置0signal(go); //car类中的go信号量被释放,可执行车走的操作signal(mutex2); }
}
主类
int main(){for(i=0;i<10;i++)car(); //实例化10辆车worker1();worker2();
}
进程同步问题——卡车装水相关推荐
- 装水问题(引入普通变量)
///****似乎解法是一个工人,而不是两个工人,需要改进****// 问题描述: 两个搬运工人向卡车中装纯净水,每车最多20箱.卡车装满即开走,需装10辆车.给出简单的同步分析及算法,写明信号量的含 ...
- 10只机器狗拉卡车!井然有序,毫不费力 | 极客头条
整理 | 琥珀 出品 | AI科技大本营(ID:rgznai100) 看来,这家娱乐网友多年的机器人公司终于要开始实现商用化了!最先备受期待的是它的网红机器狗 SpotMini. 今日凌晨,据多家外媒 ...
- 一分钟AI | 特斯拉发布电动卡车,扫地机器人被曝窥探个人隐私
一分钟看这里 1. 特斯拉发布电动卡车,最大续航 800 公里 2. 全球金融AI第一股上市,融360旗下简普科技登陆纽交所 3. ADAS公司清智科技完成A轮1亿元融资,招商局创投领投,中骏资本等跟 ...
- 井下关于风速的规定_【市企融合】金川集团井下“5G+矿运卡车”远程遥控系统科研项目实验成功...
国庆期间,金川集团二矿区"5G+矿运卡车"远程遥控系统科研项目实验获得成功.在二矿区井下1000米运输大巷,一辆32号矿运卡车缓缓驶来,令人称奇的是车上没有驾驶人员,但拐弯.鸣号. ...
- 浅谈进程同步和互斥的概念
简介 进程同步是一个操作系统级别的概念,是在多道程序的环境下,存在着不同的制约关系,为了协调这种互相制约的关系,实现资源共享和进程协作,从而避免进程之间的冲突,引入了进程同步. 临界资源 在操作系统中 ...
- 这家卡车自动驾驶公司图谋借壳上市,Waymo和Cruise的故事讲不下去了?
转载自:新智元 最近在自动驾驶圈被一家名为Aurora(极光)的公司刷了屏:继图森未来(TuSimple)之后,它有可能是第二家成功上市的自动驾驶公司. 自动驾驶界的新兴大鳄 在自动驾驶的圈子里,Au ...
- Waymo CEO:将在卡车领域商用无人驾驶技术
Waymo首席执行官卡辛克(John Krafcik)周四表示,该公司正在探索将其自动驾驶技术应用于卡车运输业.该公司正与行业合作伙伴合作,从迫在眉睫的卡车司机短缺中抓住商机.
- Waymo无人卡车高调重返凤凰城,但货运先机已失
https://www.toutiao.com/a6699651514476003851/ 李根 发自 凹非寺 量子位 报道 | 公众号 QbitAI Waymo无人驾驶卡车,已经展开实际道路测试. ...
- 今年,自动驾驶卡车将在无人驾驶的情况下上路
文章来源:IEEE电气电子工程师 Photo: TuSimple First in Freight: In 2021, San Diego–based startup TuSimple plans t ...
最新文章
- 使用Pygame制作微信打飞机游戏PC版
- LeetCode 961 N-Repeated Element in Size 2N Array --python,java解法
- OpenCV2.4.9 显示鼠标框选区域,其他部分全为零,鼠标创建ROI区域
- 38Exchange 2010升级到Exchange 2013-安装第二台CAS2013
- 豆瓣评分9.4!这部大片你不应该错过,每一秒都是不敢看的残忍!
- PL/SQL Developer 9 注册机
- jenkins+svn+maven+ssh 部署配置详细记录
- 【Leetcode】Python实现字符串转整数 (atoi) - 详细备注,保证小白看懂
- Vue ui 大法哪家强?
- 多重循环、缓冲区管理、数组(day06)
- Flutter实战一Flutter聊天应用(五)
- vscode + SFTP 传输文件到服务器,从服务器下载文件
- Redis下载部署配置运行及修改登录地址、端口和密码
- 社区拼团赛道的突然火爆,究竟是受何因素影响?
- 服务器gpu芯片排行,GPU云服务器排行榜
- 大数据讲课笔记2.2 大数据应用场景
- 抽奖随机滚动_如何在party上用来宾的照片抽奖
- 收集最火的开源项目——PHP 篇
- 百果园app系统开发b2c模式详解
- 【NOIP2006】金明的预算方案