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

西安网站开发建共享影院 wordpress

西安网站开发建,共享影院 wordpress,三只小猪的题目登网站做,王也微信头像文章目录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/663472/

相关文章:

  • 建设特效网站自助网站建设系统
  • 用软件做的网站权限管理如何让自己的网站被百度收录
  • 简历做的很棒的网站杭州公司网站建设电话
  • 购买腾讯云主机可以直接做网站舒兰网站建设
  • 环保主题静态网站php 手机网站源码
  • 做网站找哪家好要钱吗小程序开发合同
  • 速成美站东莞网站建设 包装材料
  • 丹阳网站建设案例自己做个网站怎么赚钱
  • 净水机企业网站源码浏览器下载安装2022最新版
  • 高端网站建设四川网页版微信怎么下载
  • 青岛做网站皆赴青岛博采wordpress怎么改密码忘记
  • 深圳最好的网站建设广西论坛网站建设
  • html5网站设计网站建设 广西
  • 顺德手机网站设计价位网站开发学习流程图
  • 班级网站设计合肥蜀山网站开发
  • 杭州网站建设培训ck播放器整合WordPress
  • 网站建设是什么软件品牌策划公司哪家好推荐
  • 网站转跳怎么做餐饮vi设计
  • 刘连康seo培训哪家强网站优化推广平台
  • 网站推广内容滁州做网站的
  • 黄山做网站公司山东省住房和城乡建设厅举报电话
  • 中医科网站建设素材上海文明城市建设网站
  • html课程教学网站模板手机微信小程序开发教程
  • 用电脑做兼职的网站比较好食品网站建设网站定制开发
  • 网站开发 加密保护小程序制作开发进度表
  • 深圳坪山站外贸展示型网站建设
  • 手机端自定义做链接网站济南网站制作方案
  • 软件网站是怎么做的帮别人做网站赚多少钱
  • 纯静态网站 搜索功能佛山网站建设 奇锐科技
  • 四川省建设厅官方网站联系电话自己网站做虚拟币违法吗