- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于VxWorks实时多任务的信号处理软件设计.doc
基于VxWorks实时多任务的信号处理软件设计 摘要:随着嵌入式技术的不断发展,嵌入式软件开发也越来越重要。现代实时系统是在多任务和任务间通信的基础上建立起来的。该文介绍了在VxWorks嵌入式实时操作系统下的多任务软件开发,阐述了多任务的特点及任务调度算法、任务间通信机制。并给出了实时多任务在信号处理软件的设计思路。 关键词:嵌入式系统;任务优先级;实时多任务;任务调度 中图分类号:TP316 文献标识码:A 文章编号:1009-3044(2013)17-4009-04 1 VxWorks操作系统简介 VxWork操作系统是美国风河公司推出的高性能实时多任务操作系统,已经成功的应用在航天、航空、通信、军事、医疗等领域中。 VxWorks系统的特点: 1)高性能的微内核设计 微内核设计使VxWorks缩减了系统开销并加速了对外部事件的反应。VxWorks内核最小为8KB。 2)高效的任务管理 具有256个优先级;具有优先级抢占和时间片轮转调度;快速、准确的上下文切换;快速灵活的任务间通信;三种信号量,包括二进制、计数、有优先级继承特性的互斥信号量;POSIX管道、消息队列和信号。 3)良好的可移植性 VxWorks将依赖于硬件的低级代码设计成板级支持包(BSP),移植高级代码时,只要改变相应的板级支持包即可,无需修改操作系统和应用程序。 4)良好的可裁剪性 VxWorks系统由上百个模块组成,各个模块短小精炼且相对独立,用户可以自由裁剪和配置系统,以适用自己的需求。 5)网络组件 VxWorks系统支持工业标准TCP/IP网络协议族,支持可选的WindNet产品,包括SNMP、OSPF、STREAMS等。 6)支持POSIX 1003.1b标准,还支持POSIX 1003.1b的实时扩展 7)灵活和快速的I/O文件特性 2 多任务 多任务机制允许一组独立的任务按照所设定的调度关系“并行”运行,每个任务运行在自己的线程,并且拥有一套自己的系统资源。VxWorks的内核Wind就提供了这样的多任务环境。 2.1 多任务的特点 其实多任务的各个线程并非是真正意义上的并行运行,而是按照所设定的一套调度方案交替运行的。每个任务都拥有自己的系统资源、占用各自的CPU,这些就是任务的上下文,任务交替时,任务上下文将保存到任务控制块中。 任务的上下文就是任务执行的位置、在CPU中使用的各种寄存器、任务中使用的所有堆栈等内容。 2.2 任务调度 要使多任务中各个任务都能得到有效的执行,就需要一套严格的调度算法来分配CPU的使用权。Wind内核提供了优先级抢占式算法和轮转调度算法,VxWorks的内核Wind默认使用优先级抢占式算法。 Wind内核提供了0~255共256个优先级,0为最高,255为最低。 1)基于优先级的抢占式任务调度算法 多任务中的每个任务都设定了不同的优先级,处于就绪状态的任务中,具有最高优先级的任务将被优先执行。如果有更高优先级的任务进入了就绪状态,则系统内核将立刻将当前正在执行的任务的上下文保存的任务控制块中,并从任务控制块中取出更高优先级的任务的上下文。 此算法保证了具有更高优先级的任务被执行,但当多个相同优先级的任务需要共享一台处理器时将可能会导致有些任务一直不能被执行。如果某个执行的任务永不阻塞,那么它将一直独占CPU,其它相同优先级的任务就没有机会执行。可以采用轮转式调度算法解决这一问题。 2)轮转式调度算法 轮转式调度算法为每个具有相同优先级且处于就绪状态的任务分配一个相同的时间片去运行。 可以通过调用函数kernelTimeSlice()来设置时间片的长度。 3)抢占上锁 在有些情况下,一个低优先级的任务中的某段代码须连续执行完毕,即执行这段代码时不允许其它任务抢占,可以通过调用函数taskLock()来禁止使用调度程序,等到该段代码执行完毕后调用函数taskUnlock()启用调度程序。 2.3 任务控制 3 任务间通信 VxWorks提供了一套多样的任务间通信方式,包括: 1)共享内存,主要是数据的简单共享。 2)信号量,用于基本的互斥和任务同步。 3)消息队列和管道,单CPU的消息传递。 4)Socket和远程过程调用,用于网络任务消息传送。 5)信号,用于异常处理。 实践中最常用的通信方式是信号量。信号量占用系统资源最少,是最快的任务间通信机制,也是解决任务间的互斥和同步的最主要的手段。 VxWorks提供了三种类型的信号量: 1)二进制信号量:使用得最多、最广,主要用于任务的同步和互斥; 2)互斥信号量:主要用于解决优先级继承、互斥问题、安全删除和回溯; 3)计数器信号量:用于资源的数目较多的情况。 二进制信号量能有效的对共享资源的访问进行互锁,来实现互斥,初始信号量为可用;当信号量用于同步时,等待
您可能关注的文档
最近下载
- 《用户体验与设计》课件.ppt VIP
- 《大丈夫》分集故事梗概要点.docx VIP
- 《极限配合与技术测量(第3版) 》教案.pdf VIP
- 《用户体验设计》课件.ppt VIP
- 2025年秋季新教材部编版小学道德与法治三年级上册全册道法核心素养教案(教学设计)含教学反思.pdf VIP
- 监理大纲监理服务方案投标文件(技术方案).doc
- 工业机器人应用技术(ABB)教程配套课件完整版电子教案.pptx VIP
- 高教社2024企业财务会计教学课件1项目一财务会计认知.pptx VIP
- 2025秋统编版道德与法治五年级上册教学计划 .pdf VIP
- (新教科版)科学四年级上册全册教案及教学设计.pdf VIP
文档评论(0)