国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種星載軟件的調度方法及裝置制造方法

      文檔序號:6546853閱讀:186來源:國知局
      一種星載軟件的調度方法及裝置制造方法
      【專利摘要】一種星載軟件的調度方法及裝置,該方法包括:1)設置實時時鐘,通過所述實時時鐘提供周期調度硬件信號;2)設立系統(tǒng)任務進程,在所述周期調度硬件信號有效時觸發(fā)時鐘周期中斷,并釋放所述系統(tǒng)任務進程運行,其中,所述系統(tǒng)任務進程在所有任務進程中具有最高優(yōu)先級;3)設立多個周期任務進程并為每一所述周期任務進程設立一調度優(yōu)先級,在所述系統(tǒng)任務進程運行完畢后由所述系統(tǒng)任務進程根據調度優(yōu)先級循環(huán)釋放所有所述周期任務進程運行。本發(fā)明利用硬件時間片提供準確的時鐘周期信號,保證了周期任務進程的周期準確性以及實時性;實現周期任務進程的并發(fā)運行,提高了CPU利用率。
      【專利說明】—種星載軟件的調度方法及裝置
      【技術領域】
      [0001]本發(fā)明涉及星載軟件調度【技術領域】,尤其涉及一種應用于集中式管理方式的微小衛(wèi)星嵌入式星載軟件上的調度方法及裝置。
      【背景技術】
      [0002]衛(wèi)星的星載軟件是實現衛(wèi)星功能的重要部分。隨著衛(wèi)星功能的日益增加,星載軟件的功能和規(guī)模也日益擴大,因此建立可靠的星載軟件調度機制以提高嵌入式計算機系統(tǒng)CPU的利用率尤為重要。
      [0003]目前存在的嵌入式星載軟件調度機制主要有:循環(huán)調度、混合調度以及全周期調度。
      [0004]循環(huán)調度機制:其調度方式沒有固定的周期,軟件運行完一周期后緊接著運行下一周期,每一周期的占用時間隨該周期任務內容的多少而不同。但該調度機制不能應付具有周期性控制和周期性響應工程需要的場合,尤其對周期控制的能力較弱。
      [0005]混合調度機制:其調度方式為周期任務和非周期任務同時存在。但該調度機制使得非周期調度的任務存在得不到及時響應的問題,不適用于星載軟件的高實時性要求。
      [0006]全周期調度機制:所有軟件進程按照預設的優(yōu)先級和規(guī)定的周期進行全周期調度運行。但由于某些進程在請求外部數據過程中會引入等待,在等待的過程中CPU相當于“空轉”,這無疑對寶貴的CPU資源造成了浪費;在等待時間較長無法忍受時,若采用拆分進程的方式將時間空出等待外部數據,不但等待時間難以掌控,又會增加進程間的數據耦合,不利于軟件的獨立性。
      [0007]因此需要提供新的星載軟件調度機制,以保證周期任務進程的實時性,增加周期任務進程的并發(fā)性,提高CPU利用率。

      【發(fā)明內容】

      [0008]本發(fā)明的目的在于,提供一種星載軟件的調度方法及裝置,在硬件系統(tǒng)提供周期時鐘的基礎上,利用操作系統(tǒng)的進程延遲讓權機制,實現周期調度進程之間的并發(fā)執(zhí)行,以提高嵌入式計算機系統(tǒng)的CPU利用率。
      [0009]為了實現上述目的,本發(fā)明提供了一種星載軟件的調度方法,包括如下步驟:1)設置實時時鐘,通過所述實時時鐘提供周期調度硬件信號;2)設立系統(tǒng)任務進程,在所述周期調度硬件信號有效時觸發(fā)時鐘周期中斷,并釋放所述系統(tǒng)任務進程運行,其中,所述系統(tǒng)任務進程在所有任務進程中具有最高優(yōu)先級;3)設立多個周期任務進程并為每一所述周期任務進程設立一調度優(yōu)先級,在所述系統(tǒng)任務進程運行完畢后由所述系統(tǒng)任務進程根據調度優(yōu)先級循環(huán)釋放所有所述周期任務進程運行。
      [0010]步驟3)進一步包括:判斷所有所述周期任務進程中是否有外部端口數據請求并對返回的數據需要等待一預設閾值時間的周期任務進程,若有,則在請求完畢后調用任務延遲系統(tǒng)函數對該周期任務進程進行任務延遲讓權,以釋放其它周期任務進程運行。[0011]所述調度方法進一步采用VxWorks操作系統(tǒng),所述任務延遲系統(tǒng)函數為taskdalay (nticks), nticks的取值為所需要等待的時鐘信號數目。
      [0012]步驟3)之后進一步包括:4)設立一非周期任務進程,利用所有所述周期任務進程的空余時間釋放所述非周期性任務進程,其中,所述非周期任務進程的調度優(yōu)先級低于所有所述周期任務進程,但所述非周期任務進程的調度優(yōu)先級高于操作系統(tǒng)空閑進程的調度優(yōu)先級。
      [0013]為了實現上述目的,本發(fā)明還提供了一種星載軟件的調度裝置,包括時鐘模塊、系統(tǒng)任務進程模塊以及周期任務進程模塊;所述時鐘模塊,用于設置實時時鐘以通過所述實時時鐘提供周期調度硬件信號;所述系統(tǒng)任務進程模塊與所述時鐘模塊相連,用于設立系統(tǒng)任務進程,在所述時鐘模塊的周期調度硬件信號有效時觸發(fā)時鐘周期中斷,并釋放所述系統(tǒng)任務進程運行,其中,所述系統(tǒng)任務進程在所有任務進程中具有最高優(yōu)先級;所述周期任務進程模塊與所述系統(tǒng)任務進程模塊相連,用于設立多個周期任務進程并為每一所述周期任務進程設立一調度優(yōu)先級,在所述系統(tǒng)任務進程模塊的系統(tǒng)任務進程運行完畢后由所述系統(tǒng)任務進程根據調度優(yōu)先級循環(huán)釋放所有所述周期任務進程運行。
      [0014]本發(fā)明的優(yōu)點在于:
      1)利用硬件時間片提供準確的時鐘周期信號,保證了周期任務進程的周期準確性以及實時性;
      2)利用VxWorks操作系統(tǒng)提供的延遲讓權機制,實現周期任務進程的并發(fā)運行,使得低優(yōu)先級的進程可以利用高優(yōu)先級進程的“空閑”時間,提高了 CPU利用率;
      3)設置對實時性要求不敏感的非周期任務進程,利用周期任務的空余時間,完成非周期性任務,進一步提高了 CPU的利用率。
      【專利附圖】

      【附圖說明】
      [0015]圖1,本發(fā)明所述的星載軟件調度方法的流程圖;
      圖2,本發(fā)明所述的星載軟件調度裝置的示意圖;
      圖3,本發(fā)明一實施例所示調度方法的流程圖;
      圖4為圖3所示調度方法的進程運行時序示意圖;
      圖5,本發(fā)明另一實施例所示調度方法的流程圖;
      圖6為圖5所示調度方法的進程運行時序示意圖。
      【具體實施方式】
      [0016]下面結合附圖對本發(fā)明提供的星載軟件的調度方法及裝置的【具體實施方式】做詳細說明。
      [0017]參考附圖1,本發(fā)明所述的星載軟件調度方法的流程圖,以下對附圖1所示步驟做詳細說明。
      [0018]Sll:設置實時時鐘,通過所述實時時鐘提供周期調度硬件信號。
      [0019]通過設置實時時鐘,利用硬件時間片提供準確的時鐘周期信號(即周期調度硬件信號),保證了周期任務進程運行的周期準確性,同時通過硬件保證了周期任務進程運行的實時性。[0020]S12:設立系統(tǒng)任務進程,在所述周期調度硬件信號有效時觸發(fā)時鐘周期中斷,并釋放所述系統(tǒng)任務進程運行。
      [0021]其中,所述系統(tǒng)任務進程在所有任務進程中具有最高優(yōu)先級。系統(tǒng)任務進程負責所有任務進程的管理工作,并且在所有任務進程中具有最高優(yōu)先級;并且系統(tǒng)任務進程不使用延遲讓權,即保證系統(tǒng)任務進程在一個時鐘周期的開始優(yōu)先運行完畢。在實時時鐘提供的周期調度硬件信號有效時觸發(fā)時鐘周期中斷,在處理該信號的中斷處理程序中,即一個時鐘周期開始時釋放所設立的系統(tǒng)任務進程運行。
      [0022]S13:設立多個周期任務進程并為每一所述周期任務進程設立一調度優(yōu)先級,在所述系統(tǒng)任務進程運行完畢后由所述系統(tǒng)任務進程根據調度優(yōu)先級循環(huán)釋放所有所述周期任務進程運行。
      [0023]默認情況下,各周期任務進程按照所設立的優(yōu)先級運行。由于某些進程在請求外部數據過程中會引入等待,在等待的過程中CPU相當于“空轉”,這無疑對寶貴的CPU資源造成了浪費。因此,本發(fā)明步驟S13進一步包括:判斷所有所述周期任務進程中是否有外部端口數據請求并對返回的數據需要等待一預設閾值時間的周期任務進程;若有,則在請求完畢后調用任務延遲系統(tǒng)函數對該周期任務進程進行任務延遲讓權,以釋放其它周期任務進程運行;若沒有請求外部數據過程、或引入等待時間沒有達到預設閾值時間的周期任務進程,則按照所設立的優(yōu)先級運行。其中,預設閾值時間的確定由具體的任務而定。
      [0024]優(yōu)選的,本發(fā)明所述調度方法進一步采用VxWorks操作系統(tǒng),所述任務延遲系統(tǒng)函數為taskdalay (nticks) ,nticks的取值為所需要等待的時鐘信號(ticks)數目。也即,taskdalay (nticks)使調用該函數的周期任務進程延時η個tick,在延時的時間內主動放棄CPU,使得在這段時間內其它周期任務進程得以運行。利用VxWorks操作系統(tǒng)提供的延遲讓權機制,實現周期任務進程的并發(fā)運行,使得低優(yōu)先級的進程可以利用高優(yōu)先級進程的“空閑”時間,提高了 CPU利用率。
      [0025]S14:設立一非周期任務進程,利用所有所述周期任務進程的空余時間釋放所述非周期性任務進程。
      [0026]其中,所述非周期任務進程的調度優(yōu)先級低于所有所述周期任務進程,但所述非周期任務進程的調度優(yōu)先級高于操作系統(tǒng)空閑進程的調度優(yōu)先級。設置對實時性要求不敏感的低優(yōu)先級非周期任務進程,利用周期任務進程的空余時間,完成非周期性任務,進一步提高了 CPU的利用率。
      [0027]參考附圖2,本發(fā)明所述星載軟件調度裝置的示意圖。所述調度裝置包括時鐘模塊21、系統(tǒng)任務進程模塊22以及周期任務進程模塊23。
      [0028]所述時鐘模塊21,用于設置實時時鐘以通過所述實時時鐘提供周期調度硬件信號。所述系統(tǒng)任務進程模塊22與所述時鐘模塊21相連,用于設立系統(tǒng)任務進程,在所述時鐘模塊21的周期調度硬件信號有效時觸發(fā)時鐘周期中斷,并釋放所述系統(tǒng)任務進程運行;其中,所述系統(tǒng)任務進程在所有任務進程中具有最高優(yōu)先級。所述周期任務進程模塊23與所述系統(tǒng)任務進程模塊22相連,用于設立多個周期任務進程并為每一所述周期任務進程設立一調度優(yōu)先級,在所述系統(tǒng)任務進程模塊22的系統(tǒng)任務進程運行完畢后由所述系統(tǒng)任務進程根據調度優(yōu)先級循環(huán)釋放所有所述周期任務進程運行。
      [0029]默認情況下,各周期任務進程按照所設立的優(yōu)先級運行。由于某些進程在請求外部數據過程中會引入等待,在等待的過程中CPU相當于“空轉”,這無疑對寶貴的CPU資源造成了浪費。因此本發(fā)明所述調度裝置中,所述周期任務進程模塊23進一步包括一判斷單元231以及一延遲讓權單元232:所述判斷單元231用于判斷所有所述周期任務進程中是否有外部端口數據請求并對返回的數據需要等待一預設閾值時間的周期任務進程,若有,則在請求完畢后調用延遲讓權單元232 ;若沒有請求外部數據過程、或引入等待時間沒有達到預設閾值時間的周期任務進程,則按照所設立的優(yōu)先級運行。所述延遲讓權單元232與所述判斷單元231相連,用于調用任務延遲系統(tǒng)函數對相應周期任務進程進行任務延遲讓權,以釋放其它周期任務進程運行。其中,預設閾值時間的確定由具體的任務而定。優(yōu)選的,本發(fā)明所述調度裝置進一步采用VxWorks操作系統(tǒng),所述任務延遲系統(tǒng)函數為taskdalay (nticks), nticks的取值為所需要等待的時鐘信號數目。利用VxWorks操作系統(tǒng)提供的延遲讓權機制,實現周期任務進程的并發(fā)運行,使得低優(yōu)先級的進程可以利用高優(yōu)先級進程的“空閑”時間,提高了 CPU利用率。
      [0030]作為優(yōu)選的實施方式,所述調度裝置進一步包括非周期任務進程模塊24:所述非周期任務進程模塊24與所述周期任務進程模塊23相連,用于設立一非周期任務進程,利用所有所述周期任務進程的空余時間釋放所述非周期性任務進程。其中,所述非周期任務進程的調度優(yōu)先級低于所有所述周期任務進程,但所述非周期任務進程的調度優(yōu)先級高于操作系統(tǒng)空閑進程的調度優(yōu)先級。通過所述非周期任務進程模塊24設置對實時性要求不敏感的低優(yōu)先級非周期任務進程,利用周期任務進程的空余時間,完成非周期性任務,進一步提高了 CPU的利用率。
      [0031]以下結合附圖3-6給出本發(fā)明的多個實施例,以對本發(fā)明作進一步說明。
      [0032]首先結合圖3-4給出本發(fā)明的一實施例,該實施例是基于硬件時間片的周期調度,沒有任務使用延遲讓權機制。其中,圖3為調度方法的流程示意圖,圖4為圖3所示調度方法的進程運行時序示意圖。
      [0033]具體為:上電初始化,設置硬件時鐘的時鐘中斷間隔作為軟件周期,該步驟在上電/復位時執(zhí)行一次。以下步驟在時間片中斷后循環(huán)往復執(zhí)行:時鐘周期到,產生信號觸發(fā)中斷;在處理中斷服務例程Time-1SR時,釋放系統(tǒng)任務Semgive (semlD-SYS);系統(tǒng)任務sysTask運行完畢后,由系統(tǒng)任務循環(huán)釋放應用任務Semgive (semID_APPi ),從而按照默認情況下各周期應用任務的優(yōu)先級從高到低運行,如圖所示周期應用任務PeriodTask-I~周期應用任務PeriodTask-N。其中,周期應用任務PeriodTask_2 (簡稱T2)請求外部端口數據并對返回的數據需要等待一預設閾值時間,即含空等待時間,但并不執(zhí)行延遲讓權機制。對應的進程運行時序示意圖如圖4所示,其中圖4橫軸為CPU時間,縱軸為優(yōu)先級高低。周期應用任務Tl至TN都設有一個調度優(yōu)先級,即從優(yōu)先級最高的Tl至優(yōu)先級最低的TN,在周期應用任務運行時,即便周期應用任務T2含空等待,各周期應用任務仍然按照所設置的優(yōu)先級運行。
      [0034]接下來結合圖5-6給出本發(fā)明的另一實施例,該實施例是基于硬件時間片的混合周期調度,使用任務延遲讓權機制。其中,圖5為調度方法的流程示意圖,圖6為圖5所示調度方法的進程運行時序示意圖。
      [0035]具體為:上電初始化,設置硬件時鐘的時鐘中斷間隔作為軟件周期,該步驟在上電/復位時執(zhí)行一次;以下步驟在時間片中斷后循環(huán)往復執(zhí)行:時鐘周期到,產生信號觸發(fā)中斷;在處理中斷服務例程Time-1SR時,釋放系統(tǒng)任務Semgive (semlD-SYS);系統(tǒng)任務sysTask運行完畢后,由系統(tǒng)任務循環(huán)釋放應用任務Semgive (semID_APPi ),從而按照各周期應用任務的優(yōu)先級從高到低運行,如圖所示周期應用任務PeriodTask-f周期應用任務PeriodTask-N ;并在周期應用任務的空余時間釋放非周期應用任務NonePPeriodTask (TS)的運行。其中,周期應用任務PeriodTask-2 (簡稱T2)請求外部端口數據并對返回的數據需要等待一預設閾值時間,即含空等待時間,并使用了延遲讓權機制。對應的任務運行時序圖如圖6所示,其中圖6橫軸為CPU時間,縱軸為優(yōu)先級高低。周期應用任務Tl至TN都設有一個調度優(yōu)先級,非周期應用任務TS在周期應用任務的空余時間被釋放。
      [0036]比較圖4與圖6可以看出,圖6所示時序圖中周期應用任務T2采用了延遲讓權機制,即周期應用任務T2是有外部端口數據請求并對返回的數據需要等待一個可觀時間的任務,在請求完畢后調用任務延遲系統(tǒng)函數taskdalay (nticks), nticks的取值為所需要等待的ticks數目。T3_l在T2_l至Τ2_2的主動讓權之間運行,為系統(tǒng)節(jié)約了 T3_l的運行時間,提高了 CPU利用率。
      [0037]使用延遲讓權機制的程序結構框架如下:
      【權利要求】
      1.一種星載軟件的調度方法,其特征在于,該方法包括如下步驟: 1)設置實時時鐘,通過所述實時時鐘提供周期調度硬件信號; 2)設立系統(tǒng)任務進程,在所述周期調度硬件信號有效時觸發(fā)時鐘周期中斷,并釋放所述系統(tǒng)任務進程運行,其中,所述系統(tǒng)任務進程在所有任務進程中具有最高優(yōu)先級; 3)設立多個周期任務進程并為每一所述周期任務進程設立一調度優(yōu)先級,在所述系統(tǒng)任務進程運行完畢后由所述系統(tǒng)任務進程根據調度優(yōu)先級循環(huán)釋放所有所述周期任務進程運行。
      2.根據權利要求1所述的星載軟件的調度方法,其特征在于,步驟3)進一步包括:判斷所有所述周期任務進程中是否有外部端口數據請求并對返回的數據需要等待一預設閾值時間的周期任務進程,若有,則在請求完畢后調用任務延遲系統(tǒng)函數對該周期任務進程進行任務延遲讓權,以釋放其它周期任務進程運行。
      3.根據權利要求2所述的星載軟件的調度方法,其特征在于,所述調度方法進一步采用VxWorks操作系 統(tǒng),所述任務延遲系統(tǒng)函數為taskdalay (nticks) ,nticks的取值為所需要等待的時鐘信號數目。
      4.根據權利要求2所述的星載軟件的調度方法,其特征在于,步驟3)之后進一步包括:4)設立一非周期任務進程,利用所有所述周期任務進程的空余時間釋放所述非周期性任務進程,其中,所述非周期任務進程的調度優(yōu)先級低于所有所述周期任務進程,但所述非周期任務進程的調度優(yōu)先級高于操作系統(tǒng)空閑進程的調度優(yōu)先級。
      5.一種星載軟件的調度裝置,其特征在于,包括時鐘模塊、系統(tǒng)任務進程模塊以及周期任務進程模塊; 所述時鐘模塊,用于設置實時時鐘以通過所述實時時鐘提供周期調度硬件信號; 所述系統(tǒng)任務進程模塊與所述時鐘模塊相連,用于設立系統(tǒng)任務進程,在所述時鐘模塊的周期調度硬件信號有效時觸發(fā)時鐘周期中斷,并釋放所述系統(tǒng)任務進程運行,其中,所述系統(tǒng)任務進程在所有任務進程中具有最高優(yōu)先級; 所述周期任務進程模塊與所述系統(tǒng)任務進程模塊相連,用于設立多個周期任務進程并為每一所述周期任務進程設立一調度優(yōu)先級,在所述系統(tǒng)任務進程模塊的系統(tǒng)任務進程運行完畢后由所述系統(tǒng)任務進程根據調度優(yōu)先級循環(huán)釋放所有所述周期任務進程運行。
      6.根據權利要求5所述的星載軟件的調度裝置,其特征在于,所述周期任務進程模塊進一步包括一判斷單元以及一延遲讓權單元:所述判斷單元用于判斷所有所述周期任務進程中是否有外部端口數據請求并對返回的數據需要等待一預設閾值時間的周期任務進程,若有,則在請求完畢后調用延遲讓權單元;所述延遲讓權單元與所述判斷單元相連,用于調用任務延遲系統(tǒng)函數對相應周期任務進程進行任務延遲讓權,以釋放其它周期任務進程運行。
      7.根據權利要求6所述的星載軟件的調度裝置,其特征在于,所述調度裝置進一步采用VxWorks操作系統(tǒng),所述任務延遲系統(tǒng)函數為taskdalay (nticks) ,nticks的取值為所需要等待的時鐘信號數目。
      8.根據權利要求6所述的星載軟件的調度裝置,其特征在于,所述調度裝置進一步包括非周期任務進程模塊:所述非周期任務進程模塊與所述周期任務進程模塊相連,用于設立一非周期任務進程,利用所有所述周期任務進程的空余時間釋放所述非周期性任務進程,其中,所述非周期任務進程的調度優(yōu)先級低于所有所述周期任務進程,但所述非周期任務進程的調 度優(yōu)先級高于操作系統(tǒng)空閑進程的調度優(yōu)先級。
      【文檔編號】G06F9/48GK103984596SQ201410210582
      【公開日】2014年8月13日 申請日期:2014年5月19日 優(yōu)先權日:2014年5月19日
      【發(fā)明者】白雪柏, 賀蕓, 徐文明, 王明亮 申請人:上海微小衛(wèi)星工程中心
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1