INtime

INtime

實時操作系統與Windows的結合
INtime 内核設計所關注的主要問題之一是提供處理系統異常錯誤(一般性保護錯誤、頁面錯誤、堆棧錯誤等等)的非災難性手段,并且盡量減少對實時内核和 Windows 系統的損害。[1]
  • 中文名:INtime
  • 外文名:
  • 所屬學科:
  • 結合:Windows
  • 特點:實時技術
  • 特點2:無縫實時運行

引言

人們正在越來越多地選擇 Microsoft Windows XP 和 Windows XP Embedded 操作系統來運行需要某種實時性行為的專用應用程序。Windows XP Embedded 與 Windows XP 桌面軟件基于相同的二進制文件,它在許多方面都是可供選擇的最佳平台,但 Windows XP Embedded 和 Windows XP 自己無法管理此類系統所需要的具有嚴格實時性要求,因此需要增強該平台的實時功能。

在Windows XP 平台上添加實時擴展方案時,已有許多解決方案在 Windows XP 内核設備驅動程序提供了某種實時功能,但此類解決方案沒有考慮到為用戶提供可容易進行應用程序開發的應用環境,也沒有考慮對于許多應用程序進行調用。TenAsys Corporation 出品的 INtime 軟件可以做到不僅為應用程序增加實時性功能,并且使實時應用程序存在于強大、可靠和可調用資源的環境。

主要特性和功能

成熟的實時技術

無縫實時運行,适用于Windows XP、Windows XP Embedded、Windows 2000和Windows Server 2003

支持多進程或系統(SMP和HT)——用于多進程/多處理器的共享或獨占式實時資源分配選項

支持多核處理器,支持INtime和Windows共享處理器,或者INtime獨享處理器

完全與Microsoft Visual Studio .NET相集成——可編輯、編譯、鍊接和調試實時應用程序,而無需退出Visual Studio .NET環境

集成的聯機幫助

可伸縮的體系結構——實時應用程序可與Windows一起本地運行或跨多節點運行

用于實時應用程序的完全内存保護和地址隔離

實時TCP/IP通信stack——可獨立于Windows網絡stack運行

提供了DeviceNet、PROFIBUS、CANopen和Controlnet等驅動程序

實時USB stack支持ohci、UHCI和EHCI控制器

提供了GPIB(IEEE-488)和運動控制實時設備驅動程序

直接I/O和内存映射,可訪問所有的硬件

用于周期性事件中斷的系統計時器粒度,其精度達100 μs,多核系統可以達到50us

郵箱、信号量、警報、區域和共享内存IPC機制

EC++庫符合最新的ANSI标準——同時支持異常處理和名稱空間

可加載實時庫的實時共享庫(RSL)

用于實時對象浏覽和崩潰分析的INtime Explorer工具(intex)

INscope實時系統性能分析工具

簡介

IRMX® RTOS 技術的發展已有25年以上的曆史,非常的成熟、可靠。INtime以此技術為基礎,它将強大的工業級控制與豐富的Windows功能相結合,從而使得應用程序能夠充分利用所有Windows特性和成千上萬現有的應用程序,而無需犧牲實時響應。使用TenAsys軟件來執行實時Windows應用程序不僅能夠降低軟件的複雜性,而且還可以壓縮冗餘的硬件成本,顯着地壓縮了産品上市時間。

通過使用INtime軟件,可獲得非常精确且穩定的的微秒級響應時間,并絲毫不會降低安全性、可靠性和系統性能。正如Windows應用程序在用戶模式下(RING3)執行時一樣,通過INtime的保護模式編程模型來進行管理的實時應用程序也可在用戶模式下執行,因而獲得高穩定性。

其他類型的解決方案要求實時應用程序在Windows内核中(ring0)完全無保護地運行,在這種情況下,可導緻錯誤指針、棧溢出、頁面錯誤等編程錯誤,這些将會十分明顯的影響到實時環境和Windows環境的穩定性。

但是,如果在INtime受保護的實時系統内部運行實時應用程序,就絕對不會發生這種問題。

TenAsys實時操作系統已在全球成千上萬種應用程序中得到驗證,并且至今已無故障運行了數百萬小時。

系統體系結構

INtime 是與 Windows 操作系統共享硬件平台的實時操作系統。Windows中安裝的組件包括一個 Windows内核驅動程序和一些 Windows 服務。該驅動程序管理用于運行内核和實時應用程序的内存,并且管理這兩個系統之間的通訊接口。

Windows将實時内核加載到已分配的内存中,然後使Context從 Windows 切換到 INtime 内核。将創建一個低優先級線程,其功能是将計算機Context切換回 Windows 系統。因為該線程将被所有其他實時線程占先,所以隻要牽涉到實時内核,Windows 系統都是實時系統的空閑任務。

