操作系统问题~加分~ 10
、某快餐店有A、B两组人员,A组人员负责配餐供B组人员销售,来取快餐的工具有6套,为A、B组人员公用,配餐与销售操作必须使用工具。有一个原料池,装有充足的快餐原料若干,为...
、某快餐店有A、B两组人员,A组人员负责配餐供B组人员销售,来取快餐的工具有6套,为A、B组人员公用,配餐与销售操作必须使用工具。有一个原料池,装有充足的快餐原料若干,为了保证操作卫生,要求A组人员轮流从原料池取原料配餐(不得同时操作),成品柜台里共有10个格子,每个格子只可以存放一份快餐。A组人员往格子中放配好的快餐,B组人员取出来销售,成品柜台每次也只允许一个人操作。试将A组、B组人员视为进程。请用P、V操作描述配餐和销售的正确执行过程。
要求:(1)给出设置的信号量,写明其含义及初值(2)编写程序,用P、V操作实现它们之间的正确并发执行。 展开
要求:(1)给出设置的信号量,写明其含义及初值(2)编写程序,用P、V操作实现它们之间的正确并发执行。 展开
1个回答
展开全部
记不大清具体怎么写答案才好,就写下大致意思吧:
sinal mutexA = 1; // 互斥变量保证A组人员只有一个人从原料池取原料
signal mutexB = 1; // 互斥变量保证B组人员只有一个人从成品柜台取餐
signal mutexC = 6; // 互斥变量保证取餐工具有空余,不至于6套工具7个人用的异常。保证最多6个,初始状态0,都空闲
signal mutexD = 10; // 保证最多十个格子占满,初始状态0,都空着
A进程
当mutexD < 10时才执行,不然会死锁
p(mutexC); // 配餐先取个盘子,不至于配餐到手上
p(mutexA); // 每次取原料前,保证只有一个人取
取原料;
v(mutexA); // 取完了,可以让给下个人取原料了。不释放,就完蛋了
P(mutexD); // 找个格子放
v(mutexC); // 放完了,把取快餐工具放回去
B进程
当mutexD > 0时才执行,不然取空格子
p(mutexC); // 先申请取快餐的工具
p(mutexB); // 再申请去成品柜取餐
v(mutexD); // 找个有东西的格子取餐
v(mutexB); // 离开成品柜
v(mutexC); // 放回取餐工具
里面两个执行条件,忘记该怎么表示了。大致意思如上,答题请修改
sinal mutexA = 1; // 互斥变量保证A组人员只有一个人从原料池取原料
signal mutexB = 1; // 互斥变量保证B组人员只有一个人从成品柜台取餐
signal mutexC = 6; // 互斥变量保证取餐工具有空余,不至于6套工具7个人用的异常。保证最多6个,初始状态0,都空闲
signal mutexD = 10; // 保证最多十个格子占满,初始状态0,都空着
A进程
当mutexD < 10时才执行,不然会死锁
p(mutexC); // 配餐先取个盘子,不至于配餐到手上
p(mutexA); // 每次取原料前,保证只有一个人取
取原料;
v(mutexA); // 取完了,可以让给下个人取原料了。不释放,就完蛋了
P(mutexD); // 找个格子放
v(mutexC); // 放完了,把取快餐工具放回去
B进程
当mutexD > 0时才执行,不然取空格子
p(mutexC); // 先申请取快餐的工具
p(mutexB); // 再申请去成品柜取餐
v(mutexD); // 找个有东西的格子取餐
v(mutexB); // 离开成品柜
v(mutexC); // 放回取餐工具
里面两个执行条件,忘记该怎么表示了。大致意思如上,答题请修改
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
专业语音导览
2024-11-15 广告
2024-11-15 广告
"分区讲解系统是一种在展馆或展厅使用的讲解系统,也被称为团队智慧讲解系统、展厅分区讲解系统、展馆讲解系统、分区解说系统等不同称谓。它适用于讲解员向游客进行团队讲解的情况,讲解员可手持无线讲解发射器进行语音讲解,参观者无需佩戴耳机,也可以听到...
点击进入详情页
本回答由专业语音导览提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询