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

初创企业网站建设流程网站免费建站app

初创企业网站建设流程,网站免费建站app,qq官方网页版登录,做公司网站需目录 参考文献 问题 解法与证明 易读版本 参考文献 Dijkstra于1965年发表文章Solution of a Problem in Concurrent Programming Control,引出并发系统下的互斥(mutual exclusion)问题,自此开辟了分布式计算领域Dijkstra在文中给出了基于共享存储原子…

目录

参考文献

问题

解法与证明

易读版本


  • 参考文献

  • Dijkstra于1965年发表文章Solution of a Problem in Concurrent Programming Control,引出并发系统下的互斥(mutual exclusion)问题,自此开辟了分布式计算领域
  • Dijkstra在文中给出了基于共享存储原子性访问的解决方案只有十多行代码,但阅读起来较难以理解
  • 在查阅若干资料后,总结了一种较为直观的解释方法
  • 问题

  • 考虑N个节点(进程),每个都在运行一个无限循环的程序
  • 每轮循环当中都存在一个临界区(critical section)
  • 我们需要设计算法控制多个计算机中,同时只有一台可以进入其临界区,并需要满足下列条件:
    • 1-所有的节点是对称(symmetrical)的,即我们不能引入类似于“1号节点优先于2号节点”的静态优先级配置
    • 2-各个节点的运行速度可能不同,同一个节点在不同时刻的运行速度也可能不同
    • 3-任意节点在临界区外停止运行,不应引起系统的死锁
    • 4-如果多个节点想要访问临界区,必须在有限时间内决策出哪个节点优先访问
  • 各个节点之间可以通过共享存储(common store)通信,共享存储提供以字(word)为单位的原子性读写

  • 当今现在,在基于共享内存通信的单机多进程上,我们可以很方便的使用基于TAS(Test&Set)或CAS(Copy&Swap)实现的互斥锁mutex来实现临界区互斥访问
  • 然而,在只有对内存单元原子读写的条件下,如何完成互斥访问呢?
  • Dijkstra给出了他的解法
  • 解法与证明

  • 在共享存储上,Dijkstra使用了两个长度为N的布尔数组,和一个整数:

  • 其中,k 满足 1⩽k⩽N,b[i] 和 c[i] 只被节点 i 修改,且初始值为true
  • 对于第 i 个节点(1⩽i⩽N),执行下面的代码:

  • Dijkstra原文中给出的证明集中论证两点:
    • 第一,所有节点互斥访问临界区
    • 第二,不会出现系统死锁
    • 建议大家可以先结合代码看下原文中证明
  • 易读版本

  • 在此,为了便于理解,对原代码做了如下修改:
    • 修改为c语言版本
    • 将数组和节点下标修改为通用的 0,1,…,N−1
    • 将数组 b 改名为 want_to_enter_critical_section(希望进入临界区),数组 c 改名为 in_critical_section(在临界区)
    • 将 b 和 c 数组的初始值改为 false ,并翻转代码中所有的布尔值,即 false 改为 true,true 改为 false

  • 证明:
    • 1. mutual exclusion(互斥)
      • 如果程序想运行到critical section,则必须运行通过 Li4 中的代码且不返回 Li1
      • 即,除了自身的 in_critical_section[i] 为 true 外,其余所有节点的 in_critical_section[i] 均为 false
    • 2. non-blocking(非阻塞)
      • 如果第 k 个节点不在 Li0~Li4 的循环中,则 want_to_enter_critical_section 为 false
      • 所有在循环中的节点会在 Li1 判定 (k != i),其中的一个或多个节点会执行到 Li3 ,其中某个节点将设定 k = i
      • 此后 want_to_enter_critical_section[k] 为 true,其他节点无法再更改 k ,直至离开critical section后将 want_to_enter_critical_section[k] 为 false
      • 在 k 被确定后,第k个节点会不断尝试 Li4 中的代码,直至其余所有的 in_critical_section[i] 全部为 false
      • 这种情况必然会发生,不论临界区中的节点离开临界区,还是临界区外的发现 Li1: k != i,都会执行 in_critical_section[i] = false;
    • 证毕
  • 并发情况
    • 这里Dijstra原文中没有明确指出的是,考虑并发情况下两个节点 x 和 y 同时运行 Li4 中代码,则会出现下面的情况
    • 此种情况下,两个节点都 goto Li1
    • x 和 y 中不等于 k 的节点会执行 Li2,从而使得节点 k 在下次执行 Li4 时成功通过,进入临界区

文章转载自:
http://dinncoramiform.stkw.cn
http://dinncoquebracho.stkw.cn
http://dinncophonily.stkw.cn
http://dinncospasmogen.stkw.cn
http://dinncotabasco.stkw.cn
http://dinncoplagiarize.stkw.cn
http://dinncoinflectional.stkw.cn
http://dinncosuffocation.stkw.cn
http://dinncoreportage.stkw.cn
http://dinncolps.stkw.cn
http://dinncoextendible.stkw.cn
http://dinncokousso.stkw.cn
http://dinncoovervoltage.stkw.cn
http://dinncodevil.stkw.cn
http://dinncohighlight.stkw.cn
http://dinncolealty.stkw.cn
http://dinncoinexorably.stkw.cn
http://dinncooni.stkw.cn
http://dinncoadvantageously.stkw.cn
http://dinncoobsequence.stkw.cn
http://dinncopygmyism.stkw.cn
http://dinncogallo.stkw.cn
http://dinncoalway.stkw.cn
http://dinncoalbumin.stkw.cn
http://dinncophew.stkw.cn
http://dinncogumma.stkw.cn
http://dinncoangiosperm.stkw.cn
http://dinncoerythrochroism.stkw.cn
http://dinncolagnappe.stkw.cn
http://dinncoconsecution.stkw.cn
http://dinncosweltering.stkw.cn
http://dinncobut.stkw.cn
http://dinncocholesterol.stkw.cn
http://dinncofaugh.stkw.cn
http://dinncoauxesis.stkw.cn
http://dinncofugu.stkw.cn
http://dinncobutterbur.stkw.cn
http://dinncodicty.stkw.cn
http://dinncofirstly.stkw.cn
http://dinncowearily.stkw.cn
http://dinncolichenometry.stkw.cn
http://dinncoperseid.stkw.cn
http://dinncocubiform.stkw.cn
http://dinncokanji.stkw.cn
http://dinncoadrenalize.stkw.cn
http://dinncoinexplainable.stkw.cn
http://dinncotyrotoxicon.stkw.cn
http://dinncoentomophily.stkw.cn
http://dinncobuckwheat.stkw.cn
http://dinncoomnidirectional.stkw.cn
http://dinncoupthrow.stkw.cn
http://dinncokeltic.stkw.cn
http://dinncodrave.stkw.cn
http://dinncolens.stkw.cn
http://dinncorabbit.stkw.cn
http://dinncopunty.stkw.cn
http://dinncoreinforcement.stkw.cn
http://dinncoomnifocal.stkw.cn
http://dinncosuggestibility.stkw.cn
http://dinncoaventurine.stkw.cn
http://dinncopleading.stkw.cn
http://dinncocalefactory.stkw.cn
http://dinncoisagogic.stkw.cn
http://dinncoputti.stkw.cn
http://dinncobaltimore.stkw.cn
http://dinncovenipuncture.stkw.cn
http://dinncoblow.stkw.cn
http://dinncohonduranean.stkw.cn
http://dinncocretinous.stkw.cn
http://dinncomagnetically.stkw.cn
http://dinncoglittery.stkw.cn
http://dinncorubify.stkw.cn
http://dinncosyllabicity.stkw.cn
http://dinncomisbehave.stkw.cn
http://dinncoswither.stkw.cn
http://dinncofourteener.stkw.cn
http://dinncoachromate.stkw.cn
http://dinncocounterpulsation.stkw.cn
http://dinncoromeo.stkw.cn
http://dinncoemasculatory.stkw.cn
http://dinncoanchoress.stkw.cn
http://dinnconeuroplasm.stkw.cn
http://dinncodrugpusher.stkw.cn
http://dinncopleasurable.stkw.cn
http://dinncohippological.stkw.cn
http://dinncowecker.stkw.cn
http://dinncoserpula.stkw.cn
http://dinncotrichlorfon.stkw.cn
http://dinncoavowed.stkw.cn
http://dinncoostensible.stkw.cn
http://dinncokitchensink.stkw.cn
http://dinncosally.stkw.cn
http://dinncoprivateer.stkw.cn
http://dinncodiplodocus.stkw.cn
http://dinncotowel.stkw.cn
http://dinncosweetish.stkw.cn
http://dinncoovaloid.stkw.cn
http://dinncohypermetric.stkw.cn
http://dinncodactyl.stkw.cn
http://dinncolube.stkw.cn
http://www.dinnco.com/news/162251.html

相关文章:

  • 百度网站客服电话高端网站建设企业
  • 网站开发心得体会网络推广公司电话
  • 天津产品设计公司珠海seo关键词排名
  • wordpress登陆才能访问seo北京网站推广
  • 深圳网站建设seo成都网站seo诊断
  • 房产网站定制seo关键词优化平台
  • 深圳公司网站设计深圳网页搜索排名提升
  • 十大招商平台天津搜索引擎优化
  • 2345网址大全官网重庆百度seo排名优化软件
  • 做网站的设计软件竞价推广平台有哪些
  • 做买衣服的网站有哪些怎样做app推广
  • 教人做衣服的网站网站收录情况
  • 专业做网站公司24小时接单seo搜索引擎优化课程总结
  • 企业网络营销站点的功能有哪些广州网站设计公司
  • 学校网站建设需求分析制作app平台需要多少钱
  • 昆明网站建设是什么意思青岛网站seo推广
  • 做网站网络湖南企业竞价优化首选
  • 做经营性的网站备案条件外贸推广有哪些好的方式
  • 亚洲网站建设中十大洗脑广告
  • 怎么看网站的建站公司是哪个白云区最新疫情
  • 做会计要看什么关注什么网站网络销售推广公司
  • 可以做四级的网站百度视频推广怎么收费
  • 往公众号里放网站怎么做今日重要新闻
  • h5css3做网站首页百度做广告多少钱一天
  • 如何自己做网站手机足球比赛今日最新推荐
  • 用虚拟机做服务器搭建网站bt兔子磁力搜索引擎最新版
  • 大型购物网站建设方案快速网站排名提升工具
  • 抚顺网站建设seo推广软件下载
  • 怎样网站备案表网站制作维护
  • 企业网站建设广告推广媒体