在 INtime中,任何實時中斷都被直接處理,并且所有其他中斷都在中斷控制器被屏蔽。當Context返回到 Windows 時,這些中斷将被解除屏蔽,以使其可以被 Windows 正常處理。當在 Windows Context中發生實時中斷時,将插入 Windows IDT 以引起到 INtime Context的上下文切換,以便可以處理中斷。

系統計時器通常在 Windows 和 INtime 之間共享。硬件計時器被改編以便以 Windows 要求的速率更高的速率中斷,并且隻根據需要調用 Windows 處理程序。

通常情況下,INtime 内核以高得多的速率(時間間隔可以低至 100μs)獲得計時器中斷,以便提供更精确的計時服務。計時器處理優化能夠避免在 Windows 和 INtime 之間進行不必要的Context切換。

某些硬件抽象層 (HAL) 入口點被截獲和監控,以便防止 Windows 内核執行某些不需要的操作,例如屏蔽實時中斷或者更改硬件系統計時器頻率。HAL 文件不是由軟件修改或替換的。

INtime 内核為實時虛拟機提供操作系統服務。它提供此類内核通常會提供的實時服務,包括一個基于優先級的搶先式計劃程序,該程序執行基于優先級的中斷處理。

線程優先級的範圍是從 0(最高優先級)到 255(最低優先級),低于可配置的優先級阈值的線程可以與多個具有相同優先級的線程分享其時間片。内核計劃程序已經進行優化,以獲得最佳的中斷性能。得到的平台表現出良好的性能,最重要的是它的行為是可預測的。

INtime 應用程序環境被設計為具有下列功能:

每個進程都是其他對象(包括線程和物理内存)的容器。由該進程所屬線程創建的每個對象都由該進程所有,并且在進程終止時不再存在。

每個進程都具有一個與其他進程的地址空間隔離的平面虛拟地址空間。進程中的代碼以用戶模式(IA 權限等級 3)執行,從而防止意外訪問系統對象和數據。

每個進程都可以直接訪問處理器的輸入/輸出 (I/O) 空間,而且可以直接訪問物在任何進程中,都可以通過系統調用以及用戶為中斷處理程序和線程編寫的代碼來直接處理中斷。

錯誤是按進程分别處理的。默認情況下會挂起出錯的線程,并且向全局郵箱中寫入一個記錄。可以更改默認操作,以便能夠在出錯地址進入靜态系統調試器或應用程序調試器。進程還可以選擇獲得有關該進程中錯誤的通知。

2 提供了多個 API 以便進程可以使用系統服務。下面的部分中将詳細介紹這些 API。

通過将請求轉發給 Windows 服務以執行所請求的操作,向實時應用程序提供 Windows 服務(對注冊表、事件日志和文件系統的訪問)。

實時API

INtime 内核提供的标準 API 提供了适合于同步和通訊的對象,以及在進程之間(包括 INtime 和 Windows 進程之間)共享内存的手段。所有對象都通過句柄引用,并且所有句柄對于實時系統都是全局的。對象包括:

(1)進程

進程擁有其他對象(包括其他進程)和物理内存。當進程創建時,将向其分配一個内存池,它限制了可以分配給該進程的物理内存的數量。盡管 INtime 内核使用分頁硬件進行内存管理,但它并不采用請求調頁功能。因此,進程被限制在它可以分配的物理内存量的範圍内。進程還具有對象編錄,可以在此命名對象。可以按名稱搜索該編錄。

(2)線程

線程總是由某個進程所有,并且線程所創建的對象由其進程所有。線程會被分配一個優先級,範圍為從 0 到 254,其中 0 是最高優先級。

(3)信号量

這些同步對象由一個線程隊列和一個計數器組成,類似于 Microsoft Win32 信号量。對象創建時,所有 INtime 線程隊列都可以被指定為先入先出 (FIFO) 隊列或優先級隊列。如果是 FIFO 隊列,則線程按照等待順序排隊;如果是優先級隊列,則線程的排隊方式為優先級較高的線程出現在隊頭。

(4)區域

這些對象是單個單元信号量,帶有防止優先級颠倒的保護。它們采用标準的優先級提升技術,以避免這種情況。另外,擁有區域的線程不能删除,除非它放棄該區域。這些對象類似于 Win32 臨界區。

(5)郵箱

這些對象由一個線程隊列和一個消息隊列組成。郵箱可以将兩種類型的消息排隊。消息可以是其他對象的句柄,也可以是最多包含 128 個字節的數據消息。在 Win32 中沒有直接等效的對象。

(6)堆

堆對象類似于 Windows 堆。它為應用程序提供動态内存源。

其他内存對象

可以為内存區域創建一個句柄,并且随後将該句柄傳遞給另一個進程以進行映射。然後,可以從這兩個進程中訪問該内存。

實時 API 提供參數檢查和内聯狀态報告。

