首页 > 系统相关 >操作系统综合题之“用记录型信号量机制的wait操作和signal操作写出三个进程的同步代码(水果进框问题-代码补充)”

操作系统综合题之“用记录型信号量机制的wait操作和signal操作写出三个进程的同步代码(水果进框问题-代码补充)”

时间:2024-03-22 15:46:09浏览次数:26  
标签:货架 代码 综合题 存放 e2 e1 signal wait

1.问题:假设一个水果赛选系统由三个进程A、B、C组成。进程A每次取一个水果,之后存放在货架F上,F的容量为每次只能存放一个水果。若货架上存放的是苹果则让进程B取出,并存放到苹果箱中;若货架上存放的是菠萝则让进程C取出后,将其存放到菠萝框中

(1)列出所需的信号量并初始化

(2)请用记录型信号量机制的wait操作和signal操作写出三个进程的同步代码

2.答案

答:

(1)var e,e1,e2:semaphore;

e.value = 1;

e1.value = 0 ;

e2.value = 0;

(2)

A:

Begin

  Repeat

    wait(e);

    去一个水果,存放在货架F上;

    signal(e1) or signal(e2);

  Until false;

End

--------------------------------------------------------

B:

Begin

  Repeat

    wait(e1);

    从货架上取出苹果,并存放到苹果箱中;

    signal(e);

  Until false;

End

---------------------------------------------------------

C:

Begin

  Repeat

    wait(e2);

    从货架上取出菠萝,并存放到菠萝箱中;

    signal(e);

  Unitl false;

End

标签:货架,代码,综合题,存放,e2,e1,signal,wait
From: https://www.cnblogs.com/saoge/p/18089617

相关文章

  • RecursiveCharacterTextSplitter和CharacterTextSplitter代码随读
    直接说结论:优先使用RecursiveCharacterTextSplitter,输入一个separatorlist。优先划分大的符号放到前面,比如句号,分号,划分小块的放到后面。 如果想让separator不生效,就放一个原文中不会出现的一个符号,如果separator为空的话,会有一个默认值self._separators=separatorsor["......
  • 操作系统综合题之“按要求是个进程协调完成任务,补充完整下列程序,将编号①~⑩处空缺的
    1.问题:假设某系统有四个进程。input1和input2进程负责从不同设备读取数据,分别表示为data1和data2,存放在缓冲区Buffer中,output1和output2进程负责从Buffer中分别获取data1和data2。Buffer中每次只能存放一个数据。varempty,full1,full2:semaphore;empty.value=1;①_______;②______......
  • 代码随想录算法训练营第五十四天 | 115.不同的子序列,392.判断子序列
    392.判断子序列 已解答简单 相关标签相关企业 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。字符串的一个子序列是原始字符串删除一些(也可以不删除)字符而不改变剩余字符相对位置形成的新字符串。(例如,"ace"是"abcde"的一个子序列,而"aec"不......
  • .net core 实现微信支付-小程序支付(服务端代码)
    前言前段时间研究了下微信支付-小程序支付的功能。但微信支付文档中关于.netC#的语言的sdk没有,只有javago和php版本的,当然社区也有很多已经集成好的微信支付.netcoresdk,但他们的的又都太臃肿了(我只需要个微信支付即可),集成度也特别深,用起来还得先学习下他们的文档,拿来主义固......
  • 主流开发语言及开发环境介绍及代码实例
    主流开发语言是指在软件开发中广泛使用的编程语言,常见的主流开发语言包括Java、Python、C++、C#、JavaScript等。Java:开发环境:Java开发工具包(JDK)、集成开发环境(IDE)如Eclipse、IntelliJIDEA代码实例:publicclassHelloWorld{publicstaticvoidmain(String[]args)......
  • 百度曲线轨迹验证码识别代码
    百度出了如图所示的验证码,需要拖动滑块,与如图所示的曲线轨迹进行重合。经过不断研究,终于解决了这个问题。我把识别代码分享给大家。下面是使用selenium进行验证的,这样可以看到轨迹滑动的过程,如果需要使用js逆向的大神,可以自行研究,谢谢。运行下面代码会直接进入验证码页面,可......
  • LDA主题词提取 完整实战代码 详细代码数据
     importpandasaspdfromgensim.modelsimportLdaModelfromgensim.corporaimportDictionaryfromwordcloudimportWordCloudimportmatplotlibimportmatplotlib.pyplotaspltmatplotlib.rcParams['font.sans-serif']=['SimHei']matpl......
  • 忘记gitlab代码仓库登录密码,如何找回?
    一、密码要求必须是管理员或者自管理的Gitlab实例密码长度限制:Minimum:8charactersMaximum:128characters避免使用弱密码:例如gitlab、人名 二、密码找回方式2.1使用UI【适用普通账号】使用root账号,登录后,进入到管理中心。 搜索到用户后,点击编辑按钮 编辑态......
  • 毕业设计3283基于微信的选修课考勤签到小程序的设计与实现【源代码+文档+调试+讲解视
    摘要本文旨在设计一个基于微信的选修课考勤签到小程序,实现服务器端、教师模块和学生模块的功能需求。通过详细的功能需求分析、数据库设计、界面设计以及测试和优化,本文将为该小程序的开发提供全面的指导。开发技术微信小程序;JSP技术;JAVA语言;MYSQL数据库微信小程序微信......
  • 代码随想录算法训练营第十七天| 110. 平衡二叉树 257. 二叉树的所有路径 404. 左叶
    110.平衡二叉树https://leetcode.cn/problems/balanced-binary-tree/description/publicbooleanisBalanced(TreeNoderoot){intbalance=balance(root);returnbalance==-1?false:true;}publicintbalance(TreeNodenode){i......