图片展示
图片展示

INtime实时操作系统

图片展示

自从Microsoft公司推出Windows操作系统以来,Windows已经成为目前世界上用户最多,且兼容性最强的操作系统。随着电脑硬件和软件系统的不断升级,微软的Windows操作系统也在不断升级,从16位、32位到64位操作系统。从最初的Windows 1.0到大家熟知的windows3.1 、windows3.2、Windows95、NT、97、98、2000、Me、XP、Server、Vista、Windows 7、Windows 8、Windows 8.1、Windows 10、Windows 11等Windows各种版本的持续更新,微软一直在尽力于Windows操作系统的开发和完善。

作为Windows和Intel的合作伙伴,TenAsys公司也一直紧随Windows的升级,推出兼容最新版Windows的INtime最新版实时操作系统。

. INtime®是TenASys在30多年历史的Intel iRMX®基础上开发的,能扩展Windows系统的实时性能。

. INtime® 和Windows运行在同一个平台,无需增加任何硬件成本。客户既保持了原来Windows应用的继承性,又能提高整个系统的实时性能。

. INtime®已在全球成千上万种应用程序中得到验证,迄今在全球装机数量接近千万台。

. TenAsys公司是Microsoft和Intel的合作伙伴,所开发的INtime®能够保持很好的兼容性。

INtime基本架构

计算机硬件的虚拟化技术已经发展了几十年。IBM是最早使用计算机硬件虚拟技术的公司,当时是为了满足以前的软件应用能够运行在新的计算机硬件。虚拟机管理器(VMM)负责管理虚拟化硬件,又称超级管理程序,它类似计算机硬件仿真器外的超薄隔离层。计算机硬件仿真器能仿真CPU指令集、关键的硬件元素、操作系统调用以满足系统应用。硬件仿真器和虚拟机的主要不同在于虚拟机可以建立在虚拟硬件之上,即虚拟机的硬件是不需要真实硬件对应的。

1997年TenAsys公司开发了基于Intel架构硬件平台上的INtime实时操作系统。在不对Windows做任何修改的前提下,INtime将Windows系统移到INtime实时任务列表的最低优先级上运行(例如:IDLE任务)。这种“双系统、单平台”的结构安排使开发者能够方便的在同一硬件平台上构建稳定的嵌入式实时操作系统,在满足系统精确控制的需求的同时,提供系统级监视、企业级连接和其它复杂的用户接口功能。

图片展示
图片展示

在Windows中,INtime作为保护模式下的操作系统,和Windows共享硬件CPU等资源。两个保护模式下的操作系统运行在单个平台上的虚拟系统称为“静态虚拟模式”。系统启动时,Windows首先启动,INtime将自己的启动部分插入到硬件和Windows之间。INtime需要使用的内存、I/O硬件对Windows则是不可见的。所有的用户接口I/O,诸如视频、键盘、鼠标依然归属于Windows管理。Windows不能意识到INtime操作系统及任务进程的存在,即使它已经被INtime降低到INtime任务列表的最低优先级。

传统的虚拟机有其自身的不足。对一般的通用操作系统,诸如Windows或Linux,传统的虚拟机对CPU和I/O资源的分配采用公平的策略。传统的虚拟机是为解决网络性能的问题而设计,即为了充分利用服务器资源和简化客户端的开发维护,它不能支持实时系统和I/O应用的时间精确调度。传统虚拟机支持的设备包括CPU、RAM、磁盘、显示器、键盘、鼠标和网络接口,一般不能支持更多的其它设备。由于部分I/O设备很难在多个虚拟机之间复用,它们也就不能被访问。

作为Intel®微架构的虚拟技术(VT)使INtime使用传统的静态虚拟模式实现实时性成为可能。Intel的VT较传统虚拟机增加了VMX根模式,它使用超级模式访问CPU硬件。超级模式能够拦截任何VMX根模式之外的任何操作系统的执行过程,而无需对上层操作系统有任何预设内容的了解。VT虚拟技术,既可以执行Ring 0下直接控制CPU资源的保护模式操作系统,又能提供VMM能完成虚拟中断功能,这是实时系统应具备的基本特征。

