当前位置: 首页 > news >正文

宁波网站建设工作福州关键词搜索排名

宁波网站建设工作,福州关键词搜索排名,wordpress蚂蚁主题,影视logo设计制作器文章目录1 问题描述2 问题分析3 代码实现4 分析总结1 问题描述 桌子上有一只盘子#xff0c;每次只能向其中放入一个水果。爸爸专向盘子中放苹果#xff0c;妈妈专向盘子中放橘子#xff0c;儿子专等着吃盘子中的橘子#xff0c;女儿专等着吃盘子中的苹果。只有盘子空时每次只能向其中放入一个水果。爸爸专向盘子中放苹果妈妈专向盘子中放橘子儿子专等着吃盘子中的橘子女儿专等着吃盘子中的苹果。只有盘子空时爸爸或妈妈才可向盘子中放一个水果。仅当盘子中有自己需要的水果时儿子或女儿可以从盘子中取出水果。 2 问题分析 关系分析。找出题目中描述的各个进程分析它们之间的同步、互斥关系。 多生产者-多消费者问题关系分析如下 互斥关系 对缓冲区盘子的访问要互斥地进行 同步关系一前一后 父亲将苹果放入盘子后女儿才能取苹果母亲将橘子放入盘子后儿子才能取橘子只有盘子为空时父亲或母亲才能放入水果 注意“盘子为空”这个事件可以由儿子或女儿触发事件发生后才允许父亲或母亲放水果 整理思路。根据各进程的操作流程确定P、V操作的大致顺序。 由以上的同步、互斥关系分析将多生产者-多消费者问题描绘出图形 设置信号量。设置需要的信号量并根据题目条件确定信号量初值。 互斥信号量初值一般为 1同步信号量的初始值要看对应资源的初始值是多少 本问题中信号量设置如下 semaphore mutex 1; //实现互斥访问盘子缓冲区semaphore apple 0; //盘子中有几个苹果 semaphore orange 0; //盘子中有几个橘子semaphore plate 1; //盘子中还可以放多少个水果模型实现 dad先准备一个苹果放苹果之前先判断盘子里是否为空P一下盘子检查盘子中还可以放多少个水果然后再将苹果放入进去V一下苹果数量1 mom先准备一个橘子放橘子之前先判断盘子里是否为空P一下盘子检查盘子中还可以放多少个水果然后再将橘子放入进去V一下橘子数量1 daughter拿苹果之前先判断盘子里有没有苹果P一下苹果若没有苹果自己被阻塞然后告诉父母盘子为空了V一下盘子 son拿橘子之前先判断盘子里有没有橘子P一下橘子若没有橘子自己被阻塞然后告诉父母盘子为空了V一下盘子 以下实现了所有进程之间的同步关系 还需要实现各个进程对盘子缓冲区的互斥访问 就是所有进程对盘子进行PV操作即加锁和解锁的过程 3 代码实现 semaphore mutex 1; //实现互斥访问盘子缓冲区semaphore apple 0; //盘子中有几个苹果 semaphore orange 0; //盘子中有几个橘子semaphore plate 1; //盘子中还可以放多少个水果dad (){while(1){准备一个苹果;P(plate);P(mutex);向盘子中放苹果;V(mutex);V(apple); //允许女儿进程取苹果} } mom (){while(1){准备一个橘子;P(plate);P(mutex);向盘子中放橘子;V(mutex);V(orange); //允许儿子进程取橘子} } daughter (){while(1){P(apple);P(mutex);从盘子中取出苹果;V(mutex);V(plate); //允许父母进程进程向盘子中取放水果吃苹果;} } son (){while(1){P(orange);P(mutex);从盘子中取出橘子;V(mutex);V(plate); //允许父母进程进程向盘子中取放水果吃橘子;} }4 分析总结 问题可不可以不用互斥信号量 结论即使不设置专门的互斥变量mutex也不会出现多个进程同时访问盘子的现象 原因在于本题中的缓冲区大小为1在任何时刻apple、orange、plate三个同步信号量中最多只有一个是1。因此在任何时刻 最多只有一个进程的P操作不会被阻塞并顺利地进入临界区… 若将缓冲区设置为2会发生什么现象 父亲P(plate)可以访问盘子→母亲P(plate)可以访问盘子→父亲在往盘子里放苹果同时母亲也可以往盘子里放橘子。于是就出现了两个进程同时访问缓冲区的情况有可能导致两个进程写入缓冲区的数据相互覆盖的情况。 因此如果缓冲区大小大于1就必须专门设置一个互斥信号量mutex来保证互斥访问缓冲区。 总结在生产者-消费者问题中如果缓冲区大小为1那么有可能不需要设置互斥信号量就可以实现 互斥访问缓冲区的功能。当然这不是绝对的要具体问题具体分析。 建议在考试中如果来不及仔细分析可以加上互斥信号量保证各进程一定会互斥地访问缓冲区。 但需要注意的是实现互斥的P操作一定要在实现同步的P操作之后否则可能引起“死锁”。 理解理清复杂的同步关系 在分析同步问题一前一后问题的时候不能从单个进程行为的角度来分析要把“一前一后”发生的事看做是两种“事件”的前后关系。 比如如果从单个进程行为的角度来考虑的话我们会有以下结论 如果盘子里装有苹果那么一定要女儿取走苹果后父亲或母亲才能再放入水果如果盘子里装有橘子那么一定要儿子取走橘子后父亲或母亲才能再放入水果这么看是否就意味着要设置四个同步信号量分别实现这四个“一前一后”的关系了 正确的分析方法应该从“事件”的角度来考虑 我们可以把上述四对“进程行为的前后关系”抽象为 一对“事件的前后关系” 盘子变空事件→放入水果事件。“盘子变空事件”既可由儿子引发也可由女儿引发“放水果事件” 既可能是父亲执行也可能是母亲执行。这样的话就可以用一个同步信号量解决问题了
http://www.zqtcl.cn/news/546948/

