欢迎来到天天文库
浏览记录
ID:27545180
大小:550.07 KB
页数:38页
时间:2018-12-03
《vxworks系统及函数详解》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、VxWork介绍及编程VxWork介绍及编程一.嵌入式操作系统VxWorks简介VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据一席之地。它以其良好的可靠性和卓越的实吋性被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的F-16、FA-18战斗机、B-2隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表而登陆的火星探测器上也使用到了Vx
2、Works。实吋操作系统和分吋操作系统的区別从操作系统能否满足实吋性要求来区分,可把操作系统分成分吋操作系统和实吋操作系统。分时操作系统按照相等的时间片调度进程轮流运行,分时操作系统由调度程序自动计算进程的优先级,而不是由用户控制进程的优先级。这样的系统无法实时响应外部异步事件。实时操作系统能够在限定的时间内执行完所规定的功能,并能在限定的时间A对外部的异步事件作出响应。分时系统主要应川于科学计算和一般实时性要求不高的场合。实时性系统主要应用于过程控制、数据采集、通信、多媒体信息处理等对时间敏感的场合。VxWorks的特点•可靠性操作系统的用户希望在一个工作稳定,可以信赖的环境中工作,所
3、以操作系统的可靠性是用户首先要考虑的问题。而稳定、可靠一直是VxWorks的一个突出优点。自从对中国的销售解禁以來,VxWorks以其良好的可靠性在中国赢得了越来越多的川户。•实时性实时性是指能够在限定时间A执行完规定的功能并对外部的异步事件作出响应的能力。实吋性的强弱是以完成规定功能和作出响应吋间的长短来衡量的。VxWorks的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,它们造成的延迟很短。VxWorks提供的多任务机制中对任务的控制采用了优先级检占(PreemptivePriorityScheduling)和轮转调度(Round-R
4、obinScheduling)机制,也充分保证了可靠的实吋性,使同样的硬件配置能满足更强的实吋性要求,为应用的开发留下更大的余地。•可裁减性用户在使用操作系统时,并不是操作系统屮的每一个部件都要用到。例如图形显示、文件系统以及一些设备驱动在某些嵌入系统中往往并不使用。VxWorks由一个体积很小的内核及一些可以根据耑要进行定制的系统模块组成。VxWorks内核最小为8kB,即便加上其它必要模诀,所占用的空间也很小,且不失其实时、多任务的系统特征。由于它的髙度灵活性,用户可以很容易地对这一操作系统进行定制或作适当开发,来满足自己的实际应用需要。对一个实时内核的要求一个实时操作系统A核需满足
5、许多特定的实时环境所提出的基本要求,这些包括:多任务:由于真实世界的事件的异步性,能够运行许多并发进程或任务是很重要的。多任务提供了一个较好的对真实世界的匹配,因为它允许对应于许多外部事件的多线程执行。系统内核分配CPU给这些任务来获得并发性。抢占调度:真实lit界的事件具有继承的优先级,在分配CPU的时候要注意到这些优先级。基于优先级的抢占调度,任务都被指定了优先级,在能够执行的任务(没有被挂起或正在等待资源)中,优先级最高的任务被分配CPU资源。换句话说,当一个高优先级的任务变为可执行态,它会立即抢占当前正在运行的较低优先级的任务。任务间的通讯与同步:在一个实时系统中,可能有许多任务
6、作为一个应用的一部分执行。系统必须提供这呰任务间的快速且功能强大的通信机制。内核也要提供为Y有效地共享不可抢占的资源或临界区所需的同步机制。任务与中断之间的通信:尽管真实世界的事件通常作为巾断方式到来,但为了提供有效的排队、优先化和减少中断延吋,我们通常希望在任务级处理相应的工作。所以需要杂任务级和屮断级之间存在通信。二.系统编程方法了解系统编程对程序员来说尤为重要。根据Drew个人的经验基本上操作系统编程都是类似的,认真读懂一种,就很容易的理解另一种。下面是Drew翻的VxWorksprogrammerguide屮的基本内容,有一些内容是Drew个人的理解。理解这些内容对实吋操作编程非
7、常重要。实时系统主要包括:多任务调度(采用优先级抢占方式),任务间的同步和进程间通信机制。一个多任务环境允许实时应用程序以一套独立任务的方式构筑,每个任务拥有独立的执行线程和它向己的一套系统资源。进程间通信机制使得这些任务的行为同步、协调。wind使用中断驱动和优先级的方式。它缩短了上下文转挽的时间开销和中断的时延。在VxWorks>1',任何例程都可以被启动为一个单独的任务,拥有它自己的上下文和堆栈。还有一些其它的任务机制可以使任
此文档下载收益归作者所有