没有合适的资源?快使用搜索试试~ 我知道了~
VxWorks操作系统指南
5星 · 超过95%的资源 需积分: 9 8 下载量 23 浏览量
2011-11-08
11:22:23
上传
评论 1
收藏 768KB PDF 举报
温馨提示
试读
79页
VxWorks 是美国 Wind River System 公司推出的一个实时操作系统。WRS公司组建于1981年,是一个专门从事实时操作系统开发与生产的软件公司,该公司在实时操作系统领域被世界公认为是最具有领导作用的公司。1984年 WRS 公司推出它的第一个版本--VxWorks 1.0.1,在1997年推出了它的最新版本VxWorks 5.3.1。
资源推荐
资源详情
资源评论
目
录
63
2.7.应用示例分析
.................................................................
61
2.5.应用软件开发指导
.............................................................
61
2.4.VxWorks系统任务
.............................................................
60
2.3.板级支持包BSP
...............................................................
57
2.2.应用系统配置
.................................................................
55
2.1.系统启动
.....................................................................
54
2.VxWorks应用指导
.................................................................
51
1.9.网络通信
.....................................................................
51
1.8.POSIX Memory-locking接口
.....................................................
50
1.7. POSIX 时钟和定时器
..........................................................
49
1.6.看门狗定时器(Watchdog Timers)
................................................
46
1.5.中断服务代码
.................................................................
18
1.4.任务间通信
...................................................................
5
1.3.任务
..........................................................................
5
1.2.VxWorks操作系统内核
...........................................................
4
1.1.VxWorks操作系统简介
...........................................................
4
1.VxWorks操作系统介绍
...............................................................
关键词:RTOS POSIX VxWorks Tornado
摘 要:本文档对实时操作系统作了简要介绍,并详细描述了Vxworks内核和运行环境的基本原理,
并概述了系统配置、系统接口等方面的内容。
1.VxWorks操作系统介绍
1.1.VxWorks操作系统简介
现代的实时操作系统主要增加了支持多任务和任务间通信的概念。多任务环境允许一个实时应用
作为一个独立的任务创建。在VxWorks里,任务间通信机制依靠信号量,消息队列,管道及
socket(实现网络透明传输)实现。
实时操作系统的另外一个主要功能就是硬中断处理。为使中断得到尽快响应,VxWorks的中断服
务程序(ISRs)有自己单独的context,它与其他任务的context不在一起。
本文主要讨论了多任务内核,任务机制(facilities),任务间通信及中断处理机制,这些都是
VxWorks运行环境的核心内容。
VxWorks操作系统的基本构成模块包括以下部分:
Ÿ 高效的实时内核Wind
VxWOrks实时内核(Wind)主要包括基于优先级的任务调度、任务同步和通信、中断处理、定时
器和内存管理。
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Ÿ 兼容实时系统标准POSIX
VxWOrks提供接口来支持实时系统标准P.1003.1b.
Ÿ I/O系统
VxWOrks提供快速灵活的与ANSI-C相兼容的I/O系统,包括UNIX的缓冲I/O和实时系统标准
POSIX的异步I/O。VxWOrks包括以下驱动:
网络 --- 网络设备(以太网、共享内存)
管道 --- 任务间通信
RAM--- 驻留内存文件
SCSI---SCSI硬盘,磁碟,磁带
键盘 ---PC x86键盘(BSP仅支持x86)
显示器 ---PC x86显示器(BSP仅支持x86)
磁碟 ---IDE和软盘(BSP仅支持x86)
并口 ---PC格式的目标硬件
Ÿ 本机文件系统
VxWorks的文件系统与MS-DOS、RT-11、RAM、SCSI等相兼容。
Ÿ 网络特性
VxWorks网络能与许多运行其它协议的网络进行通信,如TCP/IP、4.3BSD、NFS、UDP、
SNMP、FTP等。VxWorks可通过网络允许任务存取文件到其它系统中,并对任务进行远程调用。
Ÿ 虚拟内存(可选单元VxVMI)
VxVMI主要用于对指定内存区的保护,如内存块只读等,加强了系统的健壮性。
Ÿ 共享内存(可选单元VxMP)
VxMP主要用于多处理器上运行的任务之间的共享信号量、消息队列、内存块的管理。
Ÿ 驻留目标工具
Tornado集成环境中,开发工具工作于主机侧。驻留目标外壳、模块加载和卸载、符号表都可进行
配置。
Ÿ Wind基类
VxWorks系统提供对C++的支持,并构造了系统基类函数。
Ÿ 工具库
VxWorks系统向用户提供丰富的系统调用,包括中断处理、定时器、消息注册、内存分配、字符
串转换、线性和环形缓冲区管理,以及标准ANSI-C程序库。
Ÿ 性能优化
VxWorks系统通过运行定时器来记录任务对CPU的利用率,从而进行有效地调整,合理安排任务
的运行,给定适宜的任务属性。
Ÿ 目标代理
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
目标代理可使用户远程调试应用程序。
Ÿ 板级支持包
板级支持包提供硬件的初始化、中断建立、定时器、内存映象等。
Ÿ VxWorks仿真器(VxSim)
可选产品VxWorks仿真器,能模拟VxWorks目标机的运行,用于应用系统的分析。
1.2.VxWorks操作系统内核
VxWorks内核(wind)的基本功能可以分为如下几大类:
u 任务
u 任务间通信
u 中断服务程序
u 定时器服务(watchdog timers)
u POSIX时钟和定时器
u POSIX Memory-Locking 接口
在以下各节中将对VxWorks内核的各类功能分别进行了比较详细的描述。
1.3.任务
在VxWorks中,任务共享大多数系统资源,所以必须提供足够的隔离使它们能各自独立运行。任
务是代码运行的一个映象,从系统角度看,任务是竞争系统资源的最小运行单元。任务可以使用
或等待CPU、I/O设备及内存空间等系统资源,并独立于其它任务,与它们一起并发运行。同时有
独立的上下文来控制个别线程的执行。
1.3.1.任务结构
实际应用中多任务能更好的对客观世界的事件作出反应。VxWorks实时内核 — wind,提供了基本
的多任务环境。每个任务都有自己的上下文(context),记录了任务运行时的的CPU环境和系统资源
状况,context切换时,它被保存在任务控制块中(TCB),以备下次调用时恢复运行环境。
context包括: 任务号,CPU寄存器和(任选)浮点寄存器,可变栈及函数调用,标准输入输出,
延迟时间,时间片大小,内核控制结构,信号处理函数(signal handlers),调试和性能监测。
1.3.2.任务状态和状态迁移
实时系统最基本的状态有以下四种:(见Figure2-1状态迁移图)
就绪态:(ready)任务只等待系统分配CPU资源
阻塞态:(pended)任务需等待某些资源而被阻塞
挂起态:(suspended)任务不能运行状态,一般在调试时出现此状态。不影响状态迁移只影响任务
运行(
延迟态:(delayed)任务被延迟时所处状态
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Edited by Foxit Reader
Copyright(C) by Foxit Software Company,2005-2006
For Evaluation Only.
-----------------------------------------------------------------------------------------
kernelTimeSlice() Control round-robin scheduling
taskPrioritySet() Change the priority of a task
taskLock() Disable task rescheduling
taskUnlock() Enable task rescheduling
------------------------------------------------------------------------------------------
1.3.3.1.优先级抢占方式
抢占允许/禁止:如果任务设置了抢占允许位,当此任务处于运行态时,如有一高优先级任务因某
个系统调用由阻塞态或挂起态迁移为就绪态,则此高优先级任务会立即抢占当前任务的运行;如
设为抢占禁止,则当前任务不可被处于就绪态的高优先级任务所抢占,继续运行到阻塞、挂起或
改变了抢占设置为止。wind内核有256个优先等级,从0---255。0的优先级最高,255最低。任务在
创建的时候被分配一个优先级。在程序运行中,可以通过taskPrioritySet()来改变任务的优先级。
1.3.3.2.轮转方式
为防止在同优先级的一组任务中,某任务一直占有CPU而使其他任务无法得到CPU资源,采用了
类似于时间片轮转的方式。某个任务在它的时间片用完后如果有其它同等级任务在就绪队列中,
该任务必须让出CPU控制权,如果该任务用完它的时间片后没有同优先级任务在就绪队列中,则
它可以继续运行。为任务分配时间片用kernelTimeSlice()函数,它有一个参数来决定任务执行多长
时间后需要将处理器让给其它同优先级任务,同时该任务被放到同优先级队列的队尾。每个任务
有一个定时器来监视任务运行的时间,如果时间片还没有用完的时候有高优先级任务抢占了
CPU,则定时器将该任务当前所用的时间记录下来,等高优先级任务执行完后接着让其执行完剩
余的时间。
1.3.3.3.优先级锁(任务锁定)
当某任务调用taskLock()后,禁止任何任务在它运行的时候抢占CPU控制权。如果加锁的任务阻塞
或挂起,则调度会选择就绪队列中最高优先级的任务执行,当该加锁任务去阻塞并开始执行后,
它又处于不可被抢占地位。注意:给任务加锁是防止其它任务抢占CPU而不是防止中断抢占。
taskUnlock()使任务又成为可被抢占方式。
1.3.4.任务控制
下面给出VxWorks任务程序,这些程序可以在VxWorks库taskLib中找到,包括:任务创建,控制
和信息。你可以通过host-resident shell控制VxWorks任务。
任务创建和激活
Table 2-3 任务创建函数
-------------------------------------------------------------------------------------
CALL Description
PDF created with FinePrint pdfFactory Pro trial version http://www.fineprint.com
Edited by Foxit Reader
Copyright(C) by Foxit Software Company,2005-2006
For Evaluation Only.
剩余78页未读,继续阅读
资源评论
- 还释2014-04-15资源很好,值得借鉴
- frank19152014-09-05资源很好,值得借鉴
weiyajun120
- 粉丝: 0
- 资源: 9
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功