实时控制软件设计第三周做业-1

 

VxWorks编程

VxWorks操做系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操做系统(RTOS),是嵌入式开发环境的关键组成部分。良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时操做系统领域占据一席之地。它以其良好的可靠性和卓越的实时性被普遍地应用在通讯、军事、航空、航天等高精尖技术及实时性要求极高的领域中。网络

内核:异步

l  多任务调度(采用基于优先级抢占方式,同时支持同优先级任务间的分时间片调度)分布式

l  任务间的同步工具

l  进程间通讯机制性能

l  中断处理操作系统

l  定时器和内存管理机制线程

I/O 系统:设计

VxWorks 提供了一个快速灵活的与 ANSI C 兼容的 I/O 系统,包括 UNIX 标准以及POSIX 标准的异步 I/O。VxWorks 包括如下驱动程序:网络驱动、管道驱动、RAM盘驱动、SCSI驱动、键盘驱动、显示驱动、磁盘驱动、并口驱动等 。代理

文件系统:

支持四种文件系统:dosFs,rt11Fs,rawFs 和 tapeFs;支持在一个单独的 VxWorks 系统上同时并存几个不一样的文件系统。

板级支持包

板级支持包向VxWorks操做系统提供了对各类板子的硬件功能操做的统一的软件接口,它是保证VxWorks操做系统可移植性的关键,它包括硬件初始化、中断的产生和处理、硬件时钟和计时器管理、局域和总线内存地址映射、内存分配等等。每一个板级支持包包括一个 ROM 启动(Boot ROM)或其它启动机制。

网络支持:

它提供了对其它VxWorks系统和TCP/IP网络系统的"透明"访问,包括与BSD套接字兼容的编程接口,远程过程调用(RPC),SNMP(可选项),远程文件访问(包括客户端和服务端的NFS机制以及使用RSH,FTP 或 TFTP的非NFS机制)以及BOOTP 和代理ARP、DHCP、DNS、OSPF、RIP。不管是松耦合的串行线路、标准的以太网链接仍是紧耦合的利用共享内存的背板总线,全部的 VxWorks 网络机制都遵循标准的 Internet 协议。

QNX

QNX是一种商用的听从POSIX规范的类Unix实时操做系统,目标市场主要是面向嵌入式系统。它多是最成功的微内核操做系统之一。是一个分布式、嵌入式、可规模扩展的硬实时操做系统。它遵循POSⅨ.1 (程序接口)和POSⅨ.2 (Shell和工具)、部分遵循POSⅨ.1b(实时扩展)。其核心仅提供4种服务:进程调度、进程间通讯、底层网络通讯和中断处理,其进程在独立的地址空间运行。全部其它OS服务,都实现为协做的用户进程,所以QNX核心很是小巧(QNX4.x大约为12Kb)并且运行速度极快

QNX 提供POSⅨ.1b标准进程调度:具备255个进程优先级;支持抢占式的、基于优先级的正文切换;可选调度策略:FIFO、轮转策略、适应性策略。

它具备独一无二的微内核实时平台,创建在微内核和彻底地址空间保护基础之上,实时、稳定、可靠,已经完成到PowerPC、MIPS、ARM等内核的移植,成为在国内普遍应用的嵌入式实时操做系统。虽然QNX自己并不属于UNIX,但因为其提供了POSIX的支持,使得多数传统UNIX程序在微量修改(甚至不需修改)后便可在QNX上面编译与运行。

QNX的微内核结构,内核独立自处于一个被保护的地址空间;驱动程序、网络协议和应用程序处于程序空间中。

微内核结构的优势:①驱动程序、网络协议、文件系统等操做系统模块和内核相互独立,任何模块的故障都不会致使内核的崩溃;②驱动程序、网络协议、文件系统和应用程序都处于程序空间,都调用相同的内核API,开发与调试和应用程序没有区别;③操做系统功能模块能够根据须要动态地加载或卸载,不须要编译内核。在高可靠性要求的状况下,能够编写监视模块,对可靠性要求高的模块进行监视,必要的时候从新启动或从新加载而无须重启系统。高可靠性的内核结构使QNX具有了高可靠性嵌入式操做系统的本质特征。

QNX网络子系统由三个部分组成:网络管理模块(io-net)、网络协议模块、网络设备驱动模块。

QNX的网络子系统也在内核外部空间运行。应用程序面对的是一个统一的网络接口,硬件相关的内容被彻底包装在网络子系统内。

QNX网络子系统的三个子模块按层次分开,io-net模块处于中心,是QNX网络的核心和重点,其它模块都挂接在它上面。数据和信息的流动都必须经由io-net调度与转发,全部其它模块所面对的就是一个单一主体。这样的中心交换结构,屏蔽了各个模块间相互协调的复杂细节,在很大程序上方便了模块的编写工做;同时,io-net仍是QNX的网络管理中心。任何网络协议和网络设备驱动程序都必须向io-net注册,由它来加载,并接受io-net的配置和管理,用户对网络状态的查询和管理也是经过io-net来实现的。

Xenomai:

Xenomai是一种采用双内核机制的Linux 内核的强实时扩展。优先级高于Linux 内核,它负责处理系统的实时任务。Xenomai 是一种采用双内核机制的Linux 内核的强实时扩展。因为Linux 内核自己的实现方式和复杂度,使得Linux 自己不能使用于强实时应用。在双内核技术下,存在一个支持强实时的微内核,它与Linux 内核共同运行于硬件平台上,实时内核的,优先级高于Linux 内核,它负责处理系统的实时任务,而Linux 则负责处理非实时任务,只有当实时内核再也不有实时任务须要处理的时候,Linux 内核才能获得运行的机会。

Xenomai 基于Adeos(Adaptive Domain Environment for Operating System)实现双内核机制。

INtime

INtime是与 Windows 操做系统共享硬件平台的实时操做系统。INtime 内核提供的标准 API 提供了适合于同步和通信的对象,以及在进程之间(包括 INtime 和 Windows 进程之间)共享内存的手段。全部对象都经过句柄引用,而且全部句柄对于实时系统都是全局的。INtime 应用程序环境被设计为具备下列功能:

l  每一个进程都是其余对象(包括线程和物理内存)的容器。由该进程所属线程建立的每一个对象都由该进程全部,而且在进程终止时再也不存在。

l  每一个进程都具备一个与其余进程的地址空间隔离的平面虚拟地址空间。进程中的代码以用户模式(IA 权限等级 3)执行,从而防止意外访问系统对象和数据。

l  每一个进程均可以直接访问处理器的输入/输出 (I/O) 空间,并且能够直接访问物在任何进程中,均可以经过系统调用以及用户为中断处理程序和线程编写的代码来直接处理中断。

l  错误是按进程分别处理的。默认状况下会挂起出错的线程,而且向全局邮箱中写入一个记录。能够更改默认操做,以便可以在出错地址进入静态系统调试器或应用程序调试器。进程还能够选择得到有关该进程中错误的通知。

相关文章
相关标签/搜索