基于vxworks实时多任务信号处理软件设计

基于vxworks实时多任务信号处理软件设计

ID:32636560

大小:62.35 KB

页数:9页

时间:2019-02-14

基于vxworks实时多任务信号处理软件设计_第1页
基于vxworks实时多任务信号处理软件设计_第2页
基于vxworks实时多任务信号处理软件设计_第3页
基于vxworks实时多任务信号处理软件设计_第4页
基于vxworks实时多任务信号处理软件设计_第5页
资源描述:

《基于vxworks实时多任务信号处理软件设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于VxWorks实时多任务信号处理软件设计摘要:随着嵌入式技术的不断发展,嵌入式软件开发也越来越重要。现代实时系统是在多任务和任务间通信的基础上建立起来的。该文介绍了在VxWorks嵌入式实时操作系统下的多任务软件开发,阐述了多任务的特点及任务调度算法、任务间通信机制。并给出了实时多任务在信号处理软件的设计思路。关键词:嵌入式系统;任务优先级;实时多任务;任务调度中图分类号:TP316文献标识码:A文章编号:1009-3044(2013)17-4009-041VxWorks操作系统简介VxWork操作系统是美国风河公司推出的高性能实时多任务操作系统,已经成功的应

2、用在航天、航空、通信、军事、医疗等领域中。VxWorks系统的特点:1)高性能的微内核设计微内核设计使VxWorks缩减了系统开销并加速了对外部事件的反应。VxWorks内核最小为8KBo2)高效的任务管理具有256个优先级;具有优先级抢占和时间片轮转调度;快速、准确的上下文切换;快速灵活的任务间通信;三种信号量,包括二进制、计数、有优先级继承特性的互斥信号量;POSIX管道、消息队列和信号。3)良好的可移植性VxWorks将依赖于硬件的低级代码设计成板级支持包(BSP),移植高级代码时,只要改变相应的板级支持包即可,无需修改操作系统和应用程序。4)良好的可裁剪性

3、VxWorks系统由上百个模块组成,各个模块短小精炼且相对独立,用户可以自由裁剪和配置系统,以适用自己的需求。5)网络组件VxWorks系统支持工业标准TCP/IP网络协议族,支持可选的WindNet产品,包括SNMP、OSPF、STREAMS等。6)支持POSIX1003.lb标准,还支持P0SIX1003.lb的实时扩展7)灵活和快速的I/O文件特性2多任务多任务机制允许一组独立的任务按照所设定的调度关系“并行”运行,每个任务运行在自己的线程,并且拥有一套自己的系统资源。VxWorks的内核Wind就提供了这样的多任务环境。2.1多任务的特点其实多任务的各个线

4、程并非是真正意义上的并行运行,而是按照所设定的一套调度方案交替运行的。每个任务都拥有自己的系统资源、占用各自的CPU,这些就是任务的上下文,任务交替时,任务上下文将保存到任务控制块中。任务的上下文就是任务执行的位置、在CPU中使用的各种寄存器、任务中使用的所有堆栈等内容。2.2任务调度要使多任务中各个任务都能得到有效的执行,就需要一套严格的调度算法来分配CPU的使用权oWind内核提供了优先级抢占式算法和轮转调度算法,VxWorks的内核Wind默认使用优先级抢占式算法。Wind内核提供了0〜255共256个优先级,0为最高,255为最低。1)基于优先级的抢占式任

5、务调度算法多任务中的每个任务都设定了不同的优先级,处于就绪状态的任务中,具有最高优先级的任务将被优先执行。如果有更髙优先级的任务进入了就绪状态,则系统内核将立刻将当前正在执行的任务的上下文保存的任务控制块中,并从任务控制块中取出更高优先级的任务的上下文。此算法保证了具有更高优先级的任务被执行,但当多个相同优先级的任务需要共享一台处理器时将可能会导致有些任务一直不能被执行。如果某个执行的任务永不阻塞,那么它将一直独占CPU,其它相同优先级的任务就没有机会执行。可以采用轮转式调度算法解决这一问题。2)轮转式调度算法轮转式调度算法为每个具有相同优先级且处于就绪状态的任务

6、分配一个相同的时间片去运行。可以通过调用函数kernelTimeSlice()来设置时间片的长度。3)抢占上锁在有些情况下,一个低优先级的任务中的某段代码须连续执行完毕,即执行这段代码时不允许其它任务抢占,可以通过调用函数taskLock()来禁止使用调度程序,等到该段代码执行完毕后调用函数taskUnlock()启用调度程序。2.3任务控制3任务间通信VxWorks提供了一套多样的任务间通信方式,包括:1)共享内存,主要是数据的简单共享。2)信号量,用于基本的互斥和任务同步。3)消息队列和管道,单CPU的消息传递。4)Socket和远程过程调用,用于网络任务消息

7、传送。5)信号,用于异常处理。实践中最常用的通信方式是信号量。信号量占用系统资源最少,是最快的任务间通信机制,也是解决任务间的互斥和同步的最主要的手段。VxWorks提供了三种类型的信号量:1)二进制信号量:使用得最多、最广,主要用于任务的同步和互斥;2)互斥信号量:主要用于解决优先级继承、互斥问题、安全删除和回溯;3)计数器信号量:用于资源的数目较多的情况。二进制信号量能有效的对共享资源的访问进行互锁,来实现互斥,初始信号量为可用;当信号量用于同步时,等待信号量可用作任务继续执行的一个条件,信号量初始设为不可用,其它任务或中断服务程序通过释放信号量来表明本任务继

8、续执行的条

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

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

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