摘要:
传统使用vxWorks实现的嵌入式软件系统在面对日益庞大而复杂的通信业务时,已经暴露出一些不足之处,不能很好地为通信设备服务。这些不足之处主要体现在:(1)大量任务并行情况下,系统的实时性不足;(2)程序故障难以定位,影响系统可靠性;(3)上层应用直接调用vxWorks的系统接口,系统缺乏可移植性。 为了解决上述问题,本文首先研究、分析当前普遍使用的线程技术和标准,尤其是POSIX(IEEE 1003.1c)线程标准,然后结合通信领域嵌入式应用的需求和vxWorks自身内核实现的特点,提出了面向vxWorks的用户级线程解决方案。在实现整个方案的过程中,本文主要做了以下工作: ①分析了基于vxWorks的通讯设备软件系统在实时性、可靠性、可移植性上存在的不足,探讨衡量软件系统实时性、可靠性的量化标准以及模型可移植性的评价标准和实现方法; ②设计线程总体框架和基于vxWorks任务机制的线程模型;设计并实现线程属性、线程控制、线程不同状态之间的转换、线程上下文的切换,设计线程调度管理模块实现对线程调度工作的划分和管理; ③分析vxWorks消息通信机制的不足,提出并实现零拷贝消息通信模型; ④设计并实现线程通信,包括同步消息、异步消息、CPU间的线程通信、CPU内任务间的线程通信、CPU内任务内的线程通信以及线程与任务之间的通信; ⑤在实现线程调度和通信模型的基础上提供了故障定位的有效手段,包括线程中死循环的检测、线程属性及状态的监控、线程堆栈检测等。 ⑥设计线程框架的测试方法,在真实嵌入式通信设备上完成对线程功能和性能的测试。 最后,本文完成了对线程性能及稳定性的测试,包括:线程上下文切换测试、零拷贝消息队列测试、故障解决效率测试;通过将这些测试结果与纯任务环境下的测试数据做对比,证明了线程方案在改进嵌入式软件系统实时性、可靠性方面具有很好的效果。此外,线程作为中间层,为上层用户程序提供了良好的可移植性。
展开