《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于VxWorks的星務管理系統軟件多任務實時性調度設計
基于VxWorks的星務管理系統軟件多任務實時性調度設計
2017年電子技術應用第12期
趙建坤,張大松,胡愛蘭,李建宏
華北計算機系統工程研究所,北京100083
摘要: 在星務管理系統軟件的設計開發中,為了更好地滿足系統的高實時性、高安全性、高可靠性等要求,提出采用實時性強的操作系統——VxWorks操作系統作為衛星星務系統的核心。采用VxWorks操作系統的多任務調度機制,并結合基于時間片輪轉調度實現多任務設計算法的特點,進而制定出星務管理系統軟件的架構。結果表明,該設計滿足衛星星務系統軟件設計的可靠性、實時性的要求。
中圖分類號: TP391.9
文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.170141
中文引用格式: 趙建坤,張大松,胡愛蘭,等. 基于VxWorks的星務管理系統軟件多任務實時性調度設計[J].電子技術應用,2017,43(12):116-119.
英文引用格式: Zhao Jiankun,Zhang Dasong,Hu Ailan,et al. Design of satellite management system software of multi task real time scheduling based on VxWorks[J].Application of Electronic Technique,2017,43(12):116-119.
Design of satellite management system software of multi task real time scheduling based on VxWorks
Zhao Jiankun,Zhang Dasong,Hu Ailan,Li Jianhong
National Computer System Engineering Research Institute of China,Beijing 100083,China
Abstract: In the process of the design and development of star management system software, in order to satisfy the requirements of high real-time performance, high security and high reliability, this paper proposes a real-time operating system VxWorks operating system as the core of the satellite service system. VxWorks operating system employs the multi-task scheduling mechanism, combined with the method of calculation based on the round robin scheduling, moreover, developing the architecture of star management system. The results manifests that in the premise of fulfilling the satellite on-board system software design requirements, the real-time performance is improved.
Key words : satellite management system;VxWorks RTOS;multi task scheduling mechanism

0 引言

    隨著科學技術的不斷進步,實時嵌入式操作系統得以廣泛應用,而VxWorks操作系統在絕大多數的嵌入式操作系統中具有良好的實時性效果,它于1983年由美國的WindRiver公司設計出來。正是因為VxWorks操作系統的高實時性的特性,它被廣泛應用在通信、軍事、航空、航天等高精尖技術及實時性要求極高的領域中[1]

    目前,對于航天事業的發展不斷深入,對星務管理系統軟件的功能越來越多,越來越復雜,同時性能要求也越來越高,而在這樣的復雜多任務的情況下,同樣需要保證任務處理的實時性[2]

    為此,本文以VxWorks操作系統為核心,分析星務管理系統軟件的基本功能任務,結合VxWorks操作系統高效的實時性多任務調度、中斷管理以及實時的系統資源等特點,設計討論在諸多星務任務情況下,確保每個任務能夠被合理調度,提高星務管理系統軟件的高可實時性要求。

1 VxWorks的多任務特性

    VxWorks操作系統采用微內核的設計風格,由微內核提供基本的多任務環境及對多任務進行管理[3]。在VxWorks操作系統中,每個任務都會具有就緒狀態、掛起狀態、延遲狀態、休眠狀態4種基本的狀態[4]

    這些任務的狀態會隨著調用相應的系統函數發生從當前狀態跳轉為相應的下一個狀態,在任何狀態下的任務也都能夠被刪除。

    VxWorks提供了兩種任務調度算法:基于任務優先級的搶占式調度算法、基于時間片輪轉的調度算法。對于具有多任務環境下的系統,必須采用以上的其中一種調度算法,并將CPU的資源賦給處于就緒狀態的任務。而對于高實時性要求的系統,若能將以上兩種任務調度的協調配合很好地實現在系統中,系統的實時性便能得到更好的保證。時間片輪轉的調度及優先級的搶占式調度結合實例如圖1所示。

jsj3-t1.gif

    圖1中任務1和任務2的優先級相同,任務3的優先級高于任務1和任務2,任務4的優先級高于任務3。任務1和任務2按照基于時間片輪轉的調度算法根據時間片的長度輪詢占用CPU資源;當任務3來到時,搶占了任務1的資源,任務1被掛起,而任務3開始執行;當任務4到來時,搶占了任務3的資源,任務3被掛起,任務4開始執行;當任務4執行完畢后,任務3被喚醒繼續執行;當任務3執行完畢后,任務1被喚醒并繼續執行。

2 星務管理系統軟件多任務設計

2.1 架構分析

    在復雜的星務管理系統軟件中,需要考慮軟件的復用性、各個任務的內聚性和耦合性,從而保證星務管理系統軟件高可靠性[5]。為此,結合VxWorks操作系統的特點,可將星務管理系統軟件分為4層:板級包驅動層、系統內核層、由VxWorks提供的公共系統函數層以及應用層。

    圖2為星務管理系統軟件的結構圖。