(1) Win32 API

盡管 Win32 API 缺少一些用于實時編程的有用功能,INtime 仍然提供了一個 Win32 API,以便方便地從 Windows 應用程序傳輸代碼。該實現是 Windows CE Win32 實現的豐富子集,包括 Win32 對象的有用子集 (WaitForMultipleObjects),并帶有擴展以管理中斷和外圍設備互聯 (PCI) 總線配置。

(2) Windows API

為 Windows 應用程序提供了 API,以使其能夠共享在實時内核上創建的對象。标準的實時對象和 Win32 對象都是可共享的,以便 Windows 和實時應用程序可以同步和共享數據。阻塞調用由實時内核上的代理線程池處理。

(3)C 庫與 C++ 支持

INtime 提供了美國國家标準局(與 ANSI 兼容)的 C 庫,以及用标準模闆庫 (STL) 提供了對 EC++ (Embedded C++) ANSI 标準的支持。

(4)其他服務

提供了一個傳輸控制協議/網際協議 (TCP/IP) 的協議組,它派生于 BSD Net3 體系結構。為 Intel、3Com 和 Realtek 接口适配器提供了以太網驅動程序,并且為與 NE2000 兼容的 ISA 接口提供了以太網驅動程序。通過串行線路網際協議 (SLIP) 支持串行鍊路。 以開發工具包的形式提供了 USB 支持,以便開發 USB 客戶端軟件。為 Universal Host Controller (UHCI)、Open Host Controller (OHCI) 和 Enhanced Host Controller (EHCI) 接口提供了标準驅動程序。為一系列标準接口和行業接口提供了其他驅動程序。

(5)可靠性功能

INtime 的用于增強可靠性的功能包括針對非災難性系統錯誤的異常處理以及 Distributed System Manager (DSM) ,它可以監控 INtime 和 Windows 進程,并可以在 Windows 操作系統失敗時進行檢測和提供幫助。

(6)異常處理

INtime 内核設計所關注的主要問題之一是提供處理系統異常錯誤(一般性保護錯誤、頁面錯誤、堆棧錯誤等等)的非災難性手段,并且盡量減少對實時内核和 Windows 系統的損害。

因此,實時系統具有一個默認異常處理程序,該程序會向全局郵箱中寫入一個記錄,詳細描述出錯的線程及其環境,然後挂起出錯的線程。可以從 INtime 或 Windows 系統中監控該郵箱,并且存在可以從錯誤記錄中提取信息(包括寄存器轉儲、堆棧跟蹤和相關調試信息)的工具。

(7)Distributed System Manager

Distributed System Manager(“DSM”)是一個協作性多進程應用程序,用于管理整個 INtime 系統。任何進程(Windows 或 INtime)都可以選擇監控任何其他參與協作的進程,或者被其他參與協作的進程監控。如果被監控的進程被删除,或者到該進程的通訊途徑被中斷,或者 Windows 系統或 INtime 系統被破壞,都會向監控進程發送通知消息。可以使用該服務來提供系統級完整性。

(8)Windows 停止處理

DSM 的一個重要優點是它能夠檢測到 Windows 平台何時失敗。如果出現這種情況,INtime 内核中的 DSM 軟件将通知所有參與的進程 Windows 已經失敗,并且還将負責調度 Windows 的線程挂起。此時,INtime 内核可以繼續無限期地執行其進程,而這些進程可以選擇在此情況下采取特殊操作,例如使外圍設備進入已知狀态。在稍後某個時刻,實時進程可以選擇恢複 Windows 線程,并使 Windows 可以繼續關閉和重置計算機。

(9)可擴展性功能

INtime 操作系統能夠支持複雜的大型應用程序。在上述共享體系結構中,已經發現典型的平台能夠允許 INtime 内核消耗 CPU 帶寬的 50% 到 60%,然後 Windows 圖形用戶界面 (GUI) 和其他服務才會開始受到不利影響。

INtime 中獨立内核的優勢是可以将它重定位到另一 CPU 或另一平台,從而使應用程序能夠随着其對平台的需求的增加而擴大規模。接口模式将從虛拟機體系結構更改為共享内存,然後又更改為物理通訊鍊路(如以太網或串行線路),但 Windows 和實時應用程序之間的軟件接口不會改變。這樣,無論選擇了哪種硬件體系結構,都可以使用相同的二進制文件。

小結

TenAsys Corporation 的 INtime 軟件被設計為不僅能夠向 Windows 平台添加實時功能,而且其添加這些功能的方式能夠為實時應用程序提供可靠且可伸縮的平台。如果将該解決方案與 Windows XP Embedded 配合使用,則能夠為您的嵌入式設備提供強大的、可擴展的、确定性的操作系統。

上一篇:music

下一篇:喵了個咪

相關詞條

相關搜索

其它詞條