在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于基于VxWorks的星務管理系統軟件多任務實時性調度設計

電子設計 ? 來源:網絡整理 ? 作者:工程師吳畏 ? 2018-06-26 09:10 ? 次閱讀

0 引言

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

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

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

1 VxWorks的多任務特性

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

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

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

關于基于VxWorks的星務管理系統軟件多任務實時性調度設計

圖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為星務管理系統軟件的結構圖。

關于基于VxWorks的星務管理系統軟件多任務實時性調度設計

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

2.2 多任務調度

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

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

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

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

關于基于VxWorks的星務管理系統軟件多任務實時性調度設計

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

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

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

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

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

關于基于VxWorks的星務管理系統軟件多任務實時性調度設計

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

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

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

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

關于基于VxWorks的星務管理系統軟件多任務實時性調度設計

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

關于基于VxWorks的星務管理系統軟件多任務實時性調度設計

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

2.3 多任務間通信

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

2.3.1 信號量

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

關于基于VxWorks的星務管理系統軟件多任務實時性調度設計

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

2.3.2 消息隊列

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

關于基于VxWorks的星務管理系統軟件多任務實時性調度設計

3 分析驗證

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

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

關于基于VxWorks的星務管理系統軟件多任務實時性調度設計

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

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

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

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

4 結論

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • VxWorks
    +關注

    關注

    3

    文章

    351

    瀏覽量

    97272
  • 管理系統
    +關注

    關注

    1

    文章

    2573

    瀏覽量

    36105
收藏 人收藏

    評論

    相關推薦

    STM32 簡單多任務調度的方法與程序例程

    系統中有3個功能單位:任務、進程和線程。實時多任務操作系統(RTOS)是嵌入式應用軟件的基礎和開
    發表于 09-05 14:39

    實時多任務操作系統(RTOS)

    任務、進程和線程。實時多任務操作系統(RTOS)是嵌入式應用軟件的基礎和開發平臺,它是根據操作系統
    發表于 08-24 06:34

    VxWorks系統任務調度機制

    針對多任務系統而言,調度是指根據一定的算法.將CPU 分配給符合條件的任務使用,不同的系統任務
    發表于 12-16 14:11 ?10次下載

    基于任務鏈的實時多任務軟件可靠建模

    提出了以實時多任務系統中的任務鏈為組件,任務鏈運行時間比例作為組件的權重系數,建立實時
    發表于 03-03 11:47 ?16次下載

    VxWorks操作系統實時多任務程序設計

    VxWorks操作系統實時多任務程序設計
    發表于 03-25 10:38 ?13次下載

    基于VxWorks實時多任務軟件設計

    基于VxWorks實時多任務軟件設計
    發表于 03-29 12:30 ?23次下載

    一種基于比特表的實時多任務調度算法

    主要討論常見的幾種多任務實時處理算法的優缺點,提出一種更能滿足多任務實時處理的算法——基于比特表的時間片算法。這種算法主要是把常規的比特表中的
    發表于 05-15 15:02 ?11次下載

    VxWorks實時多任務程序的實現

    本文介紹了VxWorks操作系統的技術特點,給出了一種VxWorks操作系統下實現實時多任務程序
    發表于 09-07 08:22 ?9次下載

    VxWorks系統任務調度機制

    針對多任務系統而言,調度是指根據一定的算法.將CPU 分配給符合條件的任務使用,不同的系統任務
    發表于 11-27 16:26 ?13次下載

    基于VxWorks實時多任務軟件設計

    嵌入式系統是目前蓬勃發展的行業之一,嵌入式軟件設計正日益成為業界的熱門話題。文章介紹應用VxWorks嵌入式實時操作系統進行嵌入式
    發表于 12-05 16:55 ?15次下載

    基于TMS320LF2407的多任務實時處理系統設計

    基于TMS320LF2407的多任務實時處理系統設計
    發表于 05-06 15:39 ?5次下載

    基于LabVIEW平臺的多任務實時測控系統的實現_劉為玉

    基于LabVIEW平臺的多任務實時測控系統的實現_劉為玉
    發表于 03-18 09:26 ?9次下載

    基于DSP的實時多任務調度內核設計

    基于DSP的實時多任務調度內核設計
    發表于 10-19 15:30 ?7次下載
    基于DSP的<b class='flag-5'>實時</b><b class='flag-5'>多任務</b><b class='flag-5'>調度</b>內核設計

    軟總線架構在實時多任務軟件系統中的設計應用

    多任務。針對軟件設計的要求,采用基于實時多任務操作系統提供的底層任務
    發表于 11-30 12:29 ?599次閱讀
     軟總線架構在<b class='flag-5'>實時</b><b class='flag-5'>多任務</b><b class='flag-5'>軟件</b><b class='flag-5'>系統</b>中的設計應用

    DSP實時多任務調度的解決方案

    本文闡述了一個用于DSP的簡潔而實用的實時多任務調度內核的實現方法。DSP由于其架構的特殊,在任務調度
    的頭像 發表于 03-24 15:22 ?4972次閱讀
    主站蜘蛛池模板: 亚欧免费视频一区二区三区 | 天天射天天拍 | 伊人网综合在线 | 成年片色大黄全免费网址 | 手机视频在线播放 | 成人国产日本亚洲精品 | 欧美视频一区在线观看 | 日操夜操 | 午夜69成人做爰视频网站 | 久久天天躁夜夜躁狠狠躁2020 | 午夜精品久久久久久影视riav | 双性受粗大撑开白浊 | 亚洲一区 在线播放 | 色多多在线观看播放 | 欧美日本三级 | 一级做a爰片久久毛片一 | 婷婷月 | xxxx人妖| 日本精品一在线观看视频 | 成人久久久| 一区二区中文字幕在线观看 | 又色又爽的视频 | 亚洲国产成人久久一区久久 | 四虎最新网| 天天碰天天 | 日本三级网站在线观看 | 色欧美亚洲 | 天堂网www中文在线 天堂网传媒 | 影音先锋色天使 | 日鲁夜鲁鲁狠狠综合视频 | 激情6月丁香婷婷色综合 | 99精品国产第一福利网站 | 国产黄在线观看免费观看不卡 | 电影一区二区三区 | 夜夜操夜夜摸 | 国产日本特黄特色大片免费视频 | 亚洲成a人一区二区三区 | 中文一区在线 | 国产亚洲视频在线 | 精品在线视频一区 | 狠狠色综合久久婷婷 |