TenAsys INtime实时操作系统入门(V3.13)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TenAsys实时操作系统入门

1 INtime体系结构

2 INtime的安装使用

3 INtime试用版3.0例程

作者:sigwell

试用版下载:/Intime

1 INtime体系结构

1.1 INtime概述

目前,人们正在越来越多地选择Microsoft Windows XP 和Windows XP Embedded 操作系统来运行满足某种特定需求的专用应用程序。Windows XP Embedded 与 Windows XP 桌面软件是基于相同的二进制文件,它们在许多方面都是可供选择的最佳平台。但是,当应用需要操作系统提供严格的实时接口和功能时, Windows XP Embedded 和 Windows XP 由于自身的原因而无法满足设计者的要求。

针对这方面的需求,人们已经开发出很多面向 Windows XP 平台添加实时扩展的方案,向Windows XP 内核设备驱动程序级提供某种实时功能,但此类解决方案基本上都没有考虑开发环境的易用性和健壮性,也没有考虑和已有的广泛的Windows应用程序资源共享。

INtime软件不仅能在Windows环境中为应用程序添加时间确定性的行为,而且使那些实时应用程序能够达到健壮、可靠和可伸缩性。TenAsys的设计使INtime能可靠的在Windows系统中运行,且不影响Windows的原来的应用,同时也保证Windows的重大错误不会传递给INtime而导致整个系统崩溃,甚至不影响其他应用程序(它们之间存在显式交互的情形除外)。

TenAsys INtime 软件所采取的方法是在加载 Windows 操作系统的同时加载一个实时操作系统,以便它们共享相同的 CPU 和中断硬件,但在其他方面相互独立。每个操作系统都被封装为一个虚拟机,各自具有自己的描述符表、内存管理等等。当实时活动必须发生时,计算机上下文将切换到该实时操作系统。当这些活动完成后,计算机上下文将切换回Windows 操作系统。因为INtime实时操作系统独立于 Windows 操作系统软件,所以可以增强运行实时进程的环境,以及添加附加功能以提高整个平台的健壮性。

添加INtime实时功能的平台的典型案例是将应用分成两种不同的部分:一些部分不需要实时服务,而利用 Windows XP 平台的功能;另一些部分需要实时内核的实时性能。进程间通讯 (IPC) 服务从实时内核进行扩展,以使 Windows 应用程序能够共享对在实时内核上创建的对象的访问。数据采集应用程序即为一个简单的例子,其中实时进程负责驱动硬件接口和处理收到的数据,而 Windows 进程提供操作员界面并显示结果。这两种进程都可以用 Microsoft Visual Studio 工具开发,其中 C 和 C++ 由实时环境进行支持。

TenAsys Corporation 的 INtime 软件被设计为不仅能够向 Windows 平台添加实时功能,而且其添加这些功能的方式能够为实时应用程序提供可靠且可伸缩的平台。如果将该解

决方案与Windows XP Embedded 配合使用,则能够为您的嵌入式设备提供健壮的、可伸缩的、确定性的操作系统。

1.2 INtime基本架构

INtime 是被设计为与Windows操作系统共享硬件平台的实时操作系统。Windows中安装的组件包括一个Windows内核驱动程序和一些Windows服务。该驱动程序管理用于运行内核和实时应用程序的内存,并且管理这两个系统之间的通讯接口。

一个Windows服务将实时内核加载到已分配的内存中,然后使上下文从 Windows 切换到 INtime内核。INtime将创建一个低优先级线程,用于把Windows的任务压缩后放入该线程。在INtime任务结束以后,该线程负责将计算机上下文切换回 Windows 系统。因为该线程的优先级仅高于INtime Idle线程,低于所有其他实时线程。所以,只要牵涉到Intime 实时内核任务在运行时,Windows任务都是处于等待状态。

在 INtime 上下文时,任何实时中断都被直接处理,并且所有其他中断都被屏蔽。当上下文返回到 Windows 时,非INtime的中断将被解除屏蔽,以使其可以被 Windows 正常处理。当在 Windows 上下文中发生实时中断时,将插入Windows IDT以引起到INtime上下文的上下文切换,以便可以处理中断。

系统计时器通常在 Windows 和 INtime 之间共享。硬件计时器被改编以便按比Windows 要求的速率更高的速率中断,并且只根据需要调用 Windows 处理程序。通常情况下,INtime 内核以高得多的速率(时间间隔可以低至 100μs)获得计时器中断,以便提供更细粒度的计时服务。计时器处理优化能够避免在 Windows 和 INtime 之间进行不必要的上下文切换。另外,Windows某些硬件抽象层 (HAL) 入口点被截获和监控,以防止Windows 内核执行某些不需要的操作,例如屏蔽实时中断或者更改硬件系统计时器频率。INtime不是由通过修改或替换Windows的HAL.DLL文件实现硬件抽象层的入口点截获和监控的,而是通过修改已载入内存中的HAL.DLL实现的。

INtime 内核为实时虚拟机提供操作系统服务。它提供此类内核通常会提供的实时服务,包括一个基于优先级的抢占式调度程序,该程序执行基于优先级的中断处理。线程优先级的范围是从0(最高优先级)到 255(最低优先级),低于可配置的优先级阈值的线程可以与多个具有相同优先级的线程分享其时间片。内核计划程序已经进行优化,以获得最佳的中断性能。

1.3 应用程序环境

INtime 应用程序环境被设计为具有下列功能:

¾每个进程都是其他对象(包括线程和物理内存)的容器。由该进程所属线程创建的每个对象都由该进程所有,并且在进程终止时不再存在。

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

¾每个进程都可以直接访问处理器的输入/输出 (I/O) 空间,而且可以直接访问物理内存。¾在任何进程中,都可以通过系统调用以及用户为中断处理程序和线程编写的代码来直接处理中断。

¾错误是按进程分别处理的。默认情况下会挂起出错的线程,并且向全局邮箱中写入一个记录。可以更改默认操作,以便能够在出错地址进入静态系统调试器或应用程序调试器。

进程还可以选择获得有关该进程中错误的通知。

¾提供了多个 API 以便进程可以使用系统服务。下面的部分中将详细介绍这些 API。

¾通过将请求转发给Windows服务以执行所请求的操作,向实时应用程序提供 Windows 服务(对注册表、事件日志和文件系统的访问)。

1.4 实时 API

INtime 内核提供的标准 API 提供了适合于同步和通讯的对象,以及在进程之间(包括INtime 和 Windows 进程之间)共享内存的手段。所有对象都通过句柄引用,并且所有句柄对于实时系统都是全局的。实时 API 提供参数检查和内联状态报告。

¾进程(Process)

进程拥有其他对象(包括其他进程)和物理内存。当进程创建时,将向其分配一个内存池,它限制了可以分配给该进程的物理内存的数量。尽管 INtime 内核使用分页硬件进行内存管理,但它并不采用请求调页功能。因此,进程被限制在它可以分配的物理内存量的范围内。

进程还具有对象编录,可以在此命名对象。可以按名称搜索该编录。

相关文档
最新文档