欢迎来到天天文库
浏览记录
ID:33982699
大小:2.39 MB
页数:56页
时间:2019-03-03
《vxworks操作系统的多线程实现分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、重庆人学硕士学位论文1绪论l绪论1.1课题的背景及意义现代通信系统的发展可谓是同新月异,突飞猛进,在技术上不断革新,特别是以3G全分组网络的应用为代表,对当前通讯设备的性能提出了更高的要求。一方面需要发展嵌入式通讯设备硬件水平,如提升CPU处理速度、增加内存容量、减小硬件体积和重量、降低硬件成本等等;另一方面需要提升设备硬件平台上软件系统的实时性和可靠性,通讯设备上的软件主要包括嵌入式操作系统和上层应用程序两部分,操作系统是整个软件系统的核心,负责对CPU、内存等硬件资源进行调度和管理,嵌入式操作系统的优劣将直接决定整个嵌入式软件系统实时性和可靠性的好坏。vxWorks作为一款优秀的商用嵌入式
2、实时多任务操作系统,凭借其出色的实时性和可靠性在通信行业里有着广泛的应用,在美国宇航局的“极地登陆者”号、“深空二号”和火星气候轨道器等登陆火星探测器上,就采用了vxWorks,负责火星探测器全部飞行控制,包括飞行纠正、载体自旋和降落时的高度控制等,而且还负责数据收集和与地球的通信工作。目前在全世界装有vxWorks系统的智能设备数以百万计,其应用范围遍及电信和数据通信、互联网、数字影像、医学、计算机外设、导航与制导、汽车、火控、航空、指挥、控制、通信和情报、空间与导弹系统、声纳与雷达、模拟和测试等众多领域。但随着通信行业的飞速发展,通信业务的急速增长,传统的基于vxWorks实现的通讯设备软
3、件系统IlJ在面对同益庞大而复杂的通信业务时,已经暴露出一些不足之处,不能很好地为通信应用服务。这些不足的地方主要体现在以下几个方面:①大量任务并行情况下,系统的实时性不足随着通讯设备功能复杂性的增加,设备中的应用程序常常需要创建大量任务才能满足复杂的功能需求。问题在于,任务作为内核对象在vxWorks操作系统里并不是廉价的资源,维持一个任务对象需要耗费一定的内存和CPU资源;更重要的是,由于任务数量的增加,任务间切换产生的时间丌销也随之增多,且已经影响到软件系统的实时性12J,并最终影响到整个通讯设备的实时响应能力。此外,任务之间主要采用消息队列机制进行通信,因为消息队列是操作系统内核对象,
4、每次收发消息都要执行进入内核态的系统调用,同时还伴随着消息的拷贝,此类通信方式效率低下,在大容量通信环境下,对软件系统实时性的影响也是不能忽略的。②程序故障难以定位,影响系统可靠性为了提高设备程序运行效率,运行在嵌入式设备上的操作系统通常不使用内存管理单元(MMU),即应用程序直接访问真实的内存地址空间,再加上构成设重庆人学硕+学位论文1绪论备软件系统的操作系统与上层应用软件共用同一个代码和地址空间,使得应用程序对内存资源的访问存在较大的安全隐患;当通讯设备软件越来越庞大和复杂,就越来越容易导致程序异常的发生,特别是现场情况下的死机和跑飞常常无法追踪其原因。由于软件故障往往不容易复现,而且同一
5、个故障可能引发不同的异常现象,所以很难从现象去猜测和定位故障的原因。想要找到异常发生的根本原因就必须在其出现的时候搜集到足够多的现场信息,但仅靠vxWorks提供的接口很难在异常出现的时候即时地捕捉到有用的信息,如异常发生前后的函数调用栈、堆栈信息、信号量使用情况、消息队列信息等等【3】。如果不能在异常出现的时候通过分析异常信息即时将故障原因找到并决掉,则必然对系统的可靠性和稳定性造成严重的隐患。③上层应用直接调用vxWorks的系统接口,系统缺乏可移植性可移植性是现代软件设计的重要思想,是减少软件开发周期和成本、使已有程序快速适应不断变化的框架和平台的利器。传统的嵌入式程序往往由于规模较小而
6、忽略这点,为了能快速开发出最终产品而放弃中间层的设计,随处可见上层应用程序直接调用底层操作系统的接口,严重影响软件系统的移植性。众所周知,vxWorks昂贵的使用许可费不仅让中小企业对其望而生畏,而且使越来越多的大型通信设备制造商开始考虑采用其它价格低廉或开源的操作系统作为其替代品,普遍采用的方法是基于开源的Linux微内核开发符合公司自身应用需求的嵌入式实时操作系统。因此,在开发基于vxWorks的软件系统的时候一定要考虑程序的可移植性,例如:旧的软件系统应该能够快速、正确地从vxWorks操作系统移植到嵌入式Linux操作系统上。综上所述,如果要提高嵌入式通讯设备软件系统的实时性、可靠性和
7、可移植性,就必须对传统基于vxWorks操作系统的应用程序做必要的改动。本文首先对当前普遍使用的线程技术和标准进行研究、分析,尤其是POSIX(IEEE1003.1c)线程标准,结合通信领域嵌入式应用的需求和vxWorks自身内核实现的特点,提出了面向vxWorks的用户级线程解决方案;该方案在不修改vxWorks内核的前提下实现了对其任务调度、通信效率的改进。相对于任务对象,使用线程作为执行单元
此文档下载收益归作者所有