因为大多数组件使用有限的几个仲裁策略中的一个,tinyos-2.x中包括了一定数量的默认资源仲裁器。在tinyos-2.x/tos/system中可找到这些仲裁器,并且所有的通用组件使用如下两个模块中的一个,其代码如下:
1)
2)
“简单”仲裁器主要由不要求额外开销的资源使用,额外开销主要是由于提供ResourceDefaultOwner接口而产生的。
在许多情况下,改变仲裁策略主要是改变排队策略,排队策略用于决定资源请求的获准顺序。在这种方式下,将排队策略实现代码从现行的仲裁实现代码中分离出来可提高代码重用度。通过使用ResourceQueue接口,SimpleArbiterP和ArbiterP组件可被连接到提供具体排队策略的组件上去。
下面是使用ResourceQueue接口连接一个“先进先出(FCFS)”排队策略到SimpleArbiterP组件的例子。
例6.2:
当一个资源的用户希望以FCFS方式处理资源请求时,可以实例化这个通用配置。下面是tinyos-2.x中提供的所有默认排队策略以及仲裁组件。
排队策略:(www.xing528.com)
●FcfsResourceQueueC。
●RoundRobinResourceQueueC。
仲裁器:
●SimpleFcfsArbiterC。
●FcfsArbiterC。
●SimpleRoundRobinArbiterC。
●RoundRobinArbiterC。
仲裁器仅仅提供了一个管理用户ID的标准方法,以达到共享资源不必在每次执行时都复制它自身的功能。为了限制不提出请求而使用资源的用户,共享资源必须使用ArbiterInfo接口提供的功能,对资源的当前拥有者执行运行时间检测。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。