基于嵌入式操作系统vxworks的多任务并发程序设计

基于嵌入式操作系统vxworks的多任务并发程序设计

ID:18903317

大小:366.00 KB

页数:49页

时间:2018-09-24

基于嵌入式操作系统vxworks的多任务并发程序设计_第1页
基于嵌入式操作系统vxworks的多任务并发程序设计_第2页
基于嵌入式操作系统vxworks的多任务并发程序设计_第3页
基于嵌入式操作系统vxworks的多任务并发程序设计_第4页
基于嵌入式操作系统vxworks的多任务并发程序设计_第5页
资源描述:

《基于嵌入式操作系统vxworks的多任务并发程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、基于嵌入式操作系统VxWorks的多任务并发程序设计(1)――基本概念02月13th,2006by宋宝华作者:宋宝华e-mail:21cnbao@21cn.com出处:软件报(转载请务必注明作者与出处)1引言嵌入式系统定义为:嵌入到对象体系中的专用计算机系统。“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素,对象系统则是指嵌入式系统所嵌入的宿主系统。目前,随着高端消费类电子产品(如PDA、手机、智能家电)的普及,嵌入式计算机系统获得了相当广泛的应用。操作系统在嵌入式软件体系中占据着重要低位,学习和掌握相关的知识是一名嵌入式系统研发人员的

2、必须。1.1本文的读者对象与写作目的本文针对的读者对象为入门级的嵌入式系统软件开发人员以及其他对嵌入式操作系统感兴趣的朋友,顺利阅读本文需要读者具备的基本知识能力为:(1)熟练的C语言程序设计能力;(2)操作系统的基本知识。如果读者具备在Windows平台下进行多线程程序设计或者其他嵌入式操作系统本台下进行多任务程序设计的经验,将对阅读本文有很大的帮助。本文虽然以VxWorks为介绍的主体对象,但是其中所论述的概念和方法并不局限于VxWorks操作系统本身。它们也同样适用于其它嵌入式操作系统,如WinCE、嵌入式Linux、ucos等,所谓“万变不离其

3、宗”。笔者力求能以通俗和形象的语言进行论述,但是由于水平有限,文中难免存在错误和纰漏,诚盼读者朋友指正。1.2为什么以VxWorks为写作对象之所以选择VxWorks操作系统为本文的写作对象,是因为:(1)VxWorks具备清晰的多任务并发控制及任务间通信的成熟机制;(2)VxWorks有广泛的使用基础,国内外分布着大量的VxWorks程序员;(3)VxWorks简单易学,便于我们集中目标讲解多任务控制程序本身。1.3什么是VxWorksVxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),它凭借着

4、良好的可持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操作系统领域占据了重要一席。VxWorks具备高可靠性和实时性,因而被广泛地应用在通信、军事、航空、航天等高精尖技术及实时性要求极高的领域中,如卫星通讯、军事演习、弹道制导、飞机导航等。在美国的F-16、FA-18战斗机、B-2隐形轰炸机和爱国者导弹上,甚至连1997年4月在火星表面登陆的火星探测器上也使用到了VxWorks。VxWorks的实时性体现在它能在限定时间内执行完规定的功能并对外部的异步事件作出响应。实时操作系统主要应用于过程控制、数据采集、通信、多媒体信息处理等对时间敏

5、感的场合;而分时操作系统按照相等的时间片调度进程轮流运行,无法实时响应外部异步事件,因而主要应用于科学计算和实时性要求不高的场合。VxWorks由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成。VxWorks内核最小为8KB,即便加上其它必要模块,所占用的空间也很小,且不失其实时、多任务的系统特征。VxWorks的内核主要包括:(1)多任务:为满足真实世界事件的异步性,现代操作系统需提供多任务支持,由系统内核分配CPU给多个任务并发执行。如果是单CPU,则执行方式实质是宏观并行、微观串行;(2)任务调度:真实世界的事件具有继承的优先级,当一

6、个高优先级的任务变为可执行态,它会立即抢占当前正在运行的较低优先级的任务,VxWorks对这种优先级抢占调度(PreemptivePriorityScheduling)提供了支持。同时,VxWorks也支持同优先级任务间的时间片轮转调度(Round-RobinScheduling);(3)任务间的通讯与同步:在一个实时系统中,系统必须提供多个任务间快速且功能强大的通信机制,并提供为了有效地共享不可抢占的资源或临界区所需的同步机制;(4)任务与中断之间的通信:许多外设以中断方式与CPU通信,我们不宜在中断服务程序(ISR)中进行过多的处理,通常将相应处理

7、交给特定任务去完成。VxWorks前些年对我国一直采取禁运措施,自从对中国的销售解禁以来,它在中国赢得了越来越多的用户。2进程、线程与任务既然我们是讲解一种操作系统,那我们就有必要再老生长叹一次进程与线程的概念及其区别。进程(Process)是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。程序只是一组指令的有序集合,它本身没有任何运行的含义,只是一个静态实体。而进程则不同,它是程序在某个数据集上的执行,是一个动态实体。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消,反

8、映了一个程序在一定的数据集上运行的全部动态过程。线程(Thread)是进程的一个实体,是CPU

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。