价格 | 564.00元 |
---|---|
区域 | 福建省 |
来源 | 厦门光沃自动化设备有限公司 |
详情描述:
FBM208
FBM208
构件模型和映射成任务的方式
一般基于构件的软件开发中,使用已生成并被证明是可靠的构件来”建造”整个系统软件。这需要一个定义构件的方法,即,构件模型。研究和实践证明,构件模型必须有信息隐藏的能力和明确定义的接口。前者使构件能在不同的系统中替换和重用,而后者是构件与环境交互的通道。外界只能通过接口访问构件,这也是对信息隐藏的辅助支持。对于实时系统来说,构架模型还应包含时间属性,例如:构件执行时间、终截止期和周期等,从而能在构造完系统后,进行可调度性分析。通常的实时软件开发中,任务是构造系统的基本单元,因此模型还应定义将构件映射成任务的方式。与桌面/企业级应用不同,开发嵌入式系统适合用源代码级构件。因为:(1)开发者可以访问构件源码(不是修改构件),通过”白盒”测试来发现错误。而使用二进制代码构件进行”黑盒”测试,将减弱开发者对系统行为的控制能力。(2)嵌入式系统是在资源有限的节点上运行复杂可靠的控制应用,不需动态配置,只需在一组静态配置的模式间切换。所以为了更好地支持系统的可分析性、可测试性和减少内存消耗,应该在运行前(编译时)配置构件的行为和相互之间的连接。这也需要使用源代码级构件。
因为管道和过滤模型[7]适于控制应用,而大部分嵌入式系统是控制系统。所以,我们基于管道和过滤模型为构件化嵌入式操作系统的应用层定义一种实时构件模型。该构件模型是源代码级的,每个构件包括:(1)名称,作为构件的身份标识。(2)一组输入和输出端口,前者用于接收数据,后者用于产生数据,端口不会缓存数据,构件之间通过端口通信。(3)一组构件属性,存储构件的元数据信息,包括构件所用内存大小、执行时间、终截至期、释放时间和周期等。(4)一个行为体,实现构件功能,被输入端口数据(事件)触发,根据当前操作模式处理数据,并产生触发下一构件的输出数据(事件)。通信数据在构件之间传递,由底层调度内核通过对行为体的逻辑调用来引导。
当前存在将多个构件映射成一个任务[8]和将一个构件映射成多个任务[9]的方式,我们考虑这些映射方式的目的都是希望能在简化结构分析和减少运行时系统开销之间获得一个适当的折中。将一个构件映射成一个任务能简化结构分析,但可能造成系统运行时任务较多,如果底层实时操作系统采用抢占式调度算法,则会增加任务之间相互抢占的次数,从而增加现场切换等系统开销,降低处理器的利用率,影响任务集合的可调度性。另外,还会增加对系统内存的消耗。所以我们提出了一种设计方法:构件是被动的,不包含自己的线程,装配时才将构件分配到线程,每个构件映射成一个任务,这使系统结构清晰,并能简化分析过程;而系统运行时出现的上述问题,通过为底层构件化嵌入式实时操作系统选择合适的调度模型来解决,例如选择非抢占式调度算法能减少内存消耗,而选择抢占阈值调度算法既能提高任务集合的可调度性,又能减少对系统内存的使用。
FBM208
联系人 | 杨工销售 |
---|