结合VT技术的多核CPU构建的虚拟模式称为“动态虚拟模式”。动态虚拟模式能同时隔离和管理通用操作系统和实时操作系统。与静态虚拟模式不同,动态虚拟模式使用“预启动”技术掌管硬件平台的控制权,通用和实时操作系统在虚拟机构建完成后再启动。这样,它既可支持更广泛的操作系统,又可在某操作系统出现故障需要重启时不影响其它的操作系统的运行。

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 内核以高得多的速率(时间间隔可以低至 50μs)获得计时器中断,以便提供更细粒度的计时服务。计时器处理优化能避免 Windows和INtime 之间进行不必要的上下文切换。另外,Windows某些硬件抽象层 (HAL) 入口点被截获和监控,以防止 Windows 内核执行某些不需要的操作,例如屏蔽实时中断或者更改硬件系统计时器频率。INtime不是由通过修改或替换Windows的HAL.DLL文件实现硬件抽象层的入口点截获和监控的,而是通过修改已载入内存中的HAL.DLL实现的。

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

INtime实时对象与接口

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

. 进程(Process)

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

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

. 线程(Thread)

线程总是由某个进程所有,并且线程所创建的对象由其进程所有.线程会被分配一个优先级,范围为从0到254,其中0是最高优先级。

. 信号量(Semaphores)

这些同步对象由一个线程队列和一个计数器组成,类似于Microsoft Win32 信号量。对象创建时,所有 INtime 线程队列都可以被指定为先入先出(FIFO)队列或优先级队列。如果是FIFO队列,则线程按照等待顺序排队;如果是优先级队列,则线程的排队方式为优先级较高的线程出现在队头。

. 区域(Region)

这些对象是单个单元信号量,带有防止优先级颠倒的保护。它们采用标准的优先级提升技术,以避免这种情况。另外,拥有区域的线程不能删除,除非它放弃该区域。这些对象类似于Win32 临界区。

. 邮箱 (MailBox)

这些对象由一个线程队列和一个消息队列组成。邮箱可以将两种类型的消息排队。消息可以是其他对象的句柄,也可以是最多包含 128 个字节的数据消息。在 Win32 中没有直接等效的对象。

. 堆(Heap)

堆对象类似于 Windows 堆。它为应用程序提供动态内存源。

. 其他内存对象

可以为内存区域创建一个句柄,并且随后将该句柄传递给另一个进程以进行映射。然后,可以从这两个进程中访问该内存。

INtime分布式系统

    INtime分布式系统Distributed System Manager“DSM”)是一个协作性多进程应用程序,用于管理整个 INtime 系统。任何进程(Windows  INtime)都可以选择监控任何其他参与协作的进程,或者被其他参与协作的进程监控。如果被监控的进程被删除,或者到该进程的通讯途径被中断,或者 Windows 系统或 INtime 系统被破坏,都会向监控进程发送通知消息。可以使用该服务来提供系统级完整性。

Windows停止处理

INtime 的一个重要优点是它能够检测到 Windows 平台何时失败。如果出现这种情况,INtime 内核中将通知所有参与的进程 Windows 已经失败,并且还将负责调度 Windows 的线程挂起。此时,INtime 内核可以继续无限期地执行其进程,而这些进程可以选择在此情况下采取特殊操作,例如使外围设备进入已知状态。在稍后某个时刻,实时进程可以选择恢复Windows 线程,并使 Windows 可以继续关闭和重置计算机。

您也可以通过以下方式联系我们

邮箱:info@synwell.com.cn

手机:13381525911 13381626911

座机:(+86)021-64127259

地址:上海市顾戴路2988号赢嘉广场B座7楼

 

微信扫码咨询

TenAsys直销商

添加微信好友,详细了解产品
使用企业微信
“扫一扫”加入群聊
复制成功
添加微信好友,详细了解产品
我知道了