jsj3-t2.gif

    圖2中,板級包驅動層提供與硬件接口的底層驅動程序,包括對中斷控制器的初始化、定時器的初始化、串口的初始化等其他硬件的初始化;系統內核層是整個系統的核心層,它為多任務提供管理、任務間切換、調度分配CPU資源和對一些異常情況進行處理;公共系統函數層則起到了很好中間層作用,為應用層訪問系統內核層提供了系統接口函數;應用層實現復雜的任務處理,如:姿態控制任務、遙測控制任務、軌跡控制任務、載荷控制任務、溫度控制任務等。

2.2 多任務調度

2.2.1 基于任務優先級的搶占式調度設計

    由第1節介紹有關VxWorks多任務特性的設計思想,根據星務管理系統軟件自身功能的需要,對任務進行合理有效的劃分和優先級適當的設置,可以較好地簡化星務管理系統軟件的復雜度,也可以增加星務管理系統軟件的穩定性。保證任務調度的正確性,則更好地保證了整個系統實時性[6]

    星務管理系統軟件按照設置周期性地運行,通過內部總線和網絡接收內部傳感器和外部指令控制單元的命令和數據,經分析可對相應的任務進行控制操作。根據星務管理系統軟件各功能特點,本文對一部分基本任務進行劃分,各個任務的優先級由高到低分別為:(1)看門狗定時器中斷處理任務;(2)遙控接收分析數據任務;(3)飛行軌跡任務;(4)姿態控制任務;(5)載荷控制任務;(6)遙測采集任務;(7)溫度控制任務;(8)數據存取任務。

    圖3為星務管理系統軟件任務運行關系圖。

jsj3-t3.gif

    圖3中,對于星務管理系統軟件的初始化任務也可視為父任務,由父任務創建各個任務。設計中看門狗任務的優先級最高,這是為了保證系統在運行中,當出現異常情況導致整個系統死機或者癱瘓時,看門狗中斷處理函數會被觸發,令整個系統進入重啟,保證了整個系統的安全性、可靠性;遙控接收分析數據任務的優先級要高于看門狗中中斷處理任務以外的其他任務,遙控接收分析數據的結果將會影響到其他任務內的執行流程;數據存取任務的優先級最低,因為任何任務都可以搶占其CPU資源,所以需要為數據存取任務開辟一段較大的數據存儲緩存,保證當被高于數據存取任務優先級的任務搶占資源后,不會丟失需要存儲的數據,保證數據的完整性、可靠性。

    通過以上分析不難得出,在對以上任務進行時間片劃分時,對于看門狗任務以及遙控接收分析數據任務的時間片設置時間應盡量短,而其他任務的時間片設置應適當合理,進而保證整個系統的實時性。

2.2.2 基于時間片輪轉的調度設計

    在沒有接收到指令要求改變衛星姿態,或者調整衛星運行軌跡時,姿態任務和軌跡任務應當會按照初始設定的姿態和軌跡執行[7],即這每個任務按照時間片輪轉方式進行調度。

    不同型號的處理器芯片有不同的工作頻率,因此,設星務管理系統軟件的調度周期為TS。以飛行軌跡任務、姿態控制任務、遙測采集任務和數據存取任務為例,分別為以上4個任務分配時間片,具體參數如表1所示。

jsj3-b1.gif

    根據表1可以確定星務管理系統軟件的調度周期最小為:TS=20te。為了便于任務分配,可將星務管理系統軟件的調度周期細化成幾段小周期f。小周期f需要滿足如下條件:

    (1)小周期f≥最大執行時間(t);

    (2)小周期f能夠被星務管理系統軟件的調度周期TS整除;

    (3)因為調度執行發生在每個小周期的開始,為了便于確定在時限到達前,任務是否可以完成,要求在任務開始和到達時限之間至少有個小周期f的時間,可用式(1)表示:

jsj3-gs1-3.gif

    綜合以上3個條件得到的結構可以得出小周期f的取值為4te。由此可以繪制出一個調度周期為TS=20te的調度結果圖,如圖4所示。

jsj3-t4.gif

    圖4中,T1、T2、T3和T4分別代表行軌跡任務、姿態控制任務、遙測采集任務和數據存取任務。根據表1和圖4中對每個任務的時間片的劃分,通過上述計算可以保證每個任務能夠被正確、合理地調度,保證了整個系統的實時性。

2.3 多任務間通信

    星務管理系統軟件的復雜多任務之間需要一些通信機制來協調各自的活動[5]。VxWorks操作體系提供任務間通信的方式包括:信號量、消息隊列、管道、共享內存和Socket套接字等。在本系統軟件中采用了信號量和消息隊列兩種任務間通信方式。

2.3.1 信號量

    本文星務管理系統軟件采用二進制信號量的同步和互斥功能,來改變每個任務的狀態機。如圖5所示,在遙控接收分析數據任務中,根據數據分析得到需要發生變化的任務指令,進而釋放對應任務,如:姿態控制任務,令姿態控制任務改變原來姿態為當前指令需要的姿態。

