简述
INtime 被实现为与 Windows 操作系统共享硬件平台的实时操作系统。Windows 中安装的组件包括一个 Windows 内核驱动程序和一些 Windows 服务。该驱动程序管理用于运行内核和实时应用程序的内存,并且管理这两个系统之间的通讯接口。
一个 Windows 服务将实时内核加载到已分配的内存中,然后使上下文从 Windows 切换到 INtime 内核。将创建一个低优先级线程,其功能是将计算机上下文切换回 Windows 系统。因为该线程将被所有其他实时线程占先,所以只要牵涉到实时内核,Windows 系统都是实时系统的空闲任务。
当在 INtime 上下文中时,任何实时中断都被直接处理,并且所有其他中断都在中断控制器被屏蔽。当上下文返回到 Windows 时,这些中断将被解除屏蔽,以使其可以被 Windows 正常处理。当在 Windows 上下文中发生实时中断时,将插入 Windows IDT 以引起到 INtime 上下文的上下文切换,以便可以处理中断。
系统计时器通常在 Windows 和 INtime 之间共享。硬件计时器被改编以便按比 Windows 要求的速率更高的速率中断,并且只根据需要调用 Windows 处理程序。通常情况下,INtime 内核以高得多的速率(时间间隔可以低至 100μs)获得计时器中断,以便提供更细粒度的计时服务。计时器处理优化能够避免在 Windows 和 INtime 之间进行不必要的上下文切换。
某些硬件抽象层 (HAL) 入口点被截获和监控,以便防止 Windows 内核执行某些不需要的操作,例如屏蔽实时中断或者更改硬件系统计时器频率。HAL 文件不是由软件修改或替换的。
INtime 内核为实时虚拟机提供操作系统服务。它提供此类内核通常会提供的实时服务,包括一个基于优先级的抢先式计划程序,该程序执行基于优先级的中断处理。线程优先级的范围是从 0(最高优先级)到 255(最低优先级),低于可配置的优先级阈值的线程可以与多个具有相同优先级的线程分享其时间片。内核计划程序已经进行优化,以获得最佳的中断性能。
得到的平台表现出良好的性能,最重要的是它的行为是可预测的。