首页 VxWorks操作系统及实时多任务程序设计

VxWorks操作系统及实时多任务程序设计

举报
开通vip

VxWorks操作系统及实时多任务程序设计VxWorks操作系统及实时多任务程序设计VxWorks操作系统及实时多任务程序设计PAGE/NUMPAGESVxWorks操作系统及实时多任务程序设计VxWorks操作系统及实时多任务程序设计刘尉悦张万生邢涛王砚方(中国科技大学近代物理系,合肥,230027摘要:数字式声纳系统需要实时的显示其搜索、跟踪结果,同时对用户命令作出及时的响应,并实时控制前端的硬件。本文介绍基于VxWorks实时操作系统和X窗口系统的显示及控制程序设计。着重介绍本系统中基于VxWorks的实时多任务程序设计。关键词:实时,实...

VxWorks操作系统及实时多任务程序设计
VxWorks操作系统及实时多任务程序设计VxWorks操作系统及实时多任务程序设计PAGE/NUMPAGESVxWorks操作系统及实时多任务程序设计VxWorks操作系统及实时多任务程序设计刘尉悦张万生邢涛王砚方(中国科技大学近代物理系,合肥,230027摘要:数字式声纳系统需要实时的显示其搜索、跟踪结果,同时对用户命令作出及时的响应,并实时控制前端的硬件。本文介绍基于VxWorks实时操作系统和X窗口系统的显示及控制程序设计。着重介绍本系统中基于VxWorks的实时多任务程序设计。关键词:实时,实时操作系统,VxWorks,X-Window一.系统概况本系统运行于VME总线系统(MVME177上,通过VME背板总线与各模件交换数据对各处理模件进行控制并把信号处理结果显示。MVME177模件运行于嵌入式实时操作系统VxWorks下,人机交互界面基于X窗口系统。二.嵌入式实时操作系统VxWorks简介由于声纳系统在探测到某些目标后(例如鱼雷要迅速作出反应,所以要求控制及显示系统必须是实时操作系统。实时操作系统,要求能够随时打断正在执行的任务,对内部和外部发生的事件在确定的时间内作出响应。本系统采用的VxWorks是由美国WindRiver开发的一种类UNIX的高性能嵌入式实时操作系统。它是目前世界上用户数量最大的实时操作系统。具有优越的技术性能、丰富的应用软件支持、良好的技术服务和可靠的系统稳定性。VxWorks的主要性能特点有:1.高度可剪裁的微内核结构VxWorks的所需要的存储器空间大约为8KB~488KB(ROM、620KB~29.3KB(RAM,具有极好的可伸缩性。2.高效的多任务调度VxWorks支持中断驱动的优先级抢占式调度和时间片轮转调度,并具有确定的、快速的上下文切换能力。3.灵活的任务间通讯手段支持信号灯、消息队列、管道、信号和套接字等进程间通讯和互斥手段。4.支持诸如Ringbuffer、Linklist等共享内存技术。5.确定的、微秒级的中断延迟时间。6.适用于多种物理介质的TCP/IP 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 族支持和几乎所有常用的基于TCP/IP协议的应用层协议。7.极其丰富的板级支持软件包(BSP,支持多种处理器板。8.支持POSIX1003.1b(实时扩充。9.快速、灵活的I/O系统。10.支持MS-DOS、RT-11和RAW等文件系统和网络文件系统(NFS。11.灵活的启动方法,支持从ROM、本地磁盘以及网络启动。三.VxWorks的一些技术特点VxWorks的特点主要在于嵌入式和实时性。由于嵌入式的特点,系统内核只有任务管理和简单的内存管理,在此之上可以根据需要配置各种功能模块,包括网络管理、文件系统、虚拟存储器等等。实时性则体现在实时调度算法和实时内核(高效的进程间通讯、内存管理等。VxWorks支持POSIX标准,所以POSIX的概念和接口以及一些策略都被支持,但为了提高系统性能,VxWorks另有一套接口及实现策略称为wind内核,下面的讨论主要是针对wind内核而言的,POSIX标准可以参见相关资料。h任务在VxWorks中,最小的程序运行单位称为任务(Task。每个任务包含有一段固定的代码和数据空间,操作系统内核通过任务控制块(TaskControlBlock对它的执行、通讯、资源等情况进行控制。任务具有就绪、阻塞、挂起和延迟等状态。与Linux和WindowsNT下的进程不同的是:在VxWorks中,所有任务共同享有物理内存,存在于统一的线性空间中,每个任务没有自己独立的代码段和堆,只有独立的动态栈,任务中的地址即是真正的物理地址。由于不需要进行地址空间映射,在任务切换时的上下文切换(ContextSwitch时间大为减少,符合实时操作系统要求快速响应的原则。从这个意义上来说,VxWorks的任务更接近Linux和WindowsNT下的线程(Thread。VxWorks的代码段与堆共享减少了上下文切换时间,却带来了共享代码的可重入性(Reentrancy问 快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题 。如一个函数被两个任务所调用,当其中包含对全局、静态变量等从堆中分配空间的数据进行访问时,就有可能产生冲突,从而引发错误。在应用软件开发时要加以注意,解决方法是使用局部变量(从栈中分配空间或使用信号灯对临界代码进行监控。h任务调度VxWorks有两种任务调度策略,优先级抢先调度和时间片轮转调度。这两种调度策略都是系统级的,与POSIX进程级的调度策略不同。即整个系统里要么是优先级抢先调度,要么是时间片轮转调度;而POSIX标准下可以每个进程使用自己的调度策略。系统共有256个优先级。优先级抢先调度指的是一个优先级较低的任务正在执行中,另一个优先高的任务进入就绪状态,则马上进行处理器抢先,执行高优先级任务。直到高优先级释放处理器(完成、挂起、阻塞…才继续执行低优先级任务。优先级抢先调度可以保证实时系统的迅速响应特性,但是也带来一个问题:当系统中存在几个相同优先级的任务时,就会使单一任务独占处理器直至完成。所以加入了基于优先级的时间片轮转调度方式。在不同优先级的任务间以抢先方式调度,相同优先级的任务则以时间片进行轮转。h存储管理在基本的wind内核中,任务直接操作线性物理内存,不存在虚拟存储等复杂的存储管理策略,这主要是从性能来考虑的。不过VxWorks也提供支持POSIX标准的虚拟存储区和共享内存(多处理器间共享组件。h任务间通讯在任务间传递控制信息时,通讯量小,wind内核支持各种UNIX的通用手段:信号灯(semaphore、消息队列(MessageQueue、管道(Pipe、信号(Signal、套接字(Socket。信号灯主要用于对临界资源访问的同步和互斥;消息队列多用于消息驱动机制;管道是基于文件系统实现的任务间按先进先出方式传送数据的通讯方式;信号相当于软中断;套接字机制主要用于网络通讯。当任务间需要大量交换数据时,由于VxWorks直接操作物理内存,可以直接访问全局存储区,不需要特别的手段,与Linux下的共享存储段申请和WindowsNT中的存储映射文件方式不同。h中断在VxWorks下,所有中断服务程序都不属于任何一个任务,并且使用同一个栈进行数据存储,则中断将不会引起上下文切换,以实现高效的中断响应。中断与各任务之间可以通过前面所述的各种手段进行通讯,但要注意对中断服务程序有一些限制,例如不能进行可能导致阻塞的资源申请等等。h文件系统VxWorks支持多种本地文件系统:MS_DosFS、RawFS和RT-11FS,用户可根据具体配置选择;还支持网络文件系统NFS,可以没有局域文件系统。h网络支持Vxworks支持多种物理介质的TCP/IP协议族和几乎所有常用的基于TCP/IP协议的应用层协议如ARP、BOOTP、SLIP和FTP,甚至其启动就是通过BOOTP或FTP方式取得系统映象文件。以上简单介绍了一些VxWorks的技术特点,要注意这些特点都是跟VxWorks的特性——实时性与嵌入式密切相关的。四.X窗口系统本系统采用美国Peritek公司的VCL-V图形控制器插件进行显示输出和输入控制,户户界面基于X-Window。X客户程序的开发选用美国SeaWeed公司的SeaWindM软件。X是美国麻省理工学院(MIT研制的一个可移植的网络透明的窗口系统。它具有设备独立性和网络透明性的特点,即基于X开发的应用程序不需要重写或重新编译就可以在新的显示硬件上执行,并且在网络环境下用户通过X可在网络任一节点上运行X的应用程序而不必考虑该节点的物理位置。五.显示与控制系统的具体实现本系统的功能主要是初始化各处理模件、根据输入命令对各处理模件进行控制和对处理结果的实时显示,这些都是通过与相应子系统的数据通信来完成的。对通信数据和策略的 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 是系统设计的关键。系统与其它子系统中存在着这样几类通信数据:与前端模拟子系统的控制信息与数据、与数字信号处理子系统相关的控制信息和数据、发射信号控制信息、显示数据以及从键盘和鼠标获得的输入信息。这几类数据都是通过VME背板总线传输,通过对VME地址空间直接读写进行访问。其中由数字信号处理子系统送来的数据是由数据更新事件驱动,为了满足实时性的要求,需要在每组结果数据更新之前完成通信,因此处理的优先级需要很高。基于上面的考虑,系统划分为四个任务:系统监控、显示与输入、子模件控制和错误处理。这些任务都设计为事件驱动 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 ,如图一示。图一各任务流程框图系统监控----提交和监控其它子任务。显示与输入----实时显示信号处理结果和产生输入消息。子模件控制----向各子模件发送控制参数和计算数据,由输入消息驱动。错误处理----根据错误类型进行相应处理:显示错误信息、重启动各模件、中止系统,由出错消息驱动。信号处理结果读取在显示和输入任务中完成,其驱动事件为处理结果更新。在被动声纳处理中,短时间能量积累的结果每64ms更新一次,平均功率谱结果每1.5s更新一次;主动声纳处理的幅度信息数据率为1.3K/S,频域处理结果更新率为5-10次/秒。如果由信号处理模件在数据更新后向MVME177发送中断事件的话,由于数据更新率差别较大,可能造成瞬间中断频繁,增加处理复杂度。所以采用定时中断,使用间隔为50ms的定时中断去检查数据更新标志,既能保证实时数据刷新又能简化处理结构。各任务间的大批量数据传输利用VxWorks的共享内存直接访问,而传递控制消息多采用消息队列(MessageQueue。在显示和输入任务中由两类驱动事件:键盘、鼠标输入和显示数据更新,显示刷新的优先级应该高于人工输入,所以在这里使用了信号(Signal。当任务接捕获信号时,立即中断正在执行的流程,转而进行信号服务处理,完成后继续原处理流程,可以保证显示的实时刷新各任务之间的通讯机制是由四个消息队列,一个定时中断和一个信号完成:消息队列SystemMsg:包括系统开机、系统关机、系统复位、系统重启等,由错误处理任务和用户键盘输入产生,由系统监控任务接收。消息队列ParamModifyMsg:包括更改前端硬件参数、DSP参数等,由用户键盘输入产生,由子模件控制任务接收。消息队列ErrorMsg:定义了各种错误类型,由各任务的出错接口产生,由错误处理任务接收。图二各任务优先级和消息传递示意图X消息队列由显示和输入任务接收(被SeaWindM软件包封装。定时中断:由系统监控任务启动和停止,读取DSP处理结果。信号处理:由显示和输入任务注册,定时中断发送信号,接收到后进行数据显示。系统定义全局变量System_Data,其数据类型为自定义的System_Data_Struct结构,通过System_Data实现任务间的数据交换。六.结语以上介绍了数字式声纳的显控系统的设计。基于VxWorks的多任务设计使系统的实时性和稳定性都非常好。目前该显控系统已通过测试,达到了系统的设计要求。ControlAndDisplaySystemDesignOnDigitalSonarLiuWeiyue,ZhangWansheng,XingTao,WangYanfang(UniversityofScienceandTechnologyofChina,Heifei,230027AbstractThispaperintroducesrealtimecontrolanddisplaysystemdesignondigitalsonarsystem,andmulti-taskprogrammingonVxWorksisdiscussed.Keywords:realtime,realtimeoperatingsystem,VxWorks,X-Window
本文档为【VxWorks操作系统及实时多任务程序设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_072127
暂无简介~
格式:doc
大小:52KB
软件:Word
页数:8
分类:建筑/施工
上传时间:2018-05-18
浏览量:0