jsj3-t5.gif

    在數據存取任務時,在數據緩存區二進制信號量的互斥功能,保證在寫數據時不去進行讀數據操作,讀數據時不進行寫數據操作,確保數據的準確性。

2.3.2 消息隊列

    本文星務管理系統軟件采用消息隊列的FIFO方式,用于遙測采集任務和數據存取任務間的通信,根據需求設置消息的大小,當遙測傳感器采集到數據后,將采集處理的數據通過消息隊列發送給數據存取任務,并在數據存取任務占用CPU資源時將數據記錄存儲,如圖6所示。

jsj3-t6.gif

3 分析驗證

    根據第2節對星務管理系統軟件的設計分析,使用Tornado2.2開發環境中搭建星務管理系統軟件,實現遙控接收分析數據任務、飛行軌跡任務、姿態控制任務、溫度控制任務、數據存取任務等多任務之間的切換,以及多任務之間的通信。

    采用Tornado2.2開發環境的WindViwe調試工具來觀測星務管理系統軟件多任務并發運行的結果,如圖7所示。

jsj3-t7.gif

    圖7中顯示飛行任務、姿態控制任務以及讀取數據任務在遙控指令任務的協調下,進行任務的切換和任務之間的通信,數據采集任務和數據存儲任務的優先級要低于其他任務,并沒有影響到采集數據任務以及采集數據的分析處理任務的運行。

    在每個任務中加入輸出語句代碼來進一步驗證本系統能夠保證多任務合理的執行。通過Tornado2.2開發環境的調試后臺觀察結果,如圖8所示。

jsj3-t8.gif

    從圖8中可以看出,當姿態控制任務和軌跡任務接收到指令時,發生了姿態以及軌跡的改變;能夠實時地檢測、采集、分析溫度變化,并根據溫度的變化反應溫度的適度情況。

    通過以上驗證描述,表明了對于星務管理系統軟件的多任務的設計合理性,同時也能夠保證軟件框架的有效性,滿足星務管理系統軟件的實時性的要求。

4 結論

    本文描述了一個基于VxWorks實時操作系統的星務管理系統軟件多任務實時性調度設計和實現。根據本文描述中的設計方法,通過模擬測試結果表明了多任務調度的可靠性、整體軟件架構的有效性,并滿足實時性的要求。本文描述的設計方法將移植到某架構平臺上進一步進行驗證。

參考文獻

[1] 周啟平,張楊.VxWorks下設備驅動程序及BSP開發指南[M].北京:中國電力出版社,2004.

[2] 李孝同.小衛星星務管理技術[J].中國空間科學技術,2001,2(1):29-36.

[3] 包海超,楊根慶,李華旺.小衛星星載軟件微內核的設計[J].計算機工程,2008,34(9):81-82.

[4] 王才善,陳光武.基于VxWorks的實時多任務程序設計機制分析[J].鐵路計算機應用,2009,18(5):12-15.

[5] 王婷,朱莊生.星務管理軟件框架設計與實現[J].系統仿真學報,2010,22(1):30-33.

[6] 李俊.VxWorks下多任務間通信方式的比較與分析[J].科技資訊,2009(25):24-25.

[7] 張凱,趙宏坤,劉海濤.CX-l小衛星實時多任務操作系統的設計[J].量子電子學報,2002,19(2):158-161.



作者信息:

趙建坤,張大松,胡愛蘭,李建宏

(華北計算機系統工程研究所,北京100083)

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 亚洲午夜国产精品无码老牛影视 | 久久精品国产亚洲AV水果派| 男人的天堂在线免费视频| 国产嫖妓一区二区三区无码| 97人人添人澡人人爽超碰| 成人年无码AV片在线观看| 九九视频高清视频免费观看| 欧美高清性XXXXHDVIDEOSEX| 午夜dj在线观看免费高清在线 | 欧美深夜福利视频| 在线资源天堂www| 中国一级淫片aaa毛片毛片| 激情图片在线视频| 桃花视频性视频| 人妻精品久久久久中文字幕一冢本| 里番acg全彩本子在线观看| 国产精品久久久久久福利| a级精品国产片在线观看| 拍拍拍无挡免费视频网站| 九色综合狠狠综合久久| 欧美欧美欧美欧美| 伊人色在线视频| 精品日韩一区二区| 国产三级毛片视频| 99久热任我爽精品视频| 国产精品无码aⅴ嫩草| 99国产超薄丝袜足j在线观看| 成人短视频完整版在线播放| 久久天天躁狠狠躁夜夜躁2020| 欧美人与动性xxxxx杂性| 亚洲综合激情九月婷婷| 精品哟哟哟国产在线观看不卡 | 婷婷综合缴情亚洲狠狠图片| 在线观看国产人视频免费中国| 东京一本一道一二三区| 日本污全彩肉肉无遮挡彩色| 亚洲av无码专区国产乱码不卡| 欧美黑人又粗又大久久久| 你是我的城池营垒免费观看完整版| 美女扒开尿口让男人捅| 国产乱码卡一卡2卡三卡四|