基于跨平臺技術的實時操作系統仿真方法
【技術領域】
[0001]本發明涉及跨平臺和系統仿真技術,具體是一種可在非實時操作系統上模擬實時軟件運行的方法。
【背景技術】
[0002]目前基于嵌入式實時操作系統的應用開發都基于交叉開發環境,采用Host-target模式,這種方式較為繁瑣,應用程序的調試也要通過仿真器連接target進行。
[0003]當然可以對程序進行跨平臺封裝,使其同時支持在非實時的Host上運行,但由于實時操作系統(RTOS)和非實時操作系統(Non-RTOS)的差異,在兩者上程序執行的輸出結果存在明顯的差異,無法做到精確仿真,實用性不大。
[0004]如果要做到精確仿真,可采用成熟的虛擬機技術,例如VMware、VirtualBOX等都是很成熟的虛擬機軟件。虛擬機在宿主操作系統(Host OS)上,通過為客戶操作系統(GuestOS)虛擬一套獨立于實際硬件的虛擬硬件環境(包括處理器,內存,I/O設備),對于客戶操作系統而言,基于虛擬硬件環境運行,與在實際硬件上運行沒有差別。
[0005]但全面的模擬仿真導致目前虛擬機技術普遍存在的問題是操作較為繁瑣,而且系統執行效率不高。對于實時應用程序開發者而言,使用虛擬機技術進行調試仿真,相對于交叉開發模式而言,開發效率無法得到很大提高。
【發明內容】
[0006]本發明目的在于綜合跨平臺封裝技術和虛擬機技術的優點,在宿主操作系統(Host OS通常是非實時操作系統)上構建輕量級模擬環境,應用程序基于此環境運行,邏輯行為能力與在實時操作系統上運行保持一致。
[0007]基于跨平臺技術的實時操作系統仿真方法,其特征在于,構建跨平臺中間件,應用程序運行于跨平臺中間件之上;在非實時操作系統側的跨平臺中間件建立微型沙箱,應用程序在非實時操作系統運行時,將有實時性要求的線程置入微型沙箱內,由沙箱管理程序對實時線程進行統一調度,將無實時性要求的線程仍置于微型沙箱外,由宿主操作系統的調度機制調度。
[0008]應用程序在非實時操作系統側的跨平臺中間件上模擬運行時,實時線程的調度采用沙箱管理程序維護的實時系統模擬調度算法。
[0009]沙箱管理程序的調度算法根據目標模擬的實時操作系統進行修改。
[0010]根據目標模擬操作系統的不同,沙箱管理程序調整為不同的調度算法,調度算法包括:先來先服務調度算法、基于搶占的時間片輪轉調度算法、短任務優點調度、時間片輪轉調度和/或基于搶占的優先級調度算法。
[0011]本發明基于跨平臺技術,對宿主操作系統(Host OS)上的跨平臺中間件進行適當改動,引入微型沙箱(Micro-Sandbox),將有實時性要求的線程放入微型沙箱統一調度管理,沙箱內線程的調度算法可根據目標模擬的實時操作系統特性進行調整;對于沒有實時性要求的線程,可仍然在沙箱外由非實時操作系統調度管理。
[0012]本發明的可行性基于這樣一個現實:分析絕大部分基于RTOS的應用開發實踐可知,一個現實的實時系統應用通常只要求少數幾個關鍵線程要在有限時間內響應,它們之間有嚴格的時序關系,其他非關鍵線程的調度并不影響模擬結果。于是,關注點就可以縮小到這有限個線程間,系統的分析和模擬的規模可大大減小。這時再借助Host OS的一些系統機制建立微型沙箱,在沙箱的管理程序中模擬RTOS的線程調度算法,統一調度管理置入沙箱的實時線程。
[0013]在這種經優化的跨平臺中間件上層開發的應用程序,在Non-RTOS上模擬運行時,邏輯行為與在RTOS上實際運行無差異,執行效率也足夠高。
[0014]本發明所達到的有益效果:
本發明公布了一種可在非實時操作系統上模擬軟件在實時操作系統運行的方法。基于跨平臺技術,在跨平臺中間件建立一個微型沙箱。模擬運行時,將有實時性要求的線程置入沙箱中,由沙箱管理程序統一調度,并根據目標模擬的操作系統調整調度算法,實現實時軟件在宿主操作系統上的精確模擬運行,執行效率高。
【附圖說明】
[0015]圖1是本發明層次架構示意圖。
【具體實施方式】
[0016]以在Windows系統上搭建模擬系統為例,如圖1。
[0017](I)根據Windows系統特性和目標模擬的操作系統特性,分析系統調用的映射層次,確定以一個進程作為單位,模擬一個完整的實時系統(如vxWorks),這樣做的好處是:在Windows上同時可以模擬多個實時系統運行;
(2)構建跨平臺中間件,封裝操作系統調用,例如線程接口、消息隊列接口、信號量接口等;
(3)在跨平臺中間件建立微型沙箱:根據目標模擬操作系統不同,沙箱管理程序可調整,以最簡單的調度算法,先來先服務(FCFS)為例:將置入沙箱的線程按優先級順序排序,放入Host OS的單一線程(這里的線程指Windows線程,不指被模擬線程)中順序執行,如果程序中調用了線程等待調用,則切換到下一個被模擬線程執行;
(4)如果模擬更復雜的調度算法,需要用到更多系統機制,例如基于搶占的時間片輪轉調度算法:沙箱管理程序為每個置入沙箱的模擬線程維護一個計時器,當發現某個線程占用的系統時間達到分配的時間,則通過發送系統消息,喚醒或停止模擬線程運行,完成調度;
通過修改沙箱管理程序的模擬調度算法,可支持更多調度算法,諸如短任務優點調度、時間片輪轉調度、基于搶占的優先級調度算法等;
(5)將沙箱的系統接口(例如模擬線程創建、信號量操作等)經過封裝,與跨平臺中間件的系統接口統一,但需要通過標志區分實時或非實時線程;
(6)經過改造的跨平臺中間件提供的接口與改造前基本一致,但模擬運行時實時線程的調度采用了實時系統模擬調度算法,能準確模擬軟件在實時操作系統上的運行行為。
【主權項】
1.基于跨平臺技術的實時操作系統仿真方法,其特征在于,構建跨平臺中間件,應用程序運行于跨平臺中間件之上;在非實時操作系統側的跨平臺中間件建立微型沙箱,應用程序在非實時操作系統運行時,將有實時性要求的線程置入微型沙箱內,由沙箱管理程序對實時線程進行統一調度,將無實時性要求的線程仍置于微型沙箱外,由宿主操作系統的調度機制調度。
2.根據權利要求1所述的基于跨平臺技術的實時操作系統仿真方法,其特征在于,應用程序在非實時操作系統側的跨平臺中間件上模擬運行時,實時線程的調度采用沙箱管理程序維護的實時系統模擬調度算法。
3.根據權利要求1所述的基于跨平臺技術的實時操作系統仿真方法,其特征在于,沙箱管理程序的調度算法根據目標模擬的實時操作系統進行修改。
4.根據權利要求1所述的基于跨平臺技術的實時操作系統仿真方法,其特征在于,根據目標模擬操作系統的不同,沙箱管理程序調整為不同的調度算法,調度算法包括:先來先服務調度算法、基于搶占的時間片輪轉調度算法、短任務優點調度、時間片輪轉調度和/或基于搶占的優先級調度算法。
【專利摘要】本發明公布了一種基于跨平臺技術的實時操作系統仿真方法,是一種可在非實時操作系統上模擬軟件在實時操作系統運行的方法。本發明基于跨平臺技術,在跨平臺中間件建立一個微型沙箱。模擬運行時,將有實時性要求的線程置入沙箱中,由沙箱管理程序統一調度,并根據目標模擬的操作系統調整調度算法,實現實時軟件在宿主操作系統上的精確模擬運行,執行效率高。
【IPC分類】G06F9-455
【公開號】CN104866373
【申請號】CN201510258338
【發明人】徐頔飛
【申請人】南京國電南自電網自動化有限公司
【公開日】2015年8月26日
【申請日】2015年5月20日