设为首页收藏本站

最大的系统仿真与系统优化公益交流社区

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3415|回复: 5

关于任务分发器dispatcher的pass to 逻辑

  [复制链接]
发表于 2016-3-30 21:30:23 | 显示全部楼层 |阅读模式
本帖最后由 ssfang 于 2016-3-30 21:34 编辑

请教各位一个关于任务分发器dispatcher的pass to 逻辑的问题,下面两张图是pass to列表里面自带的代码:


1.从第18行开始,为什么这个两个for循环可以完成寻找离destination最近的任务执行器的功能?
2.第24行(图2)和26行(图1)的两个if条件看不大明白,如果GLOBAL_UNREACHABLE可以看成是无限远的一个常数,那么这个if条件不是恒成立的吗?为什么还要进行判断呢?
3.为什么图1中加了第23行的代码,就可以完成available的功能呢?
发表于 2016-3-31 09:45:11 | 显示全部楼层
说一下简单的个人理解:
1、两张图的18行开始都只有一个for循环。。。是在所有的分配器下游中寻找离Destination(这个是在上一个for循环中找到的需要进行travel任务的目标位置),用distancetotravel()命令来找到与目标距离最近的taskexecuter;
2、24行并非UNREACHABLE只是一个条件,后面有&&(且)里面的curmin>curdist才是关键判断;
3、这个很明显啊,两个逻辑的不同之处是是否可用,23的目的,明显就是先判定一下下游的端口是否可用,如果不可用自然不加入到比对排序中。
 楼主| 发表于 2016-3-31 11:35:44 | 显示全部楼层
慧娴亚伦 发表于 2016-3-31 09:45
说一下简单的个人理解:
1、两张图的18行开始都只有一个for循环。。。是在所有的分配器下游中寻找离Destina ...

感谢回复~~
对这个if判断还是有点困惑:
if (curdist != GLOBAL_UNREACHABLE && (curmin == GLOBAL_UNREACHABLE || curmin > curdist))
前一个条件curdist != GLOBAL_UNREACHABLE不是很明显成立的吗,后一个条件(curmin == GLOBAL_UNREACHABLE || curmin > curdist)中curmin == GLOBAL_UNREACHABLE这个是在前面声明过的,也是成立的,而这里用的是“或”,就是不管 curmin > curdist成不成立,这个if判断都是成立的啊
或者GLOBAL_UNREACHABLE和curmin应该怎么理解呢?
 楼主| 发表于 2016-3-31 11:41:11 | 显示全部楼层
另外 如果Task excuter正在做其他任务,它的inputport默认是close的吗?
if (curobj && isclasstype(curobj, CLASSTYPE_TASKEXECUTER))这个有什么用呢
发表于 2016-4-1 15:45:36 | 显示全部楼层
我觉得你陷入了一个“想当然”的误区,也就说你的判断实际上是看着代码空想而不是实际进行断点测试:
1、curdist != GLOBAL_UNREACHABLE并非您说的明显成立(在代码世界里面没有充足的证据请不要轻易说“明显成立”诸如此类的话),如果涉及到网络节点中,某些路径是单向的,很容易导致unreachable;
2、curmin == GLOBAL_UNREACHABLE在for循环的第一次是肯定成立,但是在后面几次的循环过程中curmin不就改变了么?
3、后面的一个问题应该自己尝试去理解,flexsim默认的代码都是非常严谨的判断,也许普通用户永远都不会遇到的很多特殊情况,flexsim都考虑到了,遇到这种情况的时候应该从多个角度去理解。
 楼主| 发表于 2016-4-6 14:01:16 | 显示全部楼层
慧娴亚伦 发表于 2016-4-1 15:45
我觉得你陷入了一个“想当然”的误区,也就说你的判断实际上是看着代码空想而不是实际进行断点测试:
1、cu ...

谢谢啦!
有人指点容易多了。
现在已经完全理解了。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|SimulWay 道于仿真   

GMT+8, 2024-4-25 08:42 , Processed in 0.011267 second(s), 14 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表