VxWorks操作系统概述

2020-04-16 10:43

VxWorks操作系统概述(1) 无忧电子开发网

VxWorks操作系统概述(1)

1. VxWorks操作系统概述 1.1. VxWorks 操作系统简介

实时多任务操作系统是能在确定的时间内执行其功能,并对外部的异步事件作出响应的计算机系统。多任务环境允许一个实时应用作为一系列独立任务来运行,各任务有各自的线程和系统资源。VxWorks系统提供多处理器间和任务间高效的信号灯、消息队列、管道、网络透明的套接字。 实时系统的另一关键特性是硬件中断处理。为了获得最快速可靠的中断响应,VxWorks系统的中断服务程序ISR有自己的上下文。

VxWorks实时操作系统由400多个相对独立的、短小精炼的目标模块组成,用户可根据需要选择适当模块来裁剪和配置系统,这有效地保证了系统的安全性和可靠性。系统的链接器可按应用的需要自动链接一些目标模块。这样,通过目标模块之间的按需组合,可得到许多满足功能需求的应用。

VxWorks操作系统的基本构成模块包括以下部分: ? ·高效的实时内核Wind

VxWOrks实时内核(Wind)主要包括基于优先级的任务调度、任务同步和通信、中断处理、定时器和内存管理。 ? ·兼容实时系统标准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格式的目标硬件 ?· 本机文件系统 ? ·I/O系统

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的利用率,从而进行有效地调整,合理安排任务的运行,给定适宜的任务属性。 ? ·目标代理

目标代理可使用户远程调试应用程序。 ? ·板级支持包

板级支持包提供硬件的初始化、中断建立、定时器、内存映象等。 ? ·VxWorks仿真器(VxSim)

可选产品VxWorks仿真器,能模拟VxWorks目标机的运行,用于应用系统的分析。

原文网址: http://www.51kaifa.com/html/zxyd/200511/read_z-261-1491.htm

VxWorks操作系统概述(2) 无忧电子开发网

VxWorks操作系统概述(2)

1.2. VxWorks操作系统内核

VxWorks内核(wind)的基本功能可以分为如下几大类: · 任务管理;

# 事件和异步信号服务; · 信号量服务; · 消息队列服务; ·内存管理; · 中断服务程序;

· 时钟管理和定时器服务; · 出错处理。

在以下各节中将对VxWorks内核的各类功能分别进行描述。

原文网址: http://www.51kaifa.com/html/zxyd/200511/read_z-261-1492.htm

VxWorks操作系统概述(3) 无忧电子开发网

VxWorks操作系统概述(3)

1.3. 任务管理

任务是代码运行的一个映象,从系统的角度看,任务是竞争系统资源的最小运行单元。

任务可以使用或等待CPU、I/O设备及内存空间等系统资源,并独立于其它任务,与它们一起并发运行(宏观上如此)。VxWorks内核使任务能快速共享系统的绝大部分资源,同时有独立的上下文来控制个别线程的执行。 1.3.1. 任务结构

多任务设计能随时打断正在执行着的任务,对内部和外部发生的事件在确定的时间里作出响应。VxWorks实时内核Wind提供了基本的多任务环境。从表面上来看,多个任务正在同时执行,实际上,系统内核根据某一调度策略让它们交替运行。系统调度器使用任务控制块的数据结构(简记为TCB)来管理任务调度功能。任务控制块用来描述一个任务,每一任务都与一个TCB关联。TCB包括了任务的当前状态、优先级、要等待的事件或资源、任务程序码的起始地址、初始堆栈指针等信息。调度器在任务最初被激活时以及从休眠态重新被激活时,要用到这些信息。

此外,TCB还被用来存放任务的\上下文\(context)。任务的上下文就是当一个执行中的任务被停止时,所要保存的所有信息。在任务被重新执行时,必须要恢复上下文。通常,上下文就是计算机当前的状态,也即各个寄存器的内容。如同在发生中断所要保存的内容一样。当发生任务切换时,当前运行的任务的上下文被存入TCB,将要被执行的任务的上下文从它的TCB中取出,放入各个寄存器中。于是转而执行这个任务,执行的起点是前次它在运行时被中止的位置。

VxWorks中,内存地址空间不是任务上下文的一部分。所有的代码运行在同一地址空间。如每一任务需各自的内存空间,需可选产品VxVMI的支持。 1.3.2. 任务状态和状态迁移

实时系统的一个任务可有多种状态,其中最基本的状态有四种: 就绪态:任务只等待系统分配CPU资源;

悬置态:任务需等待某些不可利用的资源而被阻塞;

休眠态:如果系统不需要某一个任务工作,则这个任务处于休眠状态; 延迟态:任务被延迟时所处状态;

当系统函数对某一任务进行操作时,任务从一种状态迁移到另一状态。处于任一状态的任务都可被删除。

状态迁移 调用 就绪态 ----> 悬置态 semTake()/msgQReceive() 就绪态 ----> 延迟态 taskDelay() 就绪态 ----> 休眠态 taskSuspend() 悬置态 ----> 就绪态 semGive()/msgQSend() 悬置态 ----> 休眠态 taskSuspend() 延迟态 ----> 就绪态 expired delay 延迟态 ----> 休眠态 taskSuspend()

休眠态 ----> 就绪态 taskResume()/taskActivate() 休眠态 ----> 悬置态 taskResume() 休眠态 ----> 延迟态 taskResume()

1.3.3. 任务调度策略

多任务调度须采用一种调度算法来分配CPU给就绪态任务。Wind内核采用基于优先级的抢占式调度法作为它的缺省策略,同时它也提供了轮转调度法。

基于优先级的抢占式调度,它具有很多优点。这种调度方法为每个任务指定不同的优先级。没有处于悬置或休眠态的最高优先级任务将一直运行下去。当更高优先级的任务由就绪态进入运行时,系统内核立即保存当前任务的上下文,切换到更高优先级的任务。 多任务调度须采用一种调度算法来分配CPU给就绪态任务。Wind内核采用基于优先级的抢占式调度法作为它的缺省策略,同时它也提供了轮转调度法。

基于优先级的抢占式调度,它具有很多优点。这种调度方法为每个任务指定不同的优先


VxWorks操作系统概述.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2017年江苏高考志愿填报指南

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: