新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式操作系統在高速實時信號處理系統中的應用

        嵌入式操作系統在高速實時信號處理系統中的應用

        作者:張超 蘇濤 吳順君 西安電子科技大學 時間:2008-06-25 來源:電子技術應用 收藏

          2 實時

        本文引用地址:http://www.104case.com/article/84776.htm

          是實時多任務,它能在確定的時間內執行其功能,并對外部異步事件作出響應。多任務環境允許一個實時應用劃分為多個獨立任務運行,各任務有各自的線程和系統資源。實時由多個相對獨立的目標模塊組成,用戶可根據需要選擇適當模塊來裁剪及配置系統,從而有效地保證系統的安全性和可靠性。這樣,通過目標模塊之間的按需組合,可得到許多滿足功能需求的應用。

          下面介紹VxWorks的技術特征。

          (1)任務

          在VxWorks中,最小的程序運行單位稱為任務(Task)。建立任務時,要對其分配一段固定的代碼和數據空間。操作系統內核通過任務控制塊對它的執行、通信、資源等情況進行控制。任務具有就緒、阻塞、掛起和延遲等狀態。與大多數系統一樣,在VxWorks中,所有任務存在于統一的線性空間中共享物理內存,每個任務沒有自己獨立的代碼段和堆,只有獨立的動態棧,任務中的地址即是真正的物理地址。由于不需要進行地址空間映射,所以任務切換時的上下文切換(Context Switch)時間大為減少,從而符合實時操作系統快速響應的原則。VxWorks的代碼段與堆共享減少了上下文切換時間,卻帶來了共享代碼的可重入性問題。如一個函數被兩個任務調用,當其中包含對全局、靜態變量等從堆中分配空間的數據進行訪問時,就有可能產生沖突,從而引發錯誤。這個問題在應用軟件開發時要加以注意,其解決方法是使用局部變量(從棧中分配空間)或使用互斥信號量對臨界代碼進行保護。

          (2)任務調度

          VxWorks有優先級搶占調度和時間片輪轉調度兩種任務調度策略。系統共有256 個優先級。優先級搶占調度指一個優先級較低的任務正在執行中,另一個優先級高的任務進入就緒狀態,則馬上搶占處理器資源,執行高優先級任務,直到高優先級任務釋放處理器(完成、掛起、阻塞等)才繼續執行被中斷的低優先級任務。優先級搶占調度可以保證實時系統的迅速響應特性,但也存在問題。當系統中存在幾個相同優先級的任務時,就會使單一任務獨占處理器直至完成。如果這個任務占用太多時間,則會影響其他同優先級任務的運行。當加入時間片輪轉調度時,系統給相同優先級的任務分配相同的一段時間片,以輪轉方式占用CPU。加入了基于優先級的時間片輪轉調度方式,使不同優先級的任務間以搶占方式調度,相同優先級的任務以時間片進行輪轉。

          (3)存儲管理

          在基本的內核中,任務直接操作線性物理內存,不存在虛擬存儲等復雜的存儲管理策略,這主要是針對實時性考慮的。對于存在MMU的處理器中,VxWorks也提供支持標準的虛擬存儲區和共享內存(多處理器間共享)組件。這樣任務是操作虛擬存儲,代碼更加安全。

          (4)任務間通信

          任務間存在多種通信形式,內核支持各種UNIX的通用手段:信號量(Semaphore)、消息隊列(Message Queue)、管道(Pipe)、信號(Signal)、套接字(Socket)。信號量主要用于對臨界資源進行互斥保護及任務間或中斷與任務間的同步;消息隊列多用于消息驅動機制;管道是基于文件系統實現的任務間按先進先出方式傳送數據的通信方式;信號相當于軟中斷,用于顯示錯誤信息;套接字機制主要用于網絡通信。當任務間需要大量交換數據時,由于VxWorks直接操作物理內存,可以直接訪問全局存儲區,不需要特別的手段。這與Linux下的共享存儲段申請和Windows中的存儲映射文件方式不同。

          (5)中斷

          在VxWorks中,所有中斷服務程序都不屬于任何一個任務,并且使用同一個棧進行數據存儲,中斷將不會引起上下文切換,以實現高效的中斷響應。中斷與各任務之間可以通過前面所述的各種手段通信,但是對中斷服務程序有一些限制。因為中斷不存在上下文切換,所以不能調用可能導致阻塞的資源。例如動態分配內存(malloc)、獲取信號量(semTake)和打印程序(printf)等。中斷資源寶貴,所以中斷服務程序應盡量短小,把運算量大和耗時的工作放在服務程序外處理。

          (6)文件系統

          VxWorks支持網絡文件系統NFS及多種本地文件系統,如MS_DosFS、RawFS和RT-11FS,用戶可根據具體配置選擇。

          (7)網絡支持

          Vxworks支持多種物理介質的TCP/IP協議族和幾乎所有常用的基于TCP/IP協議的應用層協議,如ARP、BOOTP、SLIP和FTP,甚至其啟動就是通過BOOTP或FTP方式取得系統映象文件。

          以上簡單介紹了VxWorks的一些技術特征,充分反映了實時性與的密切相關性。

          3 系統軟件設計與實現

          VG4軟件開發主要分為操作系統的配置生成和應用程序的開發兩部分。操作系統的生成主要是對BSP的配置和對VxWorks組件進行裁剪。在應用程序的開發中,為了滿足實時性要求,應對任務進行合理劃分,使程序達到多任務并行操作。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 虹口区| 濮阳县| 塔城市| 萨迦县| 兴化市| 四会市| 美姑县| 鄂温| 当雄县| 宁津县| 常山县| 杭州市| 阿克苏市| 渭南市| 阜南县| 博野县| 荣昌县| 长丰县| 浪卡子县| 宿松县| 阳西县| 万全县| 慈利县| 横山县| 棋牌| 临江市| 永春县| 霍山县| 宜都市| 云阳县| 天柱县| 麻江县| 邻水| 定安县| 东方市| 池州市| 扎兰屯市| 黄大仙区| 绥德县| 霍山县| 读书|