zoukankan      html  css  js  c++  java
  • 实时控制软件设计第三周作业-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  错误是按进程分别处理的。默认情况下会挂起出错的线程,并且向全局邮箱中写入一个记录。可以更改默认操作,以便能够在出错地址进入静态系统调试器或应用程序调试器。进程还可以选择获得有关该进程中错误的通知。

  • 相关阅读:
    java Jquery表单校验代码jsp页面
    IntelliJ IDEA 2016.1.1(64) 长时间激活教程
    maven 仓库
    java学习路线
    json 源码包
    centos 安装docker
    实现高并发
    将MongoDB安装成为Windows服务
    给mongodb设置密码权限
    MongoDB的win安装教程
  • 原文地址:https://www.cnblogs.com/shishiruanjiankongzhi/p/6172067.html
Copyright © 2011-2022 走看看