相关文章:

  • 怎么办个人网站网络管理系统中故障管理的目标是
  • 想做网站的客户在哪找下载网站系统源码
  • 网站建设是固定资产还是列费用soho做网站
  • 学校建设评建工作网站应用中心软件
  • 网站建设公司如何拓宽业务跨境进口网站怎么做
  • 邢台企业建站速卖通网站怎样做店面的二维码
  • 网上竞价采购网站建设wordpress添加发布视频
  • 隐形眼镜网站开发的经济效益微企点自助建站系统
  • 延庆网站建设优化seo中山百度seo排名公司
  • 做灯箱的网站做一个app需要多少成本
  • 江苏建设厅网站石家庄建设信息网
  • 各类专业网站建设企业建立网站需要
  • 多合一可拖曳修改优化网站建设品牌运营和品牌推广
  • 广州网站建设seo推广产品网站建设
  • 网站建设套餐电话无锡公司网站制作
  • 网站建设计划表聊城正规网站建设公司电话
  • 美食网站设计的基本思路大网站开发语言
  • 个人网站模板打包下载最近新闻热点国家大事
  • flash做网站步骤中国网评中国网评
  • 网站添加备案号比较好的网站建设公司
  • 旅游电子商务网站建设目的广告设计与制作主修课程
  • 网站标题写什么作用记事本做网站如何添加图片
  • 海口建站模板厂家下载什么网站做吃的
  • 网站建设的指导书动效网站建设
  • 万州做网站的公司wordpress练习
  • 网站域名dnsgoogle推广教程
  • 网站建设报价方案doc网站建设seo视频教程
  • 北京免费建站网络营销怎么做查询网站后台
  • 深圳外贸网站推广用html制作个人博客
  • 建设银行网站最近打不开吗wordpress c