欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
嵌入式操作系統選型分析
早期的嵌入式系統很多都不用操作系統,它們都是為了實(shí)現某些特定功能,使用一個(gè)簡(jiǎn)單的循環(huán)控制對外界的控制請求進(jìn)行處理,不具備現代操作系統的基本特征(如進(jìn)程管理、存儲管理、設備管理、網(wǎng)絡(luò )通訊等)。但隨著(zhù)控制系統越來(lái)越復雜,應用范圍越來(lái)越廣泛的時(shí)候,缺少操作系統就造成了很大的限制。C語(yǔ)言的出現促進(jìn)了操作系統的發(fā)展。20世紀80年代以來(lái),出現了各種各樣的商業(yè)用嵌入式操作系統。如QNX,VxWorks,RT-Linux以及Windows CE等。使得在嵌入式系統設計時(shí)有了很大的選擇余地,但選擇的操作系統是否恰當對整個(gè)系統的開(kāi)發(fā)有著(zhù)摯為關(guān)鍵的影響??偟膩?lái)說(shuō),嵌入式操作系統的選擇可以遵從一下幾條主要原則:
l        實(shí)時(shí)性。嵌入式操作系統的實(shí)時(shí)性主要與系統的結構、任務(wù)調度策略、中斷處理手段以及內存管理方法有關(guān)。
l        系統定制能力。工業(yè)控制產(chǎn)品不同于民用PC的WinTel(微軟Windows+Intel處理器)結構,后者比較簡(jiǎn)單,前者需求則是千差萬(wàn)別的,因此硬件系統也都不一樣,所以對系統的定制能力有較高的要求。
l        可移植性。當進(jìn)行嵌入式軟件開(kāi)發(fā)時(shí),可移植性是要重點(diǎn)考慮的問(wèn)題。良好的軟件移植性應該比較好,可以在不同平臺、不同系統上運行,跟操作系統無(wú)關(guān)。
l        可利用資源。產(chǎn)品開(kāi)發(fā)不同于學(xué)術(shù)課題研究,它以快速、低成本、高質(zhì)量的推出適合用戶(hù)需求的產(chǎn)品為目的。集中精力研發(fā)出產(chǎn)品的特色,其他功能盡量由操作系統附加或采用第三方產(chǎn)品,因此操作系統的可利用資源對于選型是一個(gè)重要參考條件。如果有大量的資源可以利用,無(wú)疑會(huì )極大的縮短開(kāi)發(fā)周期降低成本。
l        網(wǎng)絡(luò )能力?,F在的工業(yè)控制系統對聯(lián)網(wǎng)的要求越來(lái)越多,即使目前的產(chǎn)品不需要具有聯(lián)網(wǎng)的能力,也應該為以后的升級留下余地。
l        圖形界面開(kāi)發(fā)能力。友好的圖形界面對多數控制系統來(lái)說(shuō)都是必不可少的,相應的開(kāi)發(fā)工具是否功能強、使用簡(jiǎn)單對開(kāi)發(fā)的影響很大。
l        中文內核支持。畢竟,作為國內的工業(yè)控制系統,如果不支持中文,怎么能不說(shuō)是一個(gè)缺憾?
l        已有的條件。在滿(mǎn)足可靠應用的條件下,降低開(kāi)發(fā)成本是每個(gè)控制系統開(kāi)發(fā)考慮最多的因素之一。能根據自己的實(shí)際情況,合理的利用已有的條件,將會(huì )對降低成本有很大的作用,也會(huì )縮小產(chǎn)品的上市時(shí)間。
下面就四種常見(jiàn)的嵌入式操作系統對實(shí)時(shí)性、網(wǎng)絡(luò )能力、圖形界面開(kāi)發(fā)以及開(kāi)放性等方面進(jìn)行分析比較,并結合課題的實(shí)際情況,闡述了選擇QNX作為本課題的嵌入式系統設計平臺的理由。
Windows CE可分為四個(gè)主要模塊[10,11,12,24],如圖2.1所示,它們分別是內核模塊、對象存儲/文件系統模塊、網(wǎng)絡(luò )與通訊模塊、GWES模塊(圖形、窗口、事件子系統)。此外還有三個(gè)重要的組成部分:驅動(dòng)程序、設備管理器、OAL(OEM適配層,OEM Adaptation Layer)。
圖2.1 Windows CE體系結構圖
Windows CE內核模塊是coredll.dll表示,最小為200KB。它是Windows CE操作系統的核心,并為應用程序提供基本服務(wù):進(jìn)程管理、多任務(wù)多線(xiàn)程管理、內存和資源管理、中斷處理、異常處理等。Windows CE的RAM存儲內存空間又被稱(chēng)為“對象存儲(Object Store)”。一般包括三種類(lèi)型的數據:Windows CE文件系統(包括數據文件和程序)、系統注冊表和Windows CE數據庫(一種結構化存儲方法,Pocket PC內置程序多使用它)。Windows CE提供了比桌面系統更豐富的通訊支持。GWES模塊即圖形、窗口、事件子系統,是用戶(hù)、應用程序、操作系統之間的圖形用戶(hù)界面。而且Windows CE支持在沒(méi)有圖形界面的設備上使用諸如窗口、消息機制和電源管理的特性。
Windows CE內核支持按優(yōu)先級搶占的方式調度多任務(wù)。Windows CE最多支持32個(gè)進(jìn)程,系統啟動(dòng)時(shí)至少創(chuàng )建4個(gè)進(jìn)程:nk.exe(內核)、filesys.exe(文件系統)、gwes.exe(GUI支持)、device.exe(加載維護系統設備驅動(dòng)程序)。大多數平臺還有exeplorer.exe(外殼)等服務(wù)進(jìn)程,用戶(hù)實(shí)際可以使用的進(jìn)程也只有20多個(gè)。進(jìn)程有自己受保護的32MB虛擬地址空間,但沒(méi)有優(yōu)先級。Windows CE支持的優(yōu)先級是線(xiàn)程的優(yōu)先級。線(xiàn)程是操作系統調度和運行的基本單位。線(xiàn)程由進(jìn)程創(chuàng )建,是進(jìn)程的一個(gè)實(shí)體,總是隸屬于進(jìn)程,并共享進(jìn)程的地址空間。線(xiàn)程總數只受物理內存的限制。Windows CE實(shí)現搶占式、基于優(yōu)先級的線(xiàn)程調度,線(xiàn)程之間由8個(gè)優(yōu)先級來(lái)競爭CPU時(shí)間片。線(xiàn)程間的“同步”由“等待函數”和“等待對象”實(shí)現:將等待對象作為參數傳遞給等待函數,等待函數直到滿(mǎn)足條件才返回;如果不滿(mǎn)足條件,那么調用線(xiàn)程一直處于等待狀態(tài)。Windows CE支持的“等待對象”包括:臨界區域對象、事件對象和互斥體對象。
四種操作系統都采用同樣的傳統中斷模式。用戶(hù)往某一中斷源掛接特定中斷后,實(shí)時(shí)操作系統創(chuàng )建一條ISR(中斷服務(wù)例程)。所有的ISR地址保存在中斷向量表中,并被硬件直接調用。ISR先執行一些保護現場(chǎng)的操作,然后調用用戶(hù)定義的中斷響應函數。
Windows CE采用的是基于優(yōu)先級的可嵌套中斷機制。Windows CE的中斷處理分為兩部分:ISR和IST(中斷服務(wù)線(xiàn)程)。ISR是核心代碼部分,IST是用戶(hù)代碼部分。Windows CE可以將中斷請求(ISR)映射為硬件中斷,并且實(shí)現相應的ISR和IST。Windows CE的中斷機制是:當ISR被觸發(fā)時(shí),ISR只負責啟動(dòng)IST,一旦IST啟動(dòng)后,ISR立即就返回,以便響應新的中斷。IST負責處理實(shí)際的中斷處理。ISR運行在特殊的上下文中。IST是一個(gè)普通的應用程序線(xiàn)程,具有它自己的上下文和堆棧。
Windows CE實(shí)現了“分頁(yè)虛擬內存管理系統”。實(shí)現虛擬內存機制需要設備中的CPU具有MMU(Memory Manager Unit)。Windows CE使用CPU的MMU來(lái)實(shí)時(shí)地將虛擬地址轉換為物理地址。Windows CE為全部應用程序實(shí)現的虛擬地址空間為2GB,為每個(gè)應用程序實(shí)現的虛擬地址空間為32MB。虛擬頁(yè)面可以處于三種狀態(tài):空閑、保留、提交(占用)??臻e頁(yè)(free)是可以被保留或提交的可用頁(yè)。保留頁(yè)(reserved)是邏輯頁(yè)已分配但沒(méi)有分配物理存儲的頁(yè)。提交/占用頁(yè)(committed)是物理存儲已分配的頁(yè)。
Windows CE提供了豐富的通訊支持,主要有:串行通訊(支持PPP/SLIP協(xié)議實(shí)現的串行直接連接和撥號連接),TCP/IP、FTP、HTTP協(xié)議和Winsock1.1的一個(gè)子集合,紅外通訊協(xié)議IrDA、IrSock和IrComm,通過(guò)網(wǎng)絡(luò )驅動(dòng)程序接口規范(NDIS)支持局域網(wǎng),支持遠程訪(fǎng)問(wèn)RAS、USB連接、藍牙連接和無(wú)線(xiàn)局域網(wǎng)連接等,支持SSPI(“安全支持提供者接口”)、CAPI(密碼API)、TAPI(電話(huà)API)等。
Windows CE程序開(kāi)發(fā)語(yǔ)言主要是eVB和eVC。程序開(kāi)發(fā)工具重要由微軟提供,主要產(chǎn)品有eMbedded Visual Tools和Windows CE Platform Builder。此外,也可使用Java語(yǔ)言開(kāi)發(fā)Windows CE程序,相關(guān)工具由SUN公司提供,包括PC端的Java運行環(huán)境J2SDK for windows和Personal Java的仿真器PJEE(Personal Java Emulation Environment)。
這里所謂的開(kāi)放性主要指的是與POSIX標準的符合程度。POSIX表示可移植操作系統接口(Portable Operating System Interface)。IEEE最初開(kāi)發(fā)POSIX標準,是為了提高UNIX環(huán)境下應用程序的可移植性。然而,POSIX并不局限于UNIX。許多其它的操作系統,例如Microsoft Windows NT,都支持POSIX標準,尤其是 IEEE Std. 1003.1-1990(1995 年修訂)或 POSIX.1,POSIX.1 提供了源代碼級別的C語(yǔ)言應用編程接口(API)給操作系統的服務(wù)程序,例如讀寫(xiě)文件。POSIX.1已經(jīng)被國際標準化組織(International Standards Organization,ISO)所接受,被命名為ISO/IEC 9945-1:1990 標準。
Windows CE是直接從NT發(fā)展過(guò)來(lái)的,繼承了1000多個(gè)Win32 API 函數。Win32是Widows NT和Windows 95的編程接口。Win32對于Windows就像POSIX對于Unix一樣。
RT-Linux從本質(zhì)上講是對通用操作系統的Linux的實(shí)時(shí)改造的變種[1,6,13,14,28,57]。
Linux作為一種通用操作系統,雖然由于其開(kāi)放性近來(lái)在嵌入式設計中有了較廣的應用,但由于其注重的是系統的平均性能,在很多方面使得Linux不適合實(shí)時(shí)應用。主要的幾點(diǎn)包括:分時(shí)調度策略,較低的時(shí)鐘分辨率,內核的非搶占式機制,過(guò)多的禁止中斷操作,以及虛擬內存機制。這些對于通用操作系統來(lái)說(shuō)非常出色的設計在實(shí)時(shí)系統中都變得不合時(shí)宜。
然而,RT-Linux把Linux作為新的實(shí)時(shí)內核調度下的最低優(yōu)先級任務(wù)執行。其本身的實(shí)現只需要一個(gè)實(shí)時(shí)內核。設計中的巧妙之處是通過(guò)截獲底層中斷改造了Linux,取得CPU控制權執行實(shí)時(shí)任務(wù)。這樣,只需對Linux進(jìn)行較小的改動(dòng)就可以實(shí)現實(shí)時(shí)功能,且能夠使用Linux下提供的豐富開(kāi)發(fā)工具和己有功能,如網(wǎng)絡(luò )功能,圖形接口等。更重要的是,RT-Linux還繼承了Linux具備的開(kāi)放性、標準化、技術(shù)支持豐富、便宜等特性。并且,Linux內核升級與RT-Linux升級保持了彼此獨立,使得整個(gè)系統更容易維護。
RT-Linux實(shí)現了一個(gè)小的實(shí)時(shí)核心,僅支持底層任務(wù)創(chuàng )建、中斷服務(wù)例程的裝入、底層任務(wù)通信隊列、中斷服務(wù)例程(ISR)和Linux進(jìn)程。原來(lái)的非實(shí)時(shí)Linux內核作為一個(gè)可搶占的任務(wù)運行于這個(gè)小內核之上,所有的任務(wù)都在內核地址空間運行。它不同于微內核和大型內核,是雙內核體系結構。
與其他RTOS相比,RT-Linux進(jìn)程間通信不夠靈活。其實(shí)時(shí)任務(wù)之間,及實(shí)時(shí)任務(wù)與其他Linux任務(wù)之間的通信方式只有一種:RT-FIFO。RT-FIFO緩沖區分配在內核地址空間。對RT-FIFO的讀寫(xiě)操作均為原子操作,不能夠阻塞。
圖2.2和圖2.3分別示出了純Linux體系結構和RT-Linux體系結構。
圖2.2  純Linux體系結構圖
圖2.3 RT-Linux體系結構圖
RT-Linux在操作系統之下實(shí)現了一個(gè)簡(jiǎn)單的實(shí)時(shí)內核,Linux本身作為一個(gè)可搶占的任務(wù)在核內運行,其優(yōu)先級最低,隨時(shí)會(huì )被高優(yōu)先級的實(shí)時(shí)任務(wù)搶占。
RT-Linux是開(kāi)放源碼的操作系統。其開(kāi)放性給用戶(hù)帶來(lái)了很大便利。在任務(wù)調度方面,用戶(hù)可以自行編寫(xiě)調度程序,可實(shí)現為可加載的核心模塊。目前在實(shí)時(shí)Linux上實(shí)現的調度算法有:搶占式優(yōu)先級調度,最早期限優(yōu)先調度(EDF)。RT-Linux允許的實(shí)時(shí)任務(wù)優(yōu)先級范圍從1(最高)到RT_LOWEST_PRIORITY。同樣由于源碼開(kāi)放性,優(yōu)先級數目也可以由用戶(hù)在編譯核心時(shí),指定相應的RT_LOWEST_PRIORITY值確定,這有給了用戶(hù)很多自由。
對于RT-Linux,中斷處理方式有著(zhù)更重要的意義。那就是同時(shí)要保證作為實(shí)時(shí)系統一個(gè)任務(wù)的原有Linux內核仍正常運行。為此,RT-Linux在Linux內核與中斷控制器硬件之間,加入了一層仿真軟件。所有的硬件中斷都被送往這層仿真軟件先做處理。在Linux源碼中,所有出現的cli,sti,iret指令,都被相應的仿真宏定義取代,這些宏是S_CLI,S_STI,S_IRET。
當Linux執行禁止中斷指令時(shí),仿真軟件中的一個(gè)變量被重置。無(wú)論何時(shí),當中斷發(fā)生時(shí),仿真軟件都會(huì )檢查此變量。如果變量被置位(Linux允許中斷),則Linux中斷處理函數被立即調用。如果變量沒(méi)有被置位(Linux禁止中斷),則中斷處理函數不被調用。但是,此變量中相應的某個(gè)比特會(huì )被置位,以記錄下有中斷等待處理。當Linux重新使能中斷后,所有等待處理中斷的處理函數會(huì )依次執行。這種仿真中斷的技術(shù)稱(chēng)為軟中斷。這樣的結構下,Linux失去了對中斷的直接控制,因此它不會(huì )影響那些不通過(guò)仿真軟件的實(shí)時(shí)中斷,保證了RT-Linux的實(shí)時(shí)性。
Linux使用由Intel 80x86系列處理器提供的頁(yè)面機制,為每一任務(wù)提供互相獨立的內存空間,并有內存保護。在實(shí)時(shí)系統中,這樣做帶來(lái)的直接問(wèn)題是任務(wù)切換時(shí)間過(guò)長(cháng)。因此,后來(lái)的RT-Linux設計采用的方法是在同一個(gè)地址空間運行所有的實(shí)時(shí)任務(wù)。并且,使用的是內核地址空間。之所以使用內核地址空間,是為了把由內存保護級別變化所引起的額外開(kāi)銷(xiāo)消除。并且,Linux提供動(dòng)態(tài)裝載內核模塊(ladable kernel modules)功能也可以用在實(shí)時(shí)系統中。方法是把實(shí)時(shí)任務(wù)作為可裝載內核模塊創(chuàng )建,運行,及刪除。
RT-Linux使用內核地址空間運行的方案,與不使用內存保護的VxWorks一樣,同樣存在地址越界引起的危險。任何錯誤的實(shí)時(shí)任務(wù)都可能破壞整個(gè)系統。
Linux系統的一個(gè)主要特點(diǎn)是他的網(wǎng)絡(luò )功能非常強大。RT-Linux由于具有雙內核,可以很好的利用linux的網(wǎng)絡(luò )功能。
嵌入式Linux的圖形用戶(hù)界面有很多選擇,比如MicroWidows、緊縮的X Widow、tinyX等,國內做的比較出色的是miniGUI。miniGUI最初是為了滿(mǎn)足一個(gè)工業(yè)控制系統(計算機數控系統)而設計和開(kāi)發(fā)的,該系統就是采用RT-Linux作為實(shí)時(shí)操作系統。由于可以利用Linux自由開(kāi)放的豐富資源,相應的開(kāi)發(fā)工具也很豐富。
RTLinux是一個(gè)嚴格遵守POSIX 1003.13技術(shù)規范的硬實(shí)時(shí)操作系統,運行在Linux或者BSD Unix之上。RTLinux堅持分離實(shí)時(shí)和非實(shí)時(shí)代碼,操作系統和應用軟件中的關(guān)鍵實(shí)時(shí)組件將給予絕對的優(yōu)先權,以避免非實(shí)時(shí)組件影響實(shí)時(shí)組件的響應時(shí)間。實(shí)時(shí)內核為需要微秒級中斷延遲的軟件提供了一個(gè)熟悉的POSIX線(xiàn)程和精確調度。
VxWorks在體系結構上屬子“客戶(hù)機/服務(wù)器”結構。也有另一種觀(guān)點(diǎn)認為它是統一模型結構[15,16,17,24,28,57]。與QNX相比,VxWorks的“客戶(hù)機/服務(wù)器”概念要模糊一些。
VxWorks運行系統的核心是“wind”微內核。wind微內核支持全部的實(shí)時(shí)功能,包括多任務(wù),任務(wù)調度,任務(wù)間同步/通信和內存管理四項主要功能。核心以外的其它功能都作為任務(wù)運行。比如文件系統,調試任務(wù),TCP/IP協(xié)議模塊等。
VxWorks缺少必要的存儲保護機制。最高優(yōu)先級的任務(wù)和用戶(hù)定義的任務(wù)在同一個(gè)地址空間運行。這樣做的好處是VxWorks任務(wù)切換時(shí)的時(shí)間非常短。缺點(diǎn)也是明顯的,增加了系統的不穩定性。不過(guò),VxWorks也提供了替代方案,另一個(gè)可選模塊(VxVMI)為系統任務(wù)提供了保護。
VxWorks另一缺點(diǎn)是多CPU協(xié)同工作能力差。不同CPU上運行的任務(wù)間通信只能通過(guò)消息隊列(message queue),并且這類(lèi)消息隊列必須在CPU之間有共享內存時(shí)才可用。支持共享內存的模塊(VxMP)還必須另外購買(mǎi)。
當然,Socket機制可用于類(lèi)似的應用中(VxWorks的網(wǎng)絡(luò )功能很強)。但是,在可靠的連路上使用TCP/IP協(xié)議給系統增加了許多延時(shí)和額外處理開(kāi)銷(xiāo)。
圖2.4  VxWorks系統結構圖
VxWorks中,所有的任務(wù)運行在同一內存空間,彼此間缺少保護。為用戶(hù)提供的優(yōu)先級數目256,能夠滿(mǎn)足較為復雜的實(shí)時(shí)應用需求。系統所能夠創(chuàng )建的任務(wù)數目與VxWorks無(wú)關(guān),只受制于內存大小。在任務(wù)調度方面,支持搶占式優(yōu)先級調度策略。并且,可以選擇使用Round-Robin調度。
VxWorks提供了完善的機制解決搶占式調度帶來(lái)的優(yōu)先級逆轉(Priority Invert)問(wèn)題。
可嵌套、分優(yōu)先級的中斷方式。所有中斷響應在特殊的中斷上下文中執行,與任務(wù)上下文無(wú)關(guān)。所有中斷使用同一中斷棧。中斷棧的大小必須考慮到所有的中斷嵌套情況。
中斷與任務(wù)間的通信有多種方式:共享內存,環(huán)形緩沖區,信號量,消息隊列,管道。
VxWorks缺少內存保護機制,導致了系統的不穩定性。
VxWorks的網(wǎng)絡(luò )系統基本上是移植了BSD4.4 Unix的TCP/IP協(xié)議族,僅在實(shí)時(shí)性上進(jìn)行了較大的修改,如用Semaphores代替原TCP/IP實(shí)現中的Interrupt Lock和修改Socket代碼中無(wú)Timeout的部分。這使得網(wǎng)絡(luò )應用層的開(kāi)發(fā)和移植都非常方便。VxWorks支持工業(yè)標準TCP/IP協(xié)議族,具體包括:
l        IP、IGMP、CIDR、TCP、UDP、ARP、RARP、RIPV1/V2
l        Standard Berkeley Sockets
l        Z-bufs、NFS、RPC
l        PPP、BOOTP、DNS、DHCP、TFTP、FTP
l        RLOGIN、TELNET、RSH
VxWorks還支持可選的Windnet產(chǎn)品,包括SNMP、OSPF、STREAMS等。但是VxWorks的網(wǎng)絡(luò )功能還有一定的缺陷,比如目前版本的PPP協(xié)議還有一定的局限性,最多只能支持16路鏈路。
VxWorks的優(yōu)勢在于多任務(wù)和實(shí)時(shí)性,做圖形界面不是很出色。目前VxWorks上的GUI主要有三種選擇:windML、ZINC和Tilcon。
WindML即Wind Media Library(媒體庫),是Wind River的專(zhuān)業(yè)圖形化環(huán)境,它主要是為了滿(mǎn)足較簡(jiǎn)單的單功能設備的圖像要求用來(lái)提供基本的圖形、視頻和聲頻技術(shù)以及提供一個(gè)設計標準設備驅動(dòng)程序框架。WindML API庫提供了一個(gè)統一的圖形硬件接口以及處理輸入設備和輸入設備事件的能力。WindML包括兩個(gè)組件:軟件開(kāi)發(fā)包(SDK)和驅動(dòng)程序開(kāi)發(fā)包(DDK)。SDK組件用來(lái)開(kāi)發(fā)應用程序,它提供了一個(gè)全面的API集,包括圖形、輸入處理、多媒體、字體和內存管理。DDK組件是用來(lái)實(shí)現驅動(dòng)程序的,它提供了一個(gè)完整的驅動(dòng)程序參考集,包括硬件配置和API集,以使得開(kāi)發(fā)者能夠迅速的引導和使用自己的驅動(dòng)程序。
Zinc是一個(gè)面向對象和平臺獨立的GUI(圖形化用戶(hù)界面)設計框架。Wind River提供兩個(gè)不同版本的Zinc,分別是運行于桌面系統(比如windows和UNIX系統)的版本和運行于嵌入式系統(比如Vxworks和pSOS)的版本。
Tilcon是一個(gè)實(shí)時(shí)操作系統圖形開(kāi)發(fā)工具。同步支持最新版本的Tornado/VxWorks以及WindML多媒體庫。適用與VxWorks實(shí)時(shí)環(huán)境下構建虛擬儀表,實(shí)時(shí)控制,分布式控制等高級圖形應用。Tilcon本身已經(jīng)集成大量成熟控件,用戶(hù)再無(wú)需調用低級的圖形函數去畫(huà)線(xiàn)填充,可以象Windows下VB可視化編程一樣用拖動(dòng)控件的方式構造自己的圖形應用。Tilcon開(kāi)發(fā)的圖形界面同時(shí)支持本地和分布式顯示。圖形界面開(kāi)發(fā)完成后就可以自動(dòng)的顯示在本地或通過(guò)TCP/IP網(wǎng)絡(luò )顯示到其他網(wǎng)絡(luò )平臺上。支持OPC,XML,SOAP等標準工業(yè)協(xié)議。
VxWorks支持POSIX 1003.1b的規定和1003.1中有關(guān)基本系統調用的規定,其中包括進(jìn)程初始化、文件和目錄、I/O初始化、語(yǔ)言服務(wù)、目錄管理。而且VxWorks還支持POSIX1003.1b的實(shí)時(shí)擴展,包括異步I/O、計數型信號量、消息隊列、信號、內存管理和調度控制等。
ONX在體系結構上非常先進(jìn)高效,采用的是“客戶(hù)機/服務(wù)器”結構,具備微內核和許多可選服務(wù)器進(jìn)程。微內核只實(shí)現實(shí)時(shí)操作系統應該具備的基本功能即:任務(wù)調度,進(jìn)程間通信,中斷處理,網(wǎng)絡(luò )接口[18,19,20,21,22,24,25,26,27,28]。
其它的功能都以協(xié)作進(jìn)程(Cooperative Processes)的方式實(shí)現,這些協(xié)作進(jìn)程就是服務(wù)器進(jìn)程,它們向客戶(hù)進(jìn)程(如用戶(hù)應用進(jìn)程)提供服務(wù)。在QNX中,服務(wù)器進(jìn)程的例子很多,象文件管理器,進(jìn)程管理器,網(wǎng)絡(luò )管理器,圖形界面管理器等等。微內核運行在優(yōu)先級0,服務(wù)器進(jìn)程和設備驅動(dòng)程序運行在優(yōu)先級1或2。應用進(jìn)程運行在優(yōu)先級3。QNX的優(yōu)先級保護機制使得整個(gè)系統的穩定性比VxWorks有提高。
QNX是基于消息傳遞(Message Passing)的操作系統。消息傳遞是QNX的基本進(jìn)程間通信機制(IPC)。其消息傳遞服務(wù)基于客戶(hù)機/服務(wù)器模型:客戶(hù)進(jìn)程向服務(wù)進(jìn)程發(fā)送消息,服務(wù)進(jìn)程也用消息響應。許多QNX系統調用都是基于這樣的機制。比如,如果用戶(hù)進(jìn)程想打開(kāi)某個(gè)文件,這個(gè)系統調用就被轉換為一條消息,發(fā)送給文件管理器。文件管理器收到消息,打開(kāi)文件后,將文件句柄通過(guò)消息返回給調用者。
由于QNX的微內核結構中集成了消息機制和網(wǎng)絡(luò )功能,因此,QNX的分布計算能力很強,適合于分布式應用。QNX的網(wǎng)絡(luò )管理器對用戶(hù)進(jìn)程屏蔽了網(wǎng)絡(luò )的存在,使得不同CPU上的用戶(hù)進(jìn)程間通信時(shí)仍能采用消息機制,消息使用方式與本地用戶(hù)進(jìn)程間通信完全一致。
圖2.5  QNX微內核結構
圖2.6  QNX系統結溝
QNX使用進(jìn)程/線(xiàn)程模型。QNX脫胎于UNIX操作系統,所以它具備進(jìn)程(Process)的概念。在QNX中,每個(gè)進(jìn)程都享有獨立的虛擬存儲空間,使系統更加穩定。而在VxWorks中,需要另外的模塊才能提供類(lèi)似的功能。
QNX是多進(jìn)程系統。其進(jìn)程可以創(chuàng )建線(xiàn)程(Thread)。QNX的線(xiàn)程與POSIX定義的線(xiàn)程概念還是有所區別的。在QNX中,線(xiàn)程與父進(jìn)程享受同樣的數據段和代碼段,但是,有些操作系統對象,如時(shí)鐘,文件句柄等,卻不能共享。并且,在父進(jìn)程被殺死后,派生的線(xiàn)程仍可以繼續運行。
QNX提供的優(yōu)先級數目64個(gè),系統能夠創(chuàng )建的進(jìn)程數為4095個(gè),每個(gè)進(jìn)程能夠創(chuàng )建32767個(gè)線(xiàn)程。任務(wù)調度方面,提供四種調度策略:基于優(yōu)先級的FIFO調度(SCHED_FIFO),基于優(yōu)先級的Round-Robin調度(SCHED_RR),Sporadic調度(SCHED_SPORADIC)以及其他調度策略(SCHED_OTHER)。其中SCHED_OTHER的調度策略和FIFO相同,但將來(lái)會(huì )改變,所以不推薦使用。
QNX采用的也是嵌套,分優(yōu)先級的中斷方式。中斷ISR在掛接它們的進(jìn)程的上下文中執行。每個(gè)ISR具有它自己的堆棧。
QNX中斷與進(jìn)程通信的方式有信號(Signals)和脈沖(Pulses)。
QNX的內存保護機制相當完善。每一個(gè)進(jìn)程都在獨立的虛擬空間運行,具有獨立的數據段和代碼段。虛擬內存由Intel處理器的分頁(yè)功能提供。為了避兔內存碎片問(wèn)題,QNX使用固定大小內存分段。
QNX提供的內存保護提高了系統穩定性,對于系統調試階段也很有幫助。
QNX有QNX機器之間專(zhuān)用網(wǎng)絡(luò ),QNX機器自身之間通信使用的協(xié)議,將多臺QNX物理機聯(lián)成一體,在各物理機之間共享各種資源,使各物理機聯(lián)結成為一臺邏輯機。對于需要分布式并行計算的應用系統而言,QNX系統的這種特點(diǎn)無(wú)疑提供了極大的方便。對于處理量而分布式系統不能滿(mǎn)足需求的應用系統而言,QNX更提供對稱(chēng)多處理器的方式的系統供用戶(hù)選擇。由于QNX微核及消息傳遞結構,通過(guò)QNX處理由許多具體計算機(節點(diǎn))組成的網(wǎng)絡(luò )系統就像一臺單一的計算機。節點(diǎn)之間是平等的,每個(gè)節點(diǎn)都是網(wǎng)絡(luò )根目錄下的一個(gè)子目錄,每個(gè)節點(diǎn)都可以把其它節點(diǎn)當作一個(gè)圖表來(lái)操作,不需要專(zhuān)門(mén)的遠程操作命令。網(wǎng)絡(luò )允許任何進(jìn)程使用網(wǎng)絡(luò )中任何計算機的任何資源。無(wú)盤(pán)節點(diǎn)能由網(wǎng)絡(luò )自舉,使用網(wǎng)絡(luò )中處于任何地方的任何資源。對于一些關(guān)鍵性的應用,QNX可以通過(guò)利用分布式網(wǎng)絡(luò )信息實(shí)現熱備份。QNX網(wǎng)絡(luò )具有透明的分布處理能力,容錯網(wǎng)絡(luò )功能,均衡負荷功能,可擴充的結構。網(wǎng)絡(luò )節點(diǎn)之間多重冗余連結保證了某一局部網(wǎng)絡(luò )發(fā)生故障時(shí)系統能正常工作。
QNX節點(diǎn)也能通過(guò)約定的網(wǎng)絡(luò )協(xié)議(TCP/IP,SL/IP,RPC,NFS,FTP,Telnet,DOSLAN協(xié)議等)與非QNX系統通訊。
QNX是少數支持圖形用戶(hù)界面的實(shí)時(shí)操作系統之一。不同于一些實(shí)時(shí)操作系統,QNX對圖形用戶(hù)界面的支持不是通過(guò)用戶(hù)可以使用的C/C++圖形函數庫的方式提供給用戶(hù)自己編寫(xiě)圖形界面,而是“立即”提供的。圖形用戶(hù)界面以一組運行模塊的方式,用戶(hù)只要運行這些模塊,就“立即”獲得了圖形用戶(hù)界面,本身不需編寫(xiě)一條程序。具體優(yōu)勢將會(huì )在下文討論。
QNX的Photon microGUI窗口系統,參照在QNX微內核體系中為實(shí)現嵌入式系統的POSIX OS環(huán)境所成功采用的方法,遵循類(lèi)似的原則建立起了具有自己獨特風(fēng)格的窗口體系,即Photon微內核機制。Photon微內核本身是一個(gè)小進(jìn)程(有45KB代碼)。概括說(shuō)來(lái),Photon為建立GUI提供了一種新方法――使用微內核和一組共同操作的進(jìn)程來(lái)實(shí)現圖形用戶(hù)界面。其特有的能力有:
l        支持低內存要求,允許Photon為那些因內存容量的限制只能支持一個(gè)圖形庫的環(huán)境提供高級的窗口功能。
l        提供了非常靈活的、用戶(hù)可以擴展的體系結構,這種體系結構允許開(kāi)發(fā)者按照自己的需要擴充GUI。
l        由于能夠實(shí)現跨平臺的靈活連接,事實(shí)上人們可以從任何被連接的桌面環(huán)境中調用任何平臺中的Photon窗口應用。
PhAB(Photon Application Builder)是QNX下的一個(gè)可視化圖形界面程序開(kāi)發(fā)工具,包括豐富的易于定制的用戶(hù)控件和語(yǔ)言編輯器。利用PhAB開(kāi)發(fā)應用程序的一般過(guò)程如圖2.7:
圖2.7  PhAB應用程序開(kāi)發(fā)過(guò)程圖
QNX也是一個(gè)遵循POSIX 1003.1標準及POSIX實(shí)時(shí)標準的實(shí)時(shí)操作系統。但在系統實(shí)現上與UNIX不同,因此,QNX雖然在外觀(guān)上很像UNIX,但并不屬于類(lèi)UNIX操作系統。
VxWorks程序可以移植到QNX,為QNX的開(kāi)發(fā)帶來(lái)了很大的方便。
作為對上面的詳細分析的一個(gè)總結,做了一個(gè)簡(jiǎn)單的比較表格,見(jiàn)表2.1:
表2.1  四種實(shí)時(shí)操作系統比較表
Windows CE
RT-Linux
VxWorks
QNX
體系結構
coredll.dll內核
雙內核
不嚴格的客戶(hù)機/服務(wù)器
微內核,客戶(hù)機/服務(wù)器
可定制性
調度算法
搶占式、基于優(yōu)先級的線(xiàn)程調度
搶占式優(yōu)先級調度,最早期限優(yōu)先調度(EDF)
搶占式優(yōu)先級調度,Round-Robin
FIFO,Roud-robin,Adaptive,Sporadic
最大任務(wù)數
32個(gè)進(jìn)程每個(gè)進(jìn)程的線(xiàn)程數受內存的限制
――
受內存大小的限制
4095個(gè)進(jìn)程,每個(gè)進(jìn)程可以有32767個(gè)線(xiàn)程
優(yōu)先級數
64
1~RT_LOWEST_PRIORITY,可編程控制
256
64
中斷處理
基于優(yōu)先級的可嵌套中斷機制
軟中斷
可嵌套、分優(yōu)先級的中斷方式
可嵌套、分優(yōu)先級的中斷方式
內存管理
分頁(yè)虛擬內存管理
在同一個(gè)地址空間運行所有的實(shí)時(shí)任務(wù),使用的是內核地址空間。存在地址越界危險。
缺少內存保護機制
具有獨立的虛擬空間
網(wǎng)絡(luò )能力
有,且有自己特有的網(wǎng)絡(luò )文件系統
GUI開(kāi)發(fā)
eVB、eVC和J2SDK、PJEE
有很多選擇,比如國內的miniGUI
windML、ZINC和Tilcon
Photon微內核機制,PhAB
開(kāi)放性
Win32
POSIX
POSIX
POSIX
選擇QNX作為項目的嵌入式開(kāi)發(fā)平臺主要基于以下幾條理由:
1)實(shí)時(shí)性。QNX提供用戶(hù)可控制的、優(yōu)先級驅動(dòng)、搶占式的調度方式,特殊的內核機制保證了其實(shí)時(shí)性非常強。上下文切換和中斷延時(shí)是操作系統實(shí)時(shí)性的兩個(gè)主要指標,QNX的時(shí)間指標都在微秒一級,如表2-1和表2-2所示[29]:
表2.2  典型中斷延遲時(shí)間
表2.3  典型上下文切換時(shí)間
處  理  器
中斷延時(shí)
處   理   器
上下文切換
166MHz Pentium
3.3 us
7400G4 PowerPC 460MHz
0.6 us
100MHz Pentium
4.4 us
R527X MIPS 166MHz
2.3 us
100MHz 486DX4
5.6 us
SH-4 200MHz
1.9 us
33MHz  386EX
22.5 us
SA-1110 StrongARM 207MHz
1.8 us
2)模塊化。QNX是一個(gè)模塊化、可裁剪的實(shí)時(shí)操作系統。它由微內核和一組協(xié)同工作的進(jìn)程構成,具有高度的可伸縮性。這個(gè)靈活的結構可以使用戶(hù)根據實(shí)際的需求,將系統配置成微小的(小至32K存儲空間)嵌入式操作系統或是包括幾百個(gè)處理器的超級(大至4G存儲空間)虛擬機操作系統。
3)穩定性。QNX建立在完全地址空間保護基礎之上的實(shí)時(shí)操作系統,具有很強的穩定性。
4)網(wǎng)絡(luò )能力。QNX是一個(gè)分布式操作系統。從用戶(hù)角度來(lái)看,運行QNX的局域網(wǎng)就像一臺集中式的多用戶(hù)計算機。除了其自身的網(wǎng)絡(luò )外,還支持與異型機器之間網(wǎng)絡(luò )通信的協(xié)議,如TCP/IP族的各種協(xié)議。
5)開(kāi)放性。QNX實(shí)時(shí)操作系統還是一個(gè)開(kāi)放的系統,其應用程序接口符合POSIX標準。使Linux/UNIX程序能夠方便地移植到QNX系統上來(lái),極大地擴展了QNX系統的可用資源。而且VxWorks上的程序也可以移植到QNX。因此,對于熟悉UNIX/LINUX或者VxWorks程序設計的人,更為方便從事QNX開(kāi)發(fā)。
6)功能強大的IDE。QNX Memontics新動(dòng)力開(kāi)發(fā)系統集成環(huán)境提供了各種方便的工具鏈、各種板級支持包、庫函數、源代碼開(kāi)發(fā)工具等。QNX還提供了多種宿主操作系統上Memontics集成開(kāi)發(fā)環(huán)境,如MS Windows,Linux,Solaris,QNX NEUTRINO等。
7)方便的GUI開(kāi)發(fā)。QNX提供了非常強大易用的Photon圖形用戶(hù)程序開(kāi)發(fā)工PhAB,采用所見(jiàn)即所得的方式,非常容易就可以開(kāi)發(fā)出靈活復雜優(yōu)美的用戶(hù)界面程序。對漢字編碼的支持也很完美。
8)非常廣泛的硬件支持。從PC/104到CompactPCI的最新的PC硬件,實(shí)際上QNX比其它操作系統支持更多的PC硬件,包括多達數百種的外圍器件。與美國AMD公司,英特爾和國家半導體公司的同盟關(guān)系確保芯片和參考平臺兼容性。僅CPU就支持x86、PowerPC、MIPS、ARM等。
9)豐富的網(wǎng)絡(luò )資源。目前基于QNX的開(kāi)發(fā)應用很廣泛,國內外形成了很多比較好的技術(shù)交流網(wǎng)站,QNX公司本身的技術(shù)支持網(wǎng)站內容也非常豐富。QNX系統的提供的幫助體系也很全面,搜索功能比較強。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
RTX與其他實(shí)時(shí)操作系統的比較
輕型web server比較
四種實(shí)時(shí)操作系統的分析比較
RTLinux的介紹—嵌入式學(xué)院(華清遠見(jiàn)旗下品牌)
在攻城獅眼里,傳統車(chē)企怎樣避免被出局?——車(chē)載操作系統篇
嵌入式之硬件系統&操作系統簡(jiǎn)介
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久