




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
嵌?式操作系統(tǒng)選型分析早期的嵌?式系統(tǒng)很多都不?操作系統(tǒng),它們都是為了實現(xiàn)某些特定功能,使??個簡單的循環(huán)控制對外界的控制請求進(jìn)?處理,不具備現(xiàn)代操作系統(tǒng)的基本特征(如進(jìn)程管理、存儲管理、設(shè)備管理、?絡(luò)通訊等)。但隨著控制系統(tǒng)越來越復(fù)雜,應(yīng)?范圍越來越?泛的時候,缺少操作系統(tǒng)就造成了很?的限制。C語?的出現(xiàn)促進(jìn)了操作系統(tǒng)的發(fā)展。20世紀(jì)80年代以來,出現(xiàn)了各種各樣的商業(yè)?嵌?式操作系統(tǒng)。如QNX,VxWorks,RT-Linux以及WindowsCE等。使得在嵌?式系統(tǒng)設(shè)計時有了很?的選擇余地,但選擇的操作系統(tǒng)是否恰當(dāng)對整個系統(tǒng)的開發(fā)有著摯為關(guān)鍵的影響??偟膩碚f,嵌?式操作系統(tǒng)的選擇可以遵從?下?條主要原則:ll實時性。嵌?式操作系統(tǒng)的實時性主要與系統(tǒng)的結(jié)構(gòu)、任務(wù)調(diào)度策略、中斷處理?段以及內(nèi)存管理?法有關(guān)。系統(tǒng)定制能?。?業(yè)控制產(chǎn)品不同于民?PC的WinTel(微軟Windows+I(xiàn)ntel處理器)結(jié)構(gòu),后者?較簡單,前者需求則是千差萬別的,因此硬件系統(tǒng)也都不?樣,所以對系統(tǒng)的定制能?有較?的要求。l可移植性。當(dāng)進(jìn)?嵌?式軟件開發(fā)時,可移植性是要重點考慮的問題。良好的軟件移植性應(yīng)該?較好,可以在不同平臺、不同系統(tǒng)上運?,跟操作系統(tǒng)?關(guān)。l可利?資源。產(chǎn)品開發(fā)不同于學(xué)術(shù)課題研究,它以快速、低成本、?質(zhì)量的推出適合?戶需求的產(chǎn)品為?的。集中精?研發(fā)出產(chǎn)品的特?,其他功能盡量由操作系統(tǒng)附加或采?第三?產(chǎn)品,因此操作系統(tǒng)的可利?資源對于選型是?個重要參考條件。如果有?量的資源可以利?,?疑會極?的縮短開發(fā)周期降低成本。l?絡(luò)能??,F(xiàn)在的?業(yè)控制系統(tǒng)對聯(lián)?的要求越來越多,即使?前的產(chǎn)品不需要具有聯(lián)?的能?,也應(yīng)該為以后的升級留下余地。圖形界?開發(fā)能?。友好的圖形界?對多數(shù)控制系統(tǒng)來說都是必不可少的,相應(yīng)的開發(fā)?具是否功能強、使?簡單對開發(fā)的影響很l?。ll中?內(nèi)核?持。畢竟,作為國內(nèi)的?業(yè)控制系統(tǒng),如果不?持中?,怎么能不說是?個缺憾?已有的條件。在滿?可靠應(yīng)?的條件下,降低開發(fā)成本是每個控制系統(tǒng)開發(fā)考慮最多的因素之?。能根據(jù)??的實際情況,合理的利?已有的條件,將會對降低成本有很?的作?,也會縮?產(chǎn)品的上市時間。下?就四種常見的嵌?式操作系統(tǒng)對實時性、?絡(luò)能?、圖形界?開發(fā)以及開放性等??進(jìn)?分析?較,并結(jié)合課題的實際情況,闡述了選擇QNX作為本課題的嵌?式系統(tǒng)設(shè)計平臺的理由。[10,11,12,24],如圖2.1所?,它們分別是內(nèi)核模塊、對象存儲/?件系統(tǒng)模塊、?絡(luò)與通訊模塊、GWES模WindowsCE可分為四個主要模塊塊(圖形、窗?、事件?系統(tǒng))。此外還有三個重要的組成部分:驅(qū)動程序、設(shè)備管理器、OAL(OEM適配層,OEMAdaptationLayer)。圖2.1WindowsCE體系結(jié)構(gòu)圖WindowsCE內(nèi)核模塊是coredll.dll表?,最?為200KB。它是WindowsCE操作系統(tǒng)的核?,并為應(yīng)?程序提供基本服務(wù):進(jìn)程管理、多任務(wù)多線程管理、內(nèi)存和資源管理、中斷處理、異常處理等。WindowsCE的RAM存儲內(nèi)存空間?被稱為“對象存儲(ObjectStore)”。?般包括三種類型的數(shù)據(jù):WindowsCE?件系統(tǒng)(包括數(shù)據(jù)?件和程序)、系統(tǒng)注冊表和WindowsCE數(shù)據(jù)庫(?種結(jié)構(gòu)化存儲?法,PocketPC內(nèi)置程序多使?它)。WindowsCE提供了?桌?系統(tǒng)更豐富的通訊?持。GWES模塊即圖形、窗?、事件?系統(tǒng),是?戶、應(yīng)?程序、操作系統(tǒng)之間的圖形?戶界?。?且WindowsCE?持在沒有圖形界?的設(shè)備上使?諸如窗?、消息機制和電源管理的特性。WindowsCE內(nèi)核?持按優(yōu)先級搶占的?式調(diào)度多任務(wù)。WindowsCE最多?持32個進(jìn)程,系統(tǒng)啟動時?少創(chuàng)建4個進(jìn)程:nk.exe(內(nèi)核)、filesys.exe(?件系統(tǒng))、gwes.exe(GUI?持)、device.exe(加載維護系統(tǒng)設(shè)備驅(qū)動程序)。?多數(shù)平臺還有exeplorer.exe(外殼)等服務(wù)進(jìn)程,?戶實際可以使?的進(jìn)程也只有20多個。進(jìn)程有??受保護的32MB虛擬地址空間,但沒有優(yōu)先級。WindowsCE?持的優(yōu)先級是線程的優(yōu)先級。線程是操作系統(tǒng)調(diào)度和運?的基本單位。線程由進(jìn)程創(chuàng)建,是進(jìn)程的?個實體,總是?屬于進(jìn)程,并共享進(jìn)程的地址空間。線程總數(shù)只受物理內(nèi)存的限制。WindowsCE實現(xiàn)搶占式、基于優(yōu)先級的線程調(diào)度,線程之間由8個優(yōu)先級來競爭CPU時間?。線程間的“同步”由“等待函數(shù)”和“等待對象”實現(xiàn):將等待對象作為參數(shù)傳遞給等待函數(shù),等待函數(shù)直到滿?條件才返回;如果不滿?條件,那么調(diào)?線程?直處于等待狀態(tài)。WindowsCE?持的“等待對象”包括:臨界區(qū)域?qū)ο蟆⑹录ο蠛突コ怏w對象。四種操作系統(tǒng)都采?同樣的傳統(tǒng)中斷模式。?戶往某?中斷源掛接特定中斷后,實時操作系統(tǒng)創(chuàng)建?條ISR(中斷服務(wù)例程)。所有的ISR地址保存在中斷向量表中,并被硬件直接調(diào)?。ISR先執(zhí)??些保護現(xiàn)場的操作,然后調(diào)??戶定義的中斷響應(yīng)函數(shù)。
WindowsCE采?的是基于優(yōu)先級的可嵌套中斷機制。WindowsCE的中斷處理分為兩部分:ISR和IST(中斷服務(wù)線程)。ISR是核?代碼部分,IST是?戶代碼部分。WindowsCE可以將中斷請求(ISR)映射為硬件中斷,并且實現(xiàn)相應(yīng)的ISR和IST。WindowsCE的中斷機制是:當(dāng)ISR被觸發(fā)時,ISR只負(fù)責(zé)啟動IST,?旦IST啟動后,ISR?即就返回,以便響應(yīng)新的中斷。IST負(fù)責(zé)處理實際的中斷處理。ISR運?在特殊的上下?中。IST是?個普通的應(yīng)?程序線程,具有它??的上下?和堆棧。WindowsCE實現(xiàn)了“分頁虛擬內(nèi)存管理系統(tǒng)”。實現(xiàn)虛擬內(nèi)存機制需要設(shè)備中的CPU具有MMU(MemoryManagerUnit)。WindowsCE使?CPU的MMU來實時地將虛擬地址轉(zhuǎn)換為物理地址。WindowsCE為全部應(yīng)?程序?qū)崿F(xiàn)的虛擬地址空間為2GB,為每個應(yīng)?程序?qū)崿F(xiàn)的虛擬地址空間為32MB。虛擬頁?可以處于三種狀態(tài):空閑、保留、提交(占?)??臻e頁(free)是可以被保留或提交的可?頁。保留頁(reserved)是邏輯頁已分配但沒有分配物理存儲的頁。提交/占?頁(committed)是物理存儲已分配的頁。WindowsCE提供了豐富的通訊?持,主要有:串?通訊(?持PPP/SLIP協(xié)議實現(xiàn)的串?直接連接和撥號連接),TCP/IP、FTP、HTTP協(xié)議和Winsock1.1的?個?集合,紅外通訊協(xié)議IrDA、IrSock和IrComm,通過?絡(luò)驅(qū)動程序接?規(guī)范(NDIS)?持局域?,?持遠(yuǎn)程訪問RAS、USB連接、藍(lán)?連接和?線局域?連接等,?持SSPI(“安全?持提供者接?”)、CAPI(密碼API)、TAPI(電話API)等。WindowsCE程序開發(fā)語?主要是eVB和eVC。程序開發(fā)?具重要由微軟提供,主要產(chǎn)品有eMbeddedVisualTools和WindowsCEPlatformBuilder。此外,也可使?Java語?開發(fā)WindowsCE程序,相關(guān)?具由SUN公司提供,包括PC端的Java運?環(huán)境J2SDKforwindows和PersonalJava的仿真器PJEE(PersonalJavaEmulationEnvironment)。這?所謂的開放性主要指的是與POSIX標(biāo)準(zhǔn)的符合程度。POSIX表?可移植操作系統(tǒng)接?(PortableOperatingSystemInterface)。IEEE最初開發(fā)POSIX標(biāo)準(zhǔn),是為了提?UNIX環(huán)境下應(yīng)?程序的可移植性。然?,POSIX并不局限于UNIX。許多其它的操作系統(tǒng),例如MicrosoftWindowsNT,都?持POSIX標(biāo)準(zhǔn),尤其是IEEEStd.1003.1-1990(1995年修訂)或POSIX.1,POSIX.1提供了源代碼級別的C語?應(yīng)?編程接?(API)給操作系統(tǒng)的服務(wù)程序,例如讀寫?件。POSIX.1已經(jīng)被國際標(biāo)準(zhǔn)化組織(InternationalStandardsOrganization,ISO)所接受,被命名為ISO/IEC9945-1:1990標(biāo)準(zhǔn)。WindowsCE是直接從NT發(fā)展過來的,繼承了1000多個Win32API函數(shù)。Win32是WidowsNT和Windows95的編程接?。Win32對于Windows就像POSIX對于Unix?樣。RT-Linux從本質(zhì)上講是對通?操作系統(tǒng)的Linux的實時改造的變種[1,6,13,14,28,57]。Linux作為?種通?操作系統(tǒng),雖然由于其開放性近來在嵌?式設(shè)計中有了較?的應(yīng)?,但由于其注重的是系統(tǒng)的平均性能,在很多??使得Linux不適合實時應(yīng)?。主要的?點包括:分時調(diào)度策略,較低的時鐘分辨率,內(nèi)核的?搶占式機制,過多的禁?中斷操作,以及虛擬內(nèi)存機制。這些對于通?操作系統(tǒng)來說?常出?的設(shè)計在實時系統(tǒng)中都變得不合時宜。然?,RT-Linux把Linux作為新的實時內(nèi)核調(diào)度下的最低優(yōu)先級任務(wù)執(zhí)?。其本?的實現(xiàn)只需要?個實時內(nèi)核。設(shè)計中的巧妙之處是通過截獲底層中斷改造了Linux,取得CPU控制權(quán)執(zhí)?實時任務(wù)。這樣,只需對Linux進(jìn)?較?的改動就可以實現(xiàn)實時功能,且能夠使?Linux下提供的豐富開發(fā)?具和?有功能,如?絡(luò)功能,圖形接?等。更重要的是,RT-Linux還繼承了Linux具備的開放性、標(biāo)準(zhǔn)化、技術(shù)?持豐富、便宜等特性。并且,Linux內(nèi)核升級與RT-Linux升級保持了彼此獨?,使得整個系統(tǒng)更容易維護。RT-Linux實現(xiàn)了?個?的實時核?,僅?持底層任務(wù)創(chuàng)建、中斷服務(wù)例程的裝?、底層任務(wù)通信隊列、中斷服務(wù)例程(ISR)和Linux進(jìn)程。原來的?實時Linux內(nèi)核作為?個可搶占的任務(wù)運?于這個?內(nèi)核之上,所有的任務(wù)都在內(nèi)核地址空間運?。它不同于微內(nèi)核和?型內(nèi)核,是雙內(nèi)核體系結(jié)構(gòu)。與其他RTOS相?,RT-Linux進(jìn)程間通信不夠靈活。其實時任務(wù)之間,及實時任務(wù)與其他Linux任務(wù)之間的通信?式只有?種:RT-FIFO。RT-FIFO緩沖區(qū)分配在內(nèi)核地址空間。對RT-FIFO的讀寫操作均為原?操作,不能夠阻塞。圖2.2和圖2.3分別?出了純Linux體系結(jié)構(gòu)和RT-Linux體系結(jié)構(gòu)。圖2.2純Linux體系結(jié)構(gòu)圖圖2.3RT-Linux體系結(jié)構(gòu)圖RT-Linux在操作系統(tǒng)之下實現(xiàn)了?個簡單的實時內(nèi)核,Linux本?作為?個可搶占的任務(wù)在核內(nèi)運?,其優(yōu)先級最低,隨時會被?優(yōu)先級的實時任務(wù)搶占。RT-Linux是開放源碼的操作系統(tǒng)。其開放性給?戶帶來了很?便利。在任務(wù)調(diào)度??,?戶可以??編寫調(diào)度程序,可實現(xiàn)為可加載的核?模塊。?前在實時Linux上實現(xiàn)的調(diào)度算法有:搶占式優(yōu)先級調(diào)度,最早期限優(yōu)先調(diào)度(EDF)。RT-Linux允許的實時任務(wù)優(yōu)先級范圍從1(最?)到RT_LOWEST_PRIORITY。同樣由于源碼開放性,優(yōu)先級數(shù)?也可以由?戶在編譯核?時,指定相應(yīng)的RT_LOWEST_PRIORITY值確定,這有給了?戶很多?由。
對于RT-Linux,中斷處理?式有著更重要的意義。那就是同時要保證作為實時系統(tǒng)?個任務(wù)的原有Linux內(nèi)核仍正常運?。為此,RT-Linux在Linux內(nèi)核與中斷控制器硬件之間,加?了?層仿真軟件。所有的硬件中斷都被送往這層仿真軟件先做處理。在Linux源碼中,所有出現(xiàn)的cli,sti,iret指令,都被相應(yīng)的仿真宏定義取代,這些宏是S_CLI,S_STI,S_IRET。當(dāng)Linux執(zhí)?禁?中斷指令時,仿真軟件中的?個變量被重置。?論何時,當(dāng)中斷發(fā)?時,仿真軟件都會檢查此變量。如果變量被置位(Linux允許中斷),則Linux中斷處理函數(shù)被?即調(diào)?。如果變量沒有被置位(Linux禁?中斷),則中斷處理函數(shù)不被調(diào)?。但是,此變量中相應(yīng)的某個?特會被置位,以記錄下有中斷等待處理。當(dāng)Linux重新使能中斷后,所有等待處理中斷的處理函數(shù)會依次執(zhí)?。這種仿真中斷的技術(shù)稱為軟中斷。這樣的結(jié)構(gòu)下,Linux失去了對中斷的直接控制,因此它不會影響那些不通過仿真軟件的實時中斷,保證了RT-Linux的實時性。Linux使?由Intel80x86系列處理器提供的頁?機制,為每?任務(wù)提供互相獨?的內(nèi)存空間,并有內(nèi)存保護。在實時系統(tǒng)中,這樣做帶來的直接問題是任務(wù)切換時間過長。因此,后來的RT-Linux設(shè)計采?的?法是在同?個地址空間運?所有的實時任務(wù)。并且,使?的是內(nèi)核地址空間。之所以使?內(nèi)核地址空間,是為了把由內(nèi)存保護級別變化所引起的額外開銷消除。并且,Linux提供動態(tài)裝載內(nèi)核模塊(ladablekernelmodules)功能也可以?在實時系統(tǒng)中。?法是把實時任務(wù)作為可裝載內(nèi)核模塊創(chuàng)建,運?,及刪除。RT-Linux使?內(nèi)核地址空間運?的?案,與不使?內(nèi)存保護的VxWorks?樣,同樣存在地址越界引起的危險。任何錯誤的實時任務(wù)都可能破壞整個系統(tǒng)。Linux系統(tǒng)的?個主要特點是他的?絡(luò)功能?常強?。RT-Linux由于具有雙內(nèi)核,可以很好的利?linux的?絡(luò)功能。嵌?式Linux的圖形?戶界?有很多選擇,?如MicroWidows、緊縮的XWidow、tinyX等,國內(nèi)做的?較出?的是miniGUI。miniGUI最初是為了滿??個?業(yè)控制系統(tǒng)(計算機數(shù)控系統(tǒng))?設(shè)計和開發(fā)的,該系統(tǒng)就是采?RT-Linux作為實時操作系統(tǒng)。由于可以利?Linux?由開放的豐富資源,相應(yīng)的開發(fā)?具也很豐富。RTLinux是?個嚴(yán)格遵守POSIX1003.13技術(shù)規(guī)范的硬實時操作系統(tǒng),運?在Linux或者BSDUnix之上。RTLinux堅持分離實時和?實時代碼,操作系統(tǒng)和應(yīng)?軟件中的關(guān)鍵實時組件將給予絕對的優(yōu)先權(quán),以避免?實時組件影響實時組件的響應(yīng)時間。實時內(nèi)核為需要微秒級中斷延遲的軟件提供了?個熟悉的POSIX線程和精確調(diào)度。VxWorks在體系結(jié)構(gòu)上屬?“客戶機/服務(wù)器”結(jié)構(gòu)。也有另?種觀點認(rèn)為它是統(tǒng)?模型結(jié)構(gòu)[15,16,17,24,28,57]。與QNX相?,VxWorks的“客戶機/服務(wù)器”概念要模糊?些。VxWorks運?系統(tǒng)的核?是“wind”微內(nèi)核。wind微內(nèi)核?持全部的實時功能,包括多任務(wù),任務(wù)調(diào)度,任務(wù)間同步/通信和內(nèi)存管理四項主要功能。核?以外的其它功能都作為任務(wù)運?。?如?件系統(tǒng),調(diào)試任務(wù),TCP/IP協(xié)議模塊等。VxWorks缺少必要的存儲保護機制。最?優(yōu)先級的任務(wù)和?戶定義的任務(wù)在同?個地址空間運?。這樣做的好處是VxWorks任務(wù)切換時的時間?常短。缺點也是明顯的,增加了系統(tǒng)的不穩(wěn)定性。不過,VxWorks也提供了替代?案,另?個可選模塊(VxVMI)為系統(tǒng)任務(wù)提供了保護。VxWorks另?缺點是多CPU協(xié)同?作能?差。不同CPU上運?的任務(wù)間通信只能通過消息隊列(messagequeue),并且這類消息隊列必須在CPU之間有共享內(nèi)存時才可?。?持共享內(nèi)存的模塊(VxMP)還必須另外購買。當(dāng)然,Socket機制可?于類似的應(yīng)?中(VxWorks的?絡(luò)功能很強)。但是,在可靠的連路上使?TCP/IP協(xié)議給系統(tǒng)增加了許多延時和額外處理開銷。圖2.4VxWorks系統(tǒng)結(jié)構(gòu)圖VxWorks中,所有的任務(wù)運?在同?內(nèi)存空間,彼此間缺少保護。為?戶提供的優(yōu)先級數(shù)?256,能夠滿?較為復(fù)雜的實時應(yīng)?需求。系統(tǒng)所能夠創(chuàng)建的任務(wù)數(shù)?與VxWorks?關(guān),只受制于內(nèi)存??。在任務(wù)調(diào)度??,?持搶占式優(yōu)先級調(diào)度策略。并且,可以選擇使?Round-Robin調(diào)度。VxWorks提供了完善的機制解決搶占式調(diào)度帶來的優(yōu)先級逆轉(zhuǎn)(PriorityInvert)問題??汕短住⒎謨?yōu)先級的中斷?式。所有中斷響應(yīng)在特殊的中斷上下?中執(zhí)?,與任務(wù)上下??關(guān)。所有中斷使?同?中斷棧。中斷棧的??必須考慮到所有的中斷嵌套情況。中斷與任務(wù)間的通信有多種?式:共享內(nèi)存,環(huán)形緩沖區(qū),信號量,消息隊列,管道。VxWorks缺少內(nèi)存保護機制,導(dǎo)致了系統(tǒng)的不穩(wěn)定性。
VxWorks的?絡(luò)系統(tǒng)基本上是移植了BSD4.4Unix的TCP/IP協(xié)議族,僅在實時性上進(jìn)?了較?的修改,如?Semaphores代替原TCP/IP實現(xiàn)中的InterruptLock和修改Socket代碼中?Timeout的部分。這使得?絡(luò)應(yīng)?層的開發(fā)和移植都?常?便。VxWorks?持?業(yè)標(biāo)準(zhǔn)TCP/IP協(xié)議族,具體包括:lllllIP、IGMP、CIDR、TCP、UDP、ARP、RARP、RIPV1/V2StandardBerkeleySocketsZ-bufs、NFS、RPCPPP、BOOTP、DNS、DHCP、TFTP、FTPRLOGIN、TELNET、RSHVxWorks還?持可選的Windnet產(chǎn)品,包括SNMP、OSPF、STREAMS等。但是VxWorks的?絡(luò)功能還有?定的缺陷,?如?前版本的PPP協(xié)議還有?定的局限性,最多只能?持16路鏈路。VxWorks的優(yōu)勢在于多任務(wù)和實時性,做圖形界?不是很出?。?前VxWorks上的GUI主要有三種選擇:windML、ZINC和Tilcon。WindML即WindMediaLibrary(媒體庫),是WindRiver的專業(yè)圖形化環(huán)境,它主要是為了滿?較簡單的單功能設(shè)備的圖像要求?來提供基本的圖形、視頻和聲頻技術(shù)以及提供?個設(shè)計標(biāo)準(zhǔn)設(shè)備驅(qū)動程序框架。WindMLAPI庫提供了?個統(tǒng)?的圖形硬件接?以及處理輸?設(shè)備和輸?設(shè)備事件的能?。WindML包括兩個組件:軟件開發(fā)包(SDK)和驅(qū)動程序開發(fā)包(DDK)。SDK組件?來開發(fā)應(yīng)?程序,它提供了?個全?的API集,包括圖形、輸?處理、多媒體、字體和內(nèi)存管理。DDK組件是?來實現(xiàn)驅(qū)動程序的,它提供了?個完整的驅(qū)動程序參考集,包括硬件配置和API集,以使得開發(fā)者能夠迅速的引導(dǎo)和使???的驅(qū)動程序。Zinc是?個?向?qū)ο蠛推脚_獨?的GUI(圖形化?戶界?)設(shè)計框架。WindRiver提供兩個不同版本的Zinc,分別是運?于桌?系統(tǒng)(?如windows和UNIX系統(tǒng))的版本和運?于嵌?式系統(tǒng)(?如Vxworks和pSOS)的版本。Tilcon是?個實時操作系統(tǒng)圖形開發(fā)?具。同步?持最新版本的Tornado/VxWorks以及WindML多媒體庫。適?與VxWorks實時環(huán)境下構(gòu)建虛擬儀表,實時控制,分布式控制等?級圖形應(yīng)?。Tilcon本?已經(jīng)集成?量成熟控件,?戶再?需調(diào)?低級的圖形函數(shù)去畫線填充,可以象Windows下VB可視化編程?樣?拖動控件的?式構(gòu)造??的圖形應(yīng)?。Tilcon開發(fā)的圖形界?同時?持本地和分布式顯?。圖形界?開發(fā)完成后就可以?動的顯?在本地或通過TCP/IP?絡(luò)顯?到其他?絡(luò)平臺上。?持OPC,XML,SOAP等標(biāo)準(zhǔn)?業(yè)協(xié)議。VxWorks?持POSIX1003.1b的規(guī)定和1003.1中有關(guān)基本系統(tǒng)調(diào)?的規(guī)定,其中包括進(jìn)程初始化、?件和?錄、I/O初始化、語?服務(wù)、?錄管理。?且VxWorks還?持POSIX1003.1b的實時擴展,包括異步I/O、計數(shù)型信號量、消息隊列、信號、內(nèi)存管理和調(diào)度控制等。ONX在體系結(jié)構(gòu)上?常先進(jìn)?效,采?的是“客戶機/服務(wù)器”結(jié)構(gòu),具備微內(nèi)核和許多可選服務(wù)器進(jìn)程。微內(nèi)核只實現(xiàn)實時操作系統(tǒng)應(yīng)該具備的基本功能即:任務(wù)調(diào)度,進(jìn)程間通信,中斷處理,?絡(luò)接?[18,19,20,21,22,24,25,26,27,28]。其它的功能都以協(xié)作進(jìn)程(CooperativeProcesses)的?式實現(xiàn),這些協(xié)作進(jìn)程就是服務(wù)器進(jìn)程,它們向客戶進(jìn)程(如?戶應(yīng)?進(jìn)程)提供服務(wù)。在QNX中,服務(wù)器進(jìn)程的例?很多,象?件管理器,進(jìn)程管理器,?絡(luò)管理器,圖形界?管理器等等。微內(nèi)核運?在優(yōu)先級0,服務(wù)器進(jìn)程和設(shè)備驅(qū)動程序運?在優(yōu)先級1或2。應(yīng)?進(jìn)程運?在優(yōu)先級3。QNX的優(yōu)先級保護機制使得整個系統(tǒng)的穩(wěn)定性?VxWorks有提?。QNX是基于消息傳遞(MessagePassing)的操作系統(tǒng)。消息傳遞是QNX的基本進(jìn)程間通信機制(IPC)。其消息傳遞服務(wù)基于客戶機/服務(wù)器模型:客戶進(jìn)程向服務(wù)進(jìn)程發(fā)送消息,服務(wù)進(jìn)程也?消息響應(yīng)。許多QNX系統(tǒng)調(diào)?都是基于這樣的機制。?如,如果?戶進(jìn)程想打開某個?件,這個系統(tǒng)調(diào)?就被轉(zhuǎn)換為?條消息,發(fā)送給?件管理器。?件管理器收到消息,打開?件后,將?件句柄通過消息返回給調(diào)?者。由于QNX的微內(nèi)核結(jié)構(gòu)中集成了消息機制和?絡(luò)功能,因此,QNX的分布計算能?很強,適合于分布式應(yīng)?。QNX的?絡(luò)管理器對?戶進(jìn)程屏蔽了?絡(luò)的存在,使得不同CPU上的?戶進(jìn)程間通信時仍能采?消息機制,消息使??式與本地?戶進(jìn)程間通信完全?致。圖2.5QNX微內(nèi)核結(jié)構(gòu)圖2.6QNX系統(tǒng)結(jié)溝QNX使?進(jìn)程/線程模型。QNX脫胎于UNIX操作系統(tǒng),所以它具備進(jìn)程(Process)的概念。在QNX中,每個進(jìn)程都享有獨?的虛擬存儲空間,使系統(tǒng)更加穩(wěn)定。?在VxWorks中,需要另外的模塊才能提供類似的功能。
QNX是多進(jìn)程系統(tǒng)。其進(jìn)程可以創(chuàng)建線程(Thread)。QNX的線程與POSIX定義的線程概念還是有所區(qū)別的。在QNX中,線程與?進(jìn)程享受同樣的數(shù)據(jù)段和代碼段,但是,有些操作系統(tǒng)對象,如時鐘,?件句柄等,卻不能共享。并且,在?進(jìn)程被殺死后,派?的線程仍可以繼續(xù)運?。QNX提供的優(yōu)先級數(shù)?64個,系統(tǒng)能夠創(chuàng)建的進(jìn)程數(shù)為4095個,每個進(jìn)程能夠創(chuàng)建32767個線程。任務(wù)調(diào)度??,提供四種調(diào)度策略:基于優(yōu)先級的FIFO調(diào)度(SCHED_FIFO),基于優(yōu)先級的Round-Robin調(diào)度(SCHED_RR),Sporadic調(diào)度(SCHED_SPORADIC)以及其他調(diào)度策略(SCHED_OTHER)。其中SCHED_OTHER的調(diào)度策略和FIFO相同,但將來會改變,所以不推薦使?。QNX采?的也是嵌套,分優(yōu)先級的中斷?式。中斷ISR在掛接它們的進(jìn)程的上下?中執(zhí)?。每個ISR具有它??的堆棧。QNX中斷與進(jìn)程通信的?式有信號(Signals)和脈沖(Pulses)。QNX的內(nèi)存保護機制相當(dāng)完善。每?個進(jìn)程都在獨?的虛擬空間運?,具有獨?的數(shù)據(jù)段和代碼段。虛擬內(nèi)存由Intel處理器的分頁功能提供。為了避兔內(nèi)存碎?問題,QNX使?固定??內(nèi)存分段。QNX提供的內(nèi)存保護提?了系統(tǒng)穩(wěn)定性,對于系統(tǒng)調(diào)試階段也很有幫助。QNX有QNX機器之間專??絡(luò),QNX機器??之間通信使?的協(xié)議,將多臺QNX物理機聯(lián)成?體,在各物理機之間共享各種資源,使各物理機聯(lián)結(jié)成為?臺邏輯機。對于需要分布式并?計算的應(yīng)?系統(tǒng)??,QNX系統(tǒng)的這種特點?疑提供了極?的?便。對于處理量?分布式系統(tǒng)不能滿?需求的應(yīng)?系統(tǒng)??,QNX更提供對稱多處理器的?式的系統(tǒng)供?戶選擇。由于QNX微核及消息傳遞結(jié)構(gòu),通過QNX處理由許多具體計算機(節(jié)點)組成的?絡(luò)系統(tǒng)就像?臺單?的計算機。節(jié)點之間是平等的,每個節(jié)點都是?絡(luò)根?錄下的?個??錄,每個節(jié)點都可以把其它節(jié)點當(dāng)作?個圖表來操作,不需要專門的遠(yuǎn)程操作命令。?絡(luò)允許任何進(jìn)程使??絡(luò)中任何計算機的任何資源。?盤節(jié)點能由?絡(luò)?舉,使??絡(luò)中處于任何地?的任何資源。對于?些關(guān)鍵性的應(yīng)?,QNX可以通過利?分布式?絡(luò)信息實現(xiàn)熱備份。QNX?絡(luò)具有透明的分布處理能?,容錯?絡(luò)功能,均衡負(fù)荷功能,可擴充的結(jié)構(gòu)。?絡(luò)節(jié)點之間多重冗余連結(jié)保證了某?局部?絡(luò)發(fā)?故障時系統(tǒng)能正常?作。QNX節(jié)點也能通過約定的?絡(luò)協(xié)議(TCP/IP,SL/IP,RPC,NFS,F(xiàn)TP,Telnet,DOSLAN協(xié)議等)與?QNX系統(tǒng)通訊。QNX是少數(shù)?持圖形?戶界?的實時操作系統(tǒng)之?。不同于?些實時操作系統(tǒng),QNX對圖形?戶界?的?持不是通過?戶可以使?的C/C++圖形函數(shù)庫的?式提供給?戶??編寫圖形界?,?是“?即”提供的。圖形?戶界?以?組運?模塊的?式,?戶只要運?這些模塊,就“?即”獲得了圖形?戶界?,本?不需編寫?條程序。具體優(yōu)勢將會在下?討論。QNX的PhotonmicroGUI窗?系統(tǒng),參照在QNX微內(nèi)核體系中為實現(xiàn)嵌?式系統(tǒng)的POSIXOS環(huán)境所成功采?的?法,遵循類似的原則建?起了具有??獨特風(fēng)格的窗?體系,即Photon微內(nèi)核機制。Photon微內(nèi)核本?是?個?進(jìn)程(有45KB代碼)。概括說來,Photon為建?GUI提供了?種新?法――使?微內(nèi)核和?組共同操作的進(jìn)程來實現(xiàn)圖形?戶界?。其特有的能?有:lll?持低內(nèi)存要求,允許Photon為那些因內(nèi)存容量的限制只能?持?個圖形庫的環(huán)境提供?級的窗?功能。提供了?常靈活的、?戶可以擴展的體系結(jié)構(gòu),這種體系結(jié)構(gòu)允許開發(fā)者按照??的需要擴充GUI。由于能夠?qū)崿F(xiàn)跨平臺的靈活連接,事實上?們可以從任何被連接的桌?環(huán)境中調(diào)?任何平臺中的Photon窗?應(yīng)?。PhAB(PhotonApplicationBuilder)是QNX下的?個可視化圖形界?程序開發(fā)?具,包括豐富的易于定制的?戶控件和語?編輯器。利?PhAB開發(fā)應(yīng)?程序的?般過程如圖2.7:圖2.7PhAB應(yīng)?程序開發(fā)過程圖QNX也是?個遵循POSIX1003.1標(biāo)準(zhǔn)及POSIX實時標(biāo)準(zhǔn)的實時操作系統(tǒng)。但在系統(tǒng)實現(xiàn)上與UNIX不同,因此,QNX雖然在外觀上很像UNIX,但并不屬于類UNIX操作系統(tǒng)。VxWorks程序可以移植到QNX,為QNX的開發(fā)帶來了很?的?便。作為對上?的詳細(xì)分析的?個總結(jié),做了?個簡單的?較表格,見表2.1:表2.1四種實時操作系統(tǒng)?較表WindowsCERT-LinuxVxWorksQNX體系結(jié)構(gòu)不嚴(yán)格的客戶機/服務(wù)器coredll.dll內(nèi)核雙內(nèi)核微內(nèi)核,客戶機/服務(wù)器可定制性有有有強調(diào)度算搶占式、基于優(yōu)先級的線程搶占式優(yōu)先級調(diào)FIFO,Roud-搶占式優(yōu)先級調(diào)度,最早期限優(yōu)先調(diào)度(EDF)法調(diào)度度,Round-Robinrobin,Adaptive,Sporadic最?任32個進(jìn)程每個進(jìn)程的線程4095個進(jìn)程,每個進(jìn)程可以有32767個線程――受內(nèi)存??的限制務(wù)數(shù)數(shù)受內(nèi)存的限制優(yōu)先級數(shù)641~RT_LOWEST_PRIORITY,可編程控制25664中斷處基于優(yōu)先級的可嵌套中斷機可嵌套、分優(yōu)先級的中斷?式軟中斷可嵌套、分優(yōu)先級的中斷?式理制內(nèi)存管理在同?個地址空間運?所有的實時任務(wù),使?的是內(nèi)核地址空間。存在地址越界危險。分頁虛擬內(nèi)存管理缺少內(nèi)存保護機制具有獨?的虛擬空間?絡(luò)能?有,且有??特有的?絡(luò)?件系統(tǒng)有有有GUI開eVB、eVC和J2SDK、windML、ZINC和Tilcon有很多選擇,?如國內(nèi)的miniGUIPhoton微內(nèi)核機制,PhAB發(fā)PJEE開放性Win32POSIXPOSIXPOSIX選擇QNX作為項?的嵌?式開發(fā)平臺主要基于以下?條理由:1)實時性。QNX提供?戶可控制的、優(yōu)先級驅(qū)動、
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZHAQ 6-2024 帶逆變輸出的儲能電源
- 醫(yī)院與醫(yī)學(xué)檢驗技術(shù)人員2025年度勞動合同
- 二零二五年度股權(quán)質(zhì)押與企業(yè)債務(wù)重組合同
- 二零二五年度集體宿舍租賃與社區(qū)治理服務(wù)合同
- 全面履行原則在2025年度房地產(chǎn)項目開發(fā)合同中的執(zhí)行要求
- 二零二五年度汽車運輸安全責(zé)任保險合作協(xié)議
- 二零二五年度文化展覽聘請藝術(shù)藝人演出合同
- 2025年度高科技研發(fā)項目投資債轉(zhuǎn)股協(xié)議書
- 2025年度新能源汽車產(chǎn)業(yè)鏈債權(quán)轉(zhuǎn)讓合同
- 二零二五年度電子元器件制造勞務(wù)派遣員工合同
- NB-T31065-2015風(fēng)力發(fā)電場調(diào)度運行規(guī)程
- 2024山東能源集團中級人才庫選拔【重點基礎(chǔ)提升】模擬試題(共500題)附帶答案詳解
- 油田設(shè)備租賃行業(yè)市場現(xiàn)狀供需分析及市場深度研究發(fā)展前景及規(guī)劃行業(yè)投資戰(zhàn)略研究報告(2024-2030)
- 四川省綿陽市東辰學(xué)校2023-2024學(xué)年七年級下學(xué)期3月月考語文卷
- 中國古典風(fēng)格設(shè)計
- 社會實踐報告表格范本
- 市政綜合項目工程竣工項目驗收總結(jié)報告自評
- 2024年“民用無人機及多旋翼無人機”駕駛員操控員技能與理論知識考試題庫含答案
- 2019譯林版高中英語全七冊單詞總表
- T-BJCC 1003-2024 首店、首發(fā)活動、首發(fā)中心界定標(biāo)準(zhǔn)
- 園區(qū)宣傳方案
評論
0/150
提交評論