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

网站添加悬浮二维码网站底部源码

网站添加悬浮二维码,网站底部源码,wordpress卡在 wp,整合营销传播名词解释作者:李虹江 原文:https://mp.weixin.qq.com/s/GY05HFLTYcjLQIly-y4gxg 本文授权转自IC加油站微信号,未经作者授权,严禁二次转载。 这一篇继续仲裁器的话题,来讲一个更加复杂的仲裁算法,并且给出设计的思路…

作者:李虹江
原文:https://mp.weixin.qq.com/s/GY05HFLTYcjLQIly-y4gxg
本文授权转自IC加油站微信号,未经作者授权,严禁二次转载。
这一篇继续仲裁器的话题,来讲一个更加复杂的仲裁算法,并且给出设计的思路。

我们前面一篇仲裁器设计(二)-- Round Robin Arbiter里的Round Robin仲裁算法是一种公平的仲裁算法,每个requestor在得到许可之后优先级自动掉到最后,每个requestor之间都是平等的,大家都request的时候被grant的几率是相等的。公平固然好,**但是有的时候我们并不希望绝对的公平,反而希望有侧重。**咱们还是以老师点名回答问题为例讲一讲今天的主题:weighted round robin, 即加权轮询。

老师在问出一个问题之后,看到下面同学举手。老师可能心里想的并不是让大家有同样的几率回答到问题。假设有两个同学小A和小B,小A的学习成绩很好,小B的成绩要差一点。从老师的角度,如果小A和小B都举手回答同一个问题,那么老师可能更希望给小B以更多鼓励,所以叫他的可能性就高。在老师心里,这点“偏心”就是老师给小B同学加的权重,即weight。“偏心”越多,即权重越大。 当然,老师也不能一直都叫小B同学而完全不叫小A同学回答问题,这样小A同学的积极性也会受到打击。所以我们假设,老师决定按照下面的规则:

小A和小B同学的偏心值为1:2。也就是说,如果对连续3个问题小A和小B都举手,那么先让小B回答两次,第三个问题轮给小A回答。接下来开始新的一轮,即连续3个问题都举手,小B回答两次,小A回答一次。这个很好理解,只要小A和小B都举手,那么他们被叫到的几率就正比于他们的权重,即1:2。

我们可以这样理解,在老师的心目中对小A和小B都有一个计数器,计数器初始值就是老师心中的“偏心值”,每叫谁回答一次问题,那么就要给他的计数器减个1,对于偏心的同学,就可以连续叫他回答,直到计数器减到0,才换下一个同学。

注意,换下一个同学不是说换下一个偏心值最大的同学,而是按照之前约定好的顺序来换人,比如按照学号从大到小。这里要把偏心值和叫谁先回答区分开。偏心值大的意思是被叫到的次数多。上面的例子里,老师也可以这样叫,让小A回答第1个问题,然后让小B回答第2,3个问题。这样依然保持了回答几率是1:2。

我们对比一下Round Robin,如果小A和小B连续都举手,那么Round Robin仲裁会小A小B轮流来叫,而weighted round robin则是要把weight计数器消耗光之后才轮换。这也就是weighted round robin的设计思路,基于round robin,但是要设计一个weight counter,并调整相应的算法。
在这里插入图片描述
对于每一路requestor, 都有一个counter来记录这个requestor被grant的次数。counter的初始值就是他们的weight值,这个值可以是固定的,也可以是来自寄存器的配置。

和Round robin不同的是对于mask的调整。回想一下,round robin里的mask是,只要第i路被许可,那么从0到第i路的req都会被mask掉,只允许更高位的request 通过,去往上面的那个Masked Priority Arbiter。但是对于Weighted Round Robin,一次grant不足以立刻让这一路request被mask掉,而是要看这一路的counter值,如果counter值还没有减为0,那么就认为这一路依然有credit,mask值就和之前保持不变,下次仲裁的时候依然可以选择这一路grant。

那么什么时候调整mask值呢?就是当这一路被grant完之后,它的counter减到了0,所有的credit用完了,那么mask再调整,调整的做法和Round Robin一样,把第0路和第i路的req都mask掉,其余没有被mask掉的再继续这个过程。

那么你肯定会问,什么时候再重新把counter值load回初始weight值呢?在下面两种情况的时候:

所有的路都被mask掉了,即所有路都被依次轮过一遍了,这个时候我们需要再来一轮公平的仲裁,大家都各自载入自己的权重,再来一轮。
没有active req了,也就是所有的request都被许可了。
其实上面两种情况合并起来就是一种情况,即上面图中Masked ==0 (req全为0也对应Masked ==0)。

老李这里就不放代码了,相信大家有了Round Robin的设计和上面的算法,稍加改动就可以得到。

注意weighted round robin里面虽然有weight,但本质还是round robin,即轮询,要一个一个轮着来。有weight,但是并不代表weight高的这一路一定被许可的次数多,这是怎么回事呢?我们看下面这个例子:

有三个request[2:0],它们的weight 分别为1:1:2, req[0]在1和3周期有request
在这里插入图片描述
按照我们上面的仲裁算法,周期1, req[0]有request,grant给req[0],req[0]的weight counter从2减到1。当周期2的时候,req[0]因为没有request,而req[1]有request,那么grant给req[1],而且,注意这个周期req[1]的weight counter减为0,那么mask就要调整,会把req[0]和req[1]都给mask掉,即使req[0]的weight counter还没有减到0!这一点就是大家要注意的,weight round robin保证的是你有连续的request的时候,grant可以持续给你,但是一旦你有一个周期没有request,那么你就被跳过了,得再等一圈。

本篇图片来自rtlery.com。

http://www.dtcms.com/a/493459.html

相关文章:

  • 企业标准版网站建设网站模板下载源码
  • 代驾网站开发乐清网络公司哪家好
  • 海南 网站 建设制作网页用什么进行页面布局
  • 网站从建设到运行要多少钱动漫做的游戏 迅雷下载网站
  • 网站提供商基于php的家具公司网站
  • 网站建设伍首选金手指小程序流量点击推广平台
  • 建立网站的作用合肥做网站的公司
  • 网站标题和描述优化网站建设字体
  • 诚通凯胜生态建设有限公司网站php建站软件
  • app与微网站的区别是什么意思好用app制作
  • php 英文网站模板响应式网站开发要注意哪些
  • 怎么知道网站的空间是谁做的彩票网站开发违法
  • 自助健站大同推广型网站建设
  • 合肥瑶海区网站建设费用网络营销的常见方式有哪些
  • asp购物网站客户查看购物车网络推广哪个平台最好
  • 中国建设教育协会培训中心网站网站备案拍照 广州
  • 黄石手机网站建设源代码网站和模板做的区别
  • 广州网站外贸推广全国家装官网
  • 台州做网站需要多少钱yum nginx wordpress
  • 用vs做网站 怎么安装百度蜘蛛抓取新网站
  • 黄页网站 phpwordpress工单插件
  • 介绍几个能进去的a站深圳网站建设多少钱
  • 写作网站挣钱对比网页设计与制作教程第三版张兵义
  • 网站开发进度在什么网站做公司人员增减
  • 网页和网站区别是什么免费海外网络连接器
  • 厦门网页建站申请比较好wordpress 右侧广告
  • 专业html5网站建设临沂建设局网站
  • 上海建设网站的网站电子商务网站的功能
  • 微机课做网站网站建设常出现的问题
  • 珠海移动网站定制福建亨立建设集团有限公司网站