VxWorks操作系统及实时多任务程序设计.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《VxWorks操作系统及实时多任务程序设计.doc》由会员分享,可在线阅读,更多相关《VxWorks操作系统及实时多任务程序设计.doc(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、VxWorks 操作系统及实时多任务程序设计刘尉悦 张万生 邢涛 王砚方(中国科技大学近代物理系,合肥, 230027摘要 :数字式声纳系统需要实时的显示其搜索、 跟踪结果, 同时对用户命令作出及时的响应, 并实时控制前端的硬件。本文介绍基于 VxWorks 实时操作系统与 X 窗口系统的显示及控制 程序设计。着重介绍本系统中基于 VxWorks 的实时多任务程序设计。关键词:实时,实时操作系统, VxWorks , X-Window一. 系 统概况本系统运行于 VME 总线系统 (MVME177上, 通过 VME 背板总线与各模件交换数据对 各处理模件进展控制并把信号处理结果显示。 MVME
2、177模件运行于嵌入式实时操作系统 VxWorks 下,人机交互界面基于 X 窗口系统。二. 嵌 入式实时操作系统 VxWorks 简介由于声纳系统在探测到某些目标后 (例如鱼雷 要迅速作出反响, 所以要求控制及显示 系统必须是实时操作系统。 实时操作系统, 要求能够随时打断正在执行的任务, 对内部与外 部发生的事件在确定的时间内作出响应。本系统采用的 VxWorks 是由美国 WindRiver 开发 的一种类 UNIX 的高性能嵌入式实时操作系统。 它是目前世界上用户数量最大的实时操作系 统。具有优越的技术性能、丰富的应用软件支持、良好的技术效劳与可靠的系统稳定性。 VxWorks 的主要
3、性能特点有:1.高度可剪裁的微内核构造 VxWorks 的 所 需 要 的 存 储 器 空 间 大 约 为 8KB488KB(ROM、 620KB29.3KB(RAM,具有极好的可伸缩性。2.高效的多任务调度 VxWorks 支持中断驱动的优先级抢占式调度与时间片轮转调度, 并具有确定的、快速的上下文切换能力。3.灵活的任务间通讯手段 支持信号灯、消息队列、管道、信号与套接字等进程间通 讯与互斥手段。4.支持诸如 Ring buffer、 Link list 等共享内存技术。5.确定的、微秒级的中断延迟时间。6.适用于多种物理介质的 TCP/IP协议族支持与几乎所有常用的基于 TCP/IP协议
4、的应 用层协议。7.极其丰富的板级支持软件包(BSP , 支持多种处理器板。8.支持 POSIX 1003.1b (实时扩大 。9.快速、灵活的 I/O系统。10.支持 MS-DOS 、 RT-11与 RAW 等文件系统与网络文件系统 (NFS。11.灵活的启动方法,支持从 ROM 、本地磁盘以及网络启动。三. VxWorks 的一些技术特点VxWorks 的特点主要在于嵌入式与实时性。由于嵌入式的特点,系统内核只有任务管 理与简单的内存管理, 在此之上可以根据需要配置各种功能模块, 包括网络管理、 文件系统、 虚拟存储器等等。 实时性那么表达在实时调度算法与实时内核 (高效的进程间通讯、 内
5、存管理等 。VxWorks支持 POSIX 标准, 所以 POSIX 的概念与接口以及一些策略都被支持, 但为了 提高系统性能, VxWorks 另有一套接口及实现策略称为 wind 内核,下面的讨论主要是针对 wind 内核而言的, POSIX 标准可以参见相关资料。h 任务在 VxWorks 中, 最小的程序运行单位称为任务 (Task。 每个任务包含有一段固定的代码 与数据空间,操作系统内核通过任务控制块(Task Control Block对它的执行、通讯、资源 等情况进展控制。任务具有就绪、阻塞、挂起与延迟等状态。与 Linux 与 WindowsNT 下的进程不同的是:在 VxWo
6、rks 中, 所有任务共同享有物理内 存,存在于统一的线性空间中,每个任务没有自己独立的代码段与堆,只有独立的动态栈, 任务中的地址即是真正的物理地址。 由于不需要进展地址空间映射, 在任务切换时的上下文 切换 (Context Switch时间大为减少, 符合实时操作系统要求快速响应的原那么。 从这个意义上 来说, VxWorks 的任务更接近 Linux 与 WindowsNT 下的线程 (Thread。VxWorks 的代码段与堆共享减少了上下文切换时间,却带来了共享代码的可重入性 (Reentrancy问题。如一个函数被两个任务所调用,当其中包含对全局、静态变量等从堆中 分配空间的数据
7、进展访问时, 就有可能产生冲突, 从而引发错误。 在应用软件开发时要加以 注意,解决方法是使用局部变量(从栈中分配空间或使用信号灯对临界代码进展监控。h 任务调度VxWorks 有两种任务调度策略,优先级抢先调度与时间片轮转调度。这两种调度策略都是系统级的,与 POSIX 进程级的调度策略不同。即整个系统里要么是优先级 抢先调度,要么是时间片轮转调度;而 POSIX 标准下可以每个进程使用自己的调度策略。 系统共有 256个优先级。优先级抢先调度指的是一个优先级较低的任务正在执行中,另一个优先高的任务进入就绪状态, 那么马上进展处理器抢先, 执行高优先级任务。 直到高优先级释放处理 器(完成、
8、挂起、阻塞 才继续执行低优先级任务。优 先级抢先调度可以保证实时系统的迅速响应特性, 但是也带来一个问题:当系统中存 在几个一样优先级的任务时, 就会使单一任务独占处理器直至完成。 所以参加了基于优先级 的时间片轮转调度方式。 在不同优先级的任务间以抢先方式调度, 一样优先级的任务那么以时 间片进展轮转。h 存储管理在根本的 wind 内核中,任务直接操作线性物理内存,不存在虚拟存储等复杂的存储管 理策略,这主要是从性能来考虑的。不过 VxWorks 也提供支持 POSIX 标准的虚拟存储区与 共享内存(多处理器间共享组件。h 任务间通讯在任务间传递控制信息时,通讯量小, wind 内核支持各
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VxWorks 操作系统 实时 任务 程序设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内