问题描述:

有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();
}

进程同步问题——卡车装水相关推荐

  1. 装水问题(引入普通变量)

    ///****似乎解法是一个工人,而不是两个工人,需要改进****// 问题描述: 两个搬运工人向卡车中装纯净水,每车最多20箱.卡车装满即开走,需装10辆车.给出简单的同步分析及算法,写明信号量的含 ...

  2. 10只机器狗拉卡车!井然有序,毫不费力 | 极客头条

    整理 | 琥珀 出品 | AI科技大本营(ID:rgznai100) 看来,这家娱乐网友多年的机器人公司终于要开始实现商用化了!最先备受期待的是它的网红机器狗 SpotMini. 今日凌晨,据多家外媒 ...

  3. 一分钟AI | 特斯拉发布电动卡车,扫地机器人被曝窥探个人隐私

    一分钟看这里 1. 特斯拉发布电动卡车,最大续航 800 公里 2. 全球金融AI第一股上市,融360旗下简普科技登陆纽交所 3. ADAS公司清智科技完成A轮1亿元融资,招商局创投领投,中骏资本等跟 ...

  4. 井下关于风速的规定_【市企融合】金川集团井下“5G+矿运卡车”远程遥控系统科研项目实验成功...

    国庆期间,金川集团二矿区"5G+矿运卡车"远程遥控系统科研项目实验获得成功.在二矿区井下1000米运输大巷,一辆32号矿运卡车缓缓驶来,令人称奇的是车上没有驾驶人员,但拐弯.鸣号. ...

  5. 浅谈进程同步和互斥的概念

    简介 进程同步是一个操作系统级别的概念,是在多道程序的环境下,存在着不同的制约关系,为了协调这种互相制约的关系,实现资源共享和进程协作,从而避免进程之间的冲突,引入了进程同步. 临界资源 在操作系统中 ...

  6. 这家卡车自动驾驶公司图谋借壳上市,Waymo和Cruise的故事讲不下去了?

    转载自:新智元 最近在自动驾驶圈被一家名为Aurora(极光)的公司刷了屏:继图森未来(TuSimple)之后,它有可能是第二家成功上市的自动驾驶公司. 自动驾驶界的新兴大鳄 在自动驾驶的圈子里,Au ...

  7. Waymo CEO:将在卡车领域商用无人驾驶技术

    Waymo首席执行官卡辛克(John Krafcik)周四表示,该公司正在探索将其自动驾驶技术应用于卡车运输业.该公司正与行业合作伙伴合作,从迫在眉睫的卡车司机短缺中抓住商机.

  8. Waymo无人卡车高调重返凤凰城,但货运先机已失

    https://www.toutiao.com/a6699651514476003851/ 李根 发自 凹非寺 量子位 报道 | 公众号 QbitAI Waymo无人驾驶卡车,已经展开实际道路测试. ...

  9. 今年,自动驾驶卡车将在无人驾驶的情况下上路

    文章来源:IEEE电气电子工程师 Photo: TuSimple First in Freight: In 2021, San Diego–based startup TuSimple plans t ...

最新文章

  1. 使用Pygame制作微信打飞机游戏PC版
  2. LeetCode 961 N-Repeated Element in Size 2N Array --python,java解法
  3. OpenCV2.4.9 显示鼠标框选区域,其他部分全为零,鼠标创建ROI区域
  4. 38Exchange 2010升级到Exchange 2013-安装第二台CAS2013
  5. 豆瓣评分9.4!这部大片你不应该错过,每一秒都是不敢看的残忍!
  6. PL/SQL Developer 9 注册机
  7. jenkins+svn+maven+ssh 部署配置详细记录
  8. 【Leetcode】Python实现字符串转整数 (atoi) - 详细备注,保证小白看懂
  9. Vue ui 大法哪家强?
  10. 多重循环、缓冲区管理、数组(day06)
  11. Flutter实战一Flutter聊天应用(五)
  12. vscode + SFTP 传输文件到服务器,从服务器下载文件
  13. Redis下载部署配置运行及修改登录地址、端口和密码
  14. 社区拼团赛道的突然火爆,究竟是受何因素影响?
  15. 服务器gpu芯片排行,GPU云服务器排行榜
  16. 大数据讲课笔记2.2 大数据应用场景
  17. 抽奖随机滚动_如何在party上用来宾的照片抽奖
  18. 收集最火的开源项目——PHP 篇
  19. 百果园app系统开发b2c模式详解
  20. 【NOIP2006】金明的预算方案

热门文章

  1. # EVM Overview
  2. was控制台管理密码重置
  3. 使用AccessibilityService来备份 WeChat 好友信息
  4. linux gvim 配置文件,Gvim一些基本配置
  5. Python网页爬虫练习:requests库Beautiful爬取bilibili网页信息
  6. 一个方便 LeetCode 复习的脚本
  7. 基于Springboot的旅游公司网站毕业设计源码110929
  8. WPF 动画之路径动画DoubleAnimationUsingPath
  9. [一文一命令]which命令详解
  10. 智能家居控制面板:让AI技术为您的家庭带来更多智能化服务