基于Windows平臺(tái)的分布式實(shí)時(shí)仿真系統(tǒng)
摘要 通過(guò)介紹基于Windows的實(shí)時(shí)擴(kuò)展子系統(tǒng)RTX,提出了解決Windows下分布式仿真的兩種方案:基于RTX的反射內(nèi)存網(wǎng)分布式仿真和基于以太網(wǎng)的令牌環(huán)分布式仿真架構(gòu)。并比較了兩種架構(gòu)與傳統(tǒng)Windows方案在實(shí)時(shí)性能上的差別。兩種方案在滿足分布式仿真系統(tǒng)實(shí)時(shí)性要求的基礎(chǔ)上,能為不同要求的仿真提供靈活可靠的選擇。
關(guān)鍵詞 RTX;反射內(nèi)存網(wǎng);令牌環(huán)網(wǎng);實(shí)時(shí);分布式仿真
基于Windows的分布式仿真系統(tǒng)當(dāng)前面臨的最大問(wèn)題,在于如何提高分布式網(wǎng)絡(luò)的實(shí)時(shí)性能。其內(nèi)容主要有兩方面:(1)如何最大限度的提高網(wǎng)絡(luò)傳輸性能,使數(shù)據(jù)盡可能的快速傳輸。(2)如何在盡可能小的影響傳輸性能的基礎(chǔ)上,滿足分布式系統(tǒng)數(shù)據(jù)傳輸確定性的需要。也即如何降低數(shù)據(jù)傳輸?shù)钠骄舆t和最壞情況下的延遲兩方面的內(nèi)容。
將RTX實(shí)時(shí)擴(kuò)展子系統(tǒng)的技術(shù)引入Windows操作系統(tǒng),不僅可將Windows改造成一個(gè)確定響應(yīng)的硬實(shí)時(shí)操作系統(tǒng),同時(shí)可以改造基于Windows平臺(tái)的以太網(wǎng)及反射內(nèi)存網(wǎng)的應(yīng)用。實(shí)現(xiàn)在分布式仿真系統(tǒng)中數(shù)據(jù)傳輸?shù)目焖傩砸约按_定性的指標(biāo),達(dá)到構(gòu)建基于Windows的分布式實(shí)時(shí)仿真系統(tǒng)的目的。
針對(duì)以太網(wǎng)和反射內(nèi)存網(wǎng),提出了基于RTX的實(shí)時(shí)數(shù)據(jù)傳輸?shù)母脑旆桨?,使得以上兩種方案都可以在Windows平臺(tái)上實(shí)現(xiàn)確定傳輸?shù)哪芰?,從而可以?gòu)建基于Windows平臺(tái)的分布式仿真系統(tǒng),以滿足不同客戶對(duì)于實(shí)時(shí)響應(yīng)的不同需要。
1 RTX-基于Windows的實(shí)時(shí)擴(kuò)展子系統(tǒng)
1.1 RTX實(shí)時(shí)擴(kuò)展子系統(tǒng)簡(jiǎn)介
RTX是Ardence公司研發(fā)的基于Windows的實(shí)時(shí)擴(kuò)展子系統(tǒng)。是目前Windows平臺(tái)最優(yōu)秀的純軟件實(shí)時(shí)解決方案。RTX通過(guò)在Windows硬件抽象層增加實(shí)時(shí)擴(kuò)展實(shí)現(xiàn)基于優(yōu)先級(jí)的搶占式實(shí)時(shí)任務(wù)管理和調(diào)度。使得整個(gè)Windows任務(wù)體系變成了RTX子系統(tǒng)下優(yōu)先級(jí)最低的任務(wù)。
1.2 RTX實(shí)時(shí)擴(kuò)展子系統(tǒng)架構(gòu)
圖1為RTX實(shí)時(shí)擴(kuò)展子系統(tǒng)架構(gòu)。
RTX被設(shè)計(jì)為Windows上的一個(gè)實(shí)時(shí)擴(kuò)展子系統(tǒng),其本身并不是一個(gè)獨(dú)立的操作系統(tǒng)。它提供了對(duì)IRQ、I/O和內(nèi)存的精確控制,以確保實(shí)時(shí)任務(wù)執(zhí)行時(shí)具有100%的可靠性。由于其操作均在Ring 0級(jí)實(shí)現(xiàn),可以在保證性能的基礎(chǔ)上實(shí)現(xiàn)最少的配置操作。同時(shí)RTX還支持30 kHz的持續(xù)中斷觸發(fā)速度,最大IST延遲16 μs。
RTX與Windows操作系統(tǒng)無(wú)縫兼容,可以利用Windows系統(tǒng)的各種優(yōu)勢(shì)。包括大量標(biāo)準(zhǔn)的API函數(shù)、高效的內(nèi)存管理機(jī)制以及各種Windows下的通用資源。作為一個(gè)完全的Windows擴(kuò)展系統(tǒng),RTX并不對(duì)Windows系統(tǒng)架構(gòu)作任何封裝和修改。
RTX子系統(tǒng)(RTSS,Real-time Sub-system)擁有精確高速的任務(wù)調(diào)度器,同時(shí)支持基于優(yōu)先級(jí)和時(shí)間片輪詢兩種調(diào)度算法。RTX最高支持1 000個(gè)獨(dú)立的進(jìn)程,每個(gè)進(jìn)程下可以運(yùn)行的線程數(shù)不受限制。128個(gè)優(yōu)先級(jí)可以滿足幾乎所有用戶的編程需要,RTX調(diào)度器可以確保線程切換時(shí)間保持在500 ns~2μs之間。通過(guò)應(yīng)用高速的IPC信息和同步機(jī)制,RTX可以實(shí)現(xiàn)和Windows之間的數(shù)據(jù)通訊。選用適合的時(shí)鐘,RTX的時(shí)鐘分辨率可達(dá)到100 ns,并且不會(huì)產(chǎn)生任何漂移現(xiàn)象。
2 構(gòu)建分布式實(shí)時(shí)仿真系統(tǒng)
2.1 反射內(nèi)存網(wǎng)工作原理
反射內(nèi)存網(wǎng)主要由反射內(nèi)存卡通過(guò)光纖等傳輸介質(zhì)連接而成。反射內(nèi)存卡是一組雙口內(nèi)存板。每個(gè)反射內(nèi)存卡都占有一段內(nèi)存地址,網(wǎng)上任何計(jì)算機(jī)向本地反射內(nèi)存卡寫數(shù)據(jù)時(shí),該數(shù)據(jù)和相應(yīng)的內(nèi)存地址將被反射到網(wǎng)上所有其他反射內(nèi)存卡,并存儲(chǔ)在相同的位置。計(jì)算機(jī)將數(shù)據(jù)寫入其本地反射內(nèi)存卡后,板上的高速邏輯會(huì)自動(dòng)將此數(shù)據(jù)連同地址送到網(wǎng)上的其他反射內(nèi)存卡板上,數(shù)據(jù)傳遞完全由硬件驅(qū)動(dòng),不需要CPU干預(yù),結(jié)果網(wǎng)上的下一結(jié)點(diǎn)在400 ns內(nèi)就會(huì)在相同地址處有相同數(shù)據(jù)。
當(dāng)數(shù)據(jù)存儲(chǔ)到反射內(nèi)存卡時(shí),反射內(nèi)存卡可看成是由網(wǎng)上所有結(jié)點(diǎn)共享的單元內(nèi)存,不存在訪問(wèn)限制與仲裁,每個(gè)結(jié)點(diǎn)就像訪問(wèn)本地內(nèi)存一樣,實(shí)現(xiàn)了結(jié)點(diǎn)間的數(shù)據(jù)共享。由于CPU對(duì)反射內(nèi)存操作如同讀寫標(biāo)準(zhǔn)的RAM,且反射內(nèi)存的數(shù)據(jù)更新是通過(guò)硬件實(shí)現(xiàn)的,因此其網(wǎng)絡(luò)延遲極小。
2.2 使用RTX技術(shù)改造反射內(nèi)存網(wǎng)
反射內(nèi)存卡有兩種工作方式:中斷或查詢。在基于Windows操作系統(tǒng)的分布式實(shí)時(shí)仿真中,通常使用查詢方式。
由于Windows操作系統(tǒng)并不具有確定性的響應(yīng)機(jī)制,不能保證立刻響應(yīng)外部中斷,如果Windows系統(tǒng)繁忙,對(duì)中斷響應(yīng)的處理速度會(huì)顯著變慢,從而大大增加處理中斷的延遲時(shí)間。從仿真的穩(wěn)定性考慮,不宜采用中斷方式。因此,傳統(tǒng)的在Windows環(huán)境下使用反射內(nèi)存卡時(shí),普遍采用基于定時(shí)器的查詢方式。然而這種不間斷的查詢方式,占用了大量的系統(tǒng)資源,Windows幾乎無(wú)法進(jìn)行其他操作,用戶界面響應(yīng)很慢,
從而影響了仿真用戶的使用。同時(shí),這種方法由于放棄了響應(yīng)速度較快的中斷處理方式,犧牲了反射內(nèi)存網(wǎng)硬件本身的良好性能,使其在Windows操作系統(tǒng)中,不能達(dá)到比較理想的數(shù)據(jù)傳輸指標(biāo)。而RTX由于其對(duì)外設(shè)和中斷處理的確定性,可以在保證Windows操作系統(tǒng)正常響應(yīng)的基礎(chǔ)上,實(shí)時(shí)地處理反射內(nèi)存卡的中斷響應(yīng)。因此,采用基于RTX的反射內(nèi)存網(wǎng)方案可以達(dá)到構(gòu)建基于Windows的分布式實(shí)時(shí)仿真系統(tǒng)的目的。
評(píng)論