董 巍 馬 云
(1.中國電子科技集團公司第38研究所,安徽 合肥 230031;2.中國電子科技集團公司第32研究所,上海 200233)
由于信息科技和網絡科技的發展速率非常快,此時群我們正不斷的朝著后PC領域發展。而這個階段的一大顯著的體現就是存在于各個區域的嵌入式的體系。這個體系目前正不斷的朝著工業生產和我們平時的各項活動的一些細微層次之中發展。這個體系是當前發展速率最為迅猛的體系其中的一個,與之相關的軟件設計是人們非常關注的事項。要想獲取性能優秀,穩定性好的設計,就規定工作者不僅僅具有優秀的能力,同時還要在開發平臺之中運行嵌入式的體系,開展交叉性的活動。該項實時操作體系和相關的軟件的研發氛圍,對于探索性能優秀,穩定性高的軟件有著非常關鍵的意義。
目前,國內外知名的嵌入式實時操作系統主要有:LynxOS操作系統,功能強大、價格昂貴;RT-Linux操作系統,開發工具少、資源開銷大;VxWorks操作系統,功能強大、價格昂貴;pSOS操作系統,技術服務資源匱乏;QNX操作系統,開發工具少,應用不普及;ReWorks操作系統,國產操作系統,它有著非常優秀的功效。
ReWorks是一個運行在目標機上的高性能和可裁減的嵌入式實時操作系統(RTOS),自從面世至今,它憑借著自身的優勢,比如穩定性好,安全性高等等的一些優點,被大范圍的運用到很多的行業之中,比如通信以及醫療裝置等等,在我們國家有著數量非常龐大的使用者。
它是一項嵌入式的實時的操作體系,有著非常多的優勢,比如裁剪性非常優秀,而且穩定性好,同時因為它具有非常優秀的安全性和實時特征,所以被大范圍的應用到很多的領域里面,比如我國的通信行業以及醫療裝置等等。
ReWorks的主要性能特點有:(1)支持CPU 環 境 :x86、ARM7、ARM9、SPARC v8、PowerPC82XX/74XX/8540、 龍 芯 2F、ADI Blackfin;(2)支持硬件環境:冗余網絡、雙屏顯示、USB、AFDX、FLASH、CAN、1553B;(3)支持分布式處理:支持OMG RT-CORBA、SCA核心框架;(4)標準化與兼容性:POSIX 1003-2003、VxWorks 5.x;(5)裁剪性能:最小配置小于20K,支持ROM化;(6)擴展能力:支持eXtremeDB數據庫、圖形處理;(7)安全能力:基于MMU的空間保護能力,任務遷移能力;
該項軟件相關的設計工作在開展的時候,最為關注的是它的實時特征。其中包括如何按照功能進行任務劃分、任務優先級的設置、任務間通信機制的選擇、中斷處理程序的編寫、如何在多個處理器之間進行任務的分配和采取什么樣的任務調度策略等關鍵技術。對于多項任務的劃分以及分配和調度這三個要素來講,它們本身是一個不可分割的綜合體,其中最為關鍵的要素是劃分。其中的任意要素設計不當的話都會干擾到整個體系的發展。
2.1 多任務劃分
在ReWorks操作系統中,最小的程序運行單位稱為任務。每個任務包含一段固定的代碼和數據空間。操作系統內核通過任務控制塊對它的執行、通信、資源等情況進行控制。多任務劃分涉及如何將整個系統功能設計為不同的任務來實現,任務之間采取怎樣的耦合關系,劃分的粒度如何等。在根據數據流劃分任務時,影響劃分的要素包括數據之間的并行和串行關系;根據控制流劃分任務時,考慮的要素是控制的因果關系。
2.2 多任務調度
它的設計意義是確保重要的任務能夠獲取回應,而且全部任務的設計要素都可以在規定的時間之中開展好。它涵蓋體系調度方法的選取,優先的明確和任務間的一些聯系和競爭等等。在進行劃分的時候,分析了各個要素要擔負的活動的重要性,該項調度就要結合各個任務的重要性等對其設置優先權。任務調度還必須是不同優先級的協作任務有效地同步。ReWorks支持兩種調度方式:基于優先級的搶占調度和時間片輪轉調度。
2.3 任務間通訊
ReWorks提供了一套豐富的任務間通信與同步的機制。這些通信功能使一個應用中各個獨立的任務協調它們的活動。任務間通信與同步的機制包括:信號量、消息隊列、管道、信號、套接字。信號量主要用于對臨界資源訪問的同步和互斥;消息隊列多用于消息驅動機制;管道是基于文件系統實現的任務間按先進先出方式傳送數據的通信方式;信號相當于軟中斷;套接字主要用于網絡通信。
一個嵌入式系統典型模型的任務可劃分為:初始化任務、數據接收任務、數據處理任務、中斷處理程序、數據發送任務,各任務的功能可描述如下:
3.1 初始化任務:對設備的初始化設置、連接設備中斷到中斷服務程序。同時,發起數據接收任務、數據處理任務、數據發送任務,完成后退出。
3.2 中斷服務程序:外在信息的到來并不是同步活動,使用中斷來設置是目前使用最多的一個措施。中斷服務程序在產生外部中斷時調用,其功能包括接收數據到接收緩沖區,并通知數據接收任務讀取數據。
3.3 數據接收任務:等待中斷服務程序的通知,從設備端口接受來自外部的數據并處理。
3.4 數據處理任務:取出需要處理的數據,進行一定算法的數據處理。
由于不一樣的任務對于時間的規定不是一樣的,可以結合它們的特征對其設置一定的優先權,進而便于調度工作的開展。并選擇一個或多個任務間通信方式來實現多任務間通信。各任務之間的關系如圖1所示。

圖1 多任務關系圖
通過上文的分析,我們得知了該操作體系在很多的行業之中都獲取了非常顯著的意義,比如通信以及工業和醫療裝置等等。由于它具有實時的特征,所以它的軟件會受到環境以及空間等等的多項要素的干擾,對于穩定性的規定很是嚴苛,對于其軟件的探索來講有一定的難度。了解設計機制對于開展體系的設計工作來講,有著非常多的優勢。
[1]王才善,陳光武,曠文珍,范多旺,魏宗壽.基于VxWorks的實時多任務程序設計機制分析[J].鐵路計算機應用,200918(5):12-15.
[2]劉尉悅,張萬生,邢濤,王硯方.VxWorks操作系統及實時多任務程序設計[J].單片機與嵌入式系統應用,2001(5):12-21.