任務(wù)調(diào)度的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請(qǐng)涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體涉及任務(wù)調(diào)度處理技術(shù)領(lǐng)域,尤其涉及一種任務(wù)調(diào)度的方法和裝置。
【背景技術(shù)】
[0002]任務(wù)調(diào)度是操作系統(tǒng)的重要組成部分。對(duì)于周期性任務(wù)的統(tǒng)一調(diào)度,現(xiàn)有技術(shù)中主要通過判斷當(dāng)前時(shí)間與任務(wù)上次執(zhí)行開始時(shí)間之間的時(shí)間差大于任務(wù)執(zhí)行間隔來確定調(diào)度任務(wù),在一些實(shí)現(xiàn)中,為了避免任務(wù)在執(zhí)行時(shí)被再次調(diào)度,還需要在任務(wù)被調(diào)度時(shí)對(duì)任務(wù)上鎖,在任務(wù)當(dāng)前次執(zhí)行完成時(shí)對(duì)任務(wù)解鎖。這種任務(wù)調(diào)度的方法,在每個(gè)任務(wù)被調(diào)度一次的過程中增加加鎖、解鎖兩次數(shù)據(jù)寫操作,當(dāng)需要調(diào)度的任務(wù)數(shù)量較大時(shí),存在調(diào)度效率較低的問題。
【發(fā)明內(nèi)容】
[0003]本申請(qǐng)的目的在于提出一種改進(jìn)的任務(wù)調(diào)度的方法和裝置,來解決以上【背景技術(shù)】部分提到的技術(shù)問題。
[0004]第一方面,本申請(qǐng)?zhí)峁┝艘环N任務(wù)調(diào)度的方法,所述方法包括:根據(jù)調(diào)度周期周期性地觸發(fā)如下調(diào)度處理操作;所述調(diào)度處理操作包括:獲取當(dāng)前調(diào)度處理操作的調(diào)度時(shí)間;獲取每個(gè)待調(diào)度任務(wù)的時(shí)間參數(shù),其中,所述時(shí)間參數(shù)包括待調(diào)度任務(wù)的最近啟用時(shí)間和任務(wù)執(zhí)行周期,所述任務(wù)執(zhí)行周期為待調(diào)度任務(wù)相鄰兩次執(zhí)行開始時(shí)間之間的間隔;輸出所述任務(wù)執(zhí)行周期、所述最近啟用時(shí)間與所述調(diào)度時(shí)間滿足預(yù)設(shè)條件的待調(diào)度任務(wù)至任務(wù)池;分配并執(zhí)行任務(wù)池中的任務(wù)。
[0005]在一些實(shí)施例中,所述預(yù)設(shè)條件包括:所述調(diào)度時(shí)間與所述最近啟用時(shí)間的差除以所述任務(wù)執(zhí)行周期得到的余數(shù)小于所述調(diào)度周期。
[0006]在一些實(shí)施例中,所述預(yù)設(shè)條件包括:待調(diào)度任務(wù)的擬調(diào)度時(shí)間遲于上一次調(diào)度處理操作的調(diào)度時(shí)間且早于或等于當(dāng)前調(diào)度處理操作的調(diào)度時(shí)間,其中,所述擬調(diào)度時(shí)間由所述最近啟用時(shí)間加上整數(shù)個(gè)所述任務(wù)執(zhí)行周期獲得。
[0007]在一些實(shí)施例中,所述調(diào)度周期滿足以下條件:所有待調(diào)度任務(wù)的任務(wù)執(zhí)行周期是所述調(diào)度周期的整數(shù)倍。
[0008]在一些實(shí)施例中,所述方法還包括:判斷任務(wù)池中的任務(wù)是否全部被分配或執(zhí)行;若是,則結(jié)束任務(wù)調(diào)度。
[0009]在一些實(shí)施例中,當(dāng)所述調(diào)度處理操作是首次調(diào)度處理操作時(shí),當(dāng)前調(diào)度處理操作的調(diào)度時(shí)間為當(dāng)前時(shí)間;當(dāng)所述調(diào)度處理操作不是首次調(diào)度處理操作時(shí),當(dāng)前調(diào)度處理操作的調(diào)度時(shí)間為前一個(gè)調(diào)度時(shí)間加上一個(gè)調(diào)度周期的時(shí)間。
[0010]第二方面,本申請(qǐng)?zhí)峁┝艘环N任務(wù)調(diào)度的裝置,所述裝置包括:調(diào)度觸發(fā)模塊,配置用于根據(jù)調(diào)度周期周期性地觸發(fā)調(diào)度處理模塊執(zhí)行調(diào)度處理操作;所述調(diào)度處理模塊,配置用于執(zhí)行調(diào)度處理操作,包括:調(diào)度時(shí)間獲取單元,配置用于獲取所述調(diào)度觸發(fā)模塊觸發(fā)當(dāng)前調(diào)度處理操作的調(diào)度時(shí)間;任務(wù)參數(shù)獲取單元,配置用于獲取每個(gè)待調(diào)度任務(wù)的時(shí)間參數(shù),其中,所述時(shí)間參數(shù)包括待調(diào)度任務(wù)的最近啟用時(shí)間和任務(wù)執(zhí)行周期,所述任務(wù)執(zhí)行周期為待調(diào)度任務(wù)相鄰兩次執(zhí)行開始時(shí)間之間的間隔;判斷及輸出單元,配置用于輸出所述任務(wù)執(zhí)行周期、所述最近啟用時(shí)間與所述調(diào)度時(shí)間滿足預(yù)設(shè)條件的待調(diào)度任務(wù)至任務(wù)池;任務(wù)分配及執(zhí)行模塊,配置用于分配及執(zhí)行任務(wù)池中的任務(wù)。
[0011]在一些實(shí)施例中,所述預(yù)設(shè)條件包括:所述調(diào)度時(shí)間與所述最近啟用時(shí)間的差除以所述任務(wù)執(zhí)行周期得到的余數(shù)小于所述調(diào)度周期。
[0012]在一些實(shí)施例中,所述預(yù)設(shè)條件包括:待調(diào)度任務(wù)的擬調(diào)度時(shí)間遲于上一次調(diào)度處理操作的調(diào)度時(shí)間且早于或等于當(dāng)前調(diào)度處理操作的調(diào)度時(shí)間,其中,所述擬調(diào)度時(shí)間由所述最近啟用時(shí)間加上整數(shù)個(gè)所述任務(wù)執(zhí)行周期獲得。
[0013]在一些實(shí)施例中,所述調(diào)度周期滿足以下條件:所有待調(diào)度任務(wù)的任務(wù)執(zhí)行周期是所述調(diào)度周期的整數(shù)倍。
[0014]在一些實(shí)施例中,所述裝置還包括:任務(wù)檢測(cè)模塊,配置用于判斷任務(wù)池中的任務(wù)是否全部被分配或執(zhí)行;并且,在任務(wù)池中的任務(wù)全部被分配或執(zhí)行時(shí),結(jié)束任務(wù)調(diào)度。
[0015]在一些實(shí)施例中,當(dāng)所述調(diào)度處理操作是首次調(diào)度處理操作時(shí),當(dāng)前調(diào)度處理操作的調(diào)度時(shí)間為當(dāng)前時(shí)間;當(dāng)所述調(diào)度處理操作不是首次調(diào)度處理操作時(shí),當(dāng)前調(diào)度處理操作的調(diào)度時(shí)間為前一個(gè)調(diào)度時(shí)間加上一個(gè)調(diào)度周期的時(shí)間。
[0016]本申請(qǐng)?zhí)峁┑娜蝿?wù)調(diào)度的方法和裝置,通過調(diào)度周期周期性地觸發(fā)調(diào)度處理操作,在調(diào)度操作里,通過任務(wù)執(zhí)行周期、最近啟用時(shí)間與調(diào)度時(shí)間滿足的預(yù)設(shè)條件輸出待調(diào)度的任務(wù),而后對(duì)輸出的任務(wù)進(jìn)行分配并執(zhí)行,在不增加數(shù)據(jù)讀寫負(fù)擔(dān)的基礎(chǔ)上實(shí)現(xiàn)了任務(wù)的統(tǒng)一調(diào)度,從而提高了任務(wù)調(diào)度的效率。
【附圖說明】
[0017]通過閱讀參照以下附圖所作的對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本申請(qǐng)的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯:
[0018]圖1是根據(jù)本申請(qǐng)的任務(wù)調(diào)度的方法的一個(gè)實(shí)施例的流程圖;
[0019]圖2是圖1中的實(shí)施例的調(diào)度處理操作的流程圖;
[0020]圖3是根據(jù)本申請(qǐng)的調(diào)度處理操作中基于調(diào)度時(shí)間的時(shí)間參數(shù)與調(diào)度時(shí)間的關(guān)系不意圖;
[0021]圖4是根據(jù)本申請(qǐng)的調(diào)度處理操作中基于任務(wù)執(zhí)行間隔的調(diào)度效果示意圖;
[0022]圖5是根據(jù)本申請(qǐng)的任務(wù)調(diào)度的方法的一個(gè)實(shí)施例的流程圖;
[0023]圖6是根據(jù)本申請(qǐng)的任務(wù)調(diào)度裝置的一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;
[0024]圖7是根據(jù)本申請(qǐng)的一個(gè)實(shí)施例的任務(wù)調(diào)度服務(wù)器系統(tǒng)的示意圖;
[0025]圖8示出了可以應(yīng)用本申請(qǐng)實(shí)施例的示例性系統(tǒng)架構(gòu)。
【具體實(shí)施方式】
[0026]下面結(jié)合附圖和實(shí)施例對(duì)本申請(qǐng)作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖?,此處所描述的具體實(shí)施例僅僅用于解釋相關(guān)發(fā)明,而非對(duì)該發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。
[0027]需要說明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。下面將參考附圖并結(jié)合實(shí)施例來詳細(xì)說明本申請(qǐng)。
[0028]請(qǐng)參考圖1,其示出了任務(wù)調(diào)度的方法的一個(gè)實(shí)施例的流程100。本實(shí)施例主要以該方法應(yīng)用于包含有處理器的電子設(shè)備中來舉例說明,該電子設(shè)備可以包括智能手機(jī)、平板電腦、電子書閱讀器、MP3播放器(Moving Picture Experts Group Aud1 Layer III,動(dòng)態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面 3)、MP4 (Moving Picture Experts Group Aud1 Layer IV,動(dòng)態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面4)播放器、膝上型便攜計(jì)算機(jī)和臺(tái)式計(jì)算機(jī)等等。本申請(qǐng)的任務(wù)調(diào)度的方法,包括以下步驟:
[0029]步驟101,根據(jù)調(diào)度周期周期性地觸發(fā)調(diào)度處理操作。
[0030]在本實(shí)施例中,電子設(shè)備(例如任務(wù)調(diào)度應(yīng)用運(yùn)行于其上的便攜計(jì)算機(jī))可以根據(jù)調(diào)度周期計(jì)算調(diào)度時(shí)間,并在每個(gè)調(diào)度時(shí)間到達(dá)的時(shí)刻周期性地觸發(fā)對(duì)任務(wù)的調(diào)度處理操作(例如任務(wù)調(diào)度應(yīng)用的一個(gè)調(diào)度處理進(jìn)程)的執(zhí)行。
[0031]其中,調(diào)度周期是觸發(fā)調(diào)度處理操作的時(shí)間間隔,其可以是預(yù)設(shè)的一個(gè)時(shí)間段,例如可以是5秒。調(diào)度時(shí)間可以是電子設(shè)備每次觸發(fā)調(diào)度操作的時(shí)間。每次調(diào)度處理操作被觸發(fā)的對(duì)應(yīng)時(shí)間可以作為當(dāng)前調(diào)度處理操作的調(diào)度時(shí)間。
[0032]在本實(shí)施例的一些實(shí)現(xiàn)方式中,電子設(shè)備可以在本步驟中完成調(diào)度時(shí)間的計(jì)算。當(dāng)首次觸發(fā)調(diào)度處理操作時(shí),電子設(shè)備可以將當(dāng)前時(shí)間作為所觸發(fā)的調(diào)度處理操作的調(diào)度時(shí)間;當(dāng)不是首次觸發(fā)調(diào)度處理操作時(shí),電子設(shè)備可以將前一個(gè)調(diào)度時(shí)間加上一個(gè)調(diào)度周期的時(shí)間作為所觸發(fā)的調(diào)度處理操作的調(diào)度時(shí)間。
[0033]以下將以windows系統(tǒng)C++語言開發(fā)為例,給出根據(jù)調(diào)度周期周期性地觸發(fā)調(diào)度處理操作的一個(gè)實(shí)現(xiàn)。
[0034]在C++語言中,用scheduleTime表示調(diào)度時(shí)間,schedule Interval表示調(diào)度周期,則電子設(shè)備根據(jù)調(diào)度周期計(jì)算調(diào)度時(shí)間可以通過以下語句實(shí)現(xiàn):
[0035]scheduleTime = now ();
[0036]schedule Interval = 5 ;
[0037]scheduleTime = scheduleTime+scheduleInterval ;
[0038]其中,當(dāng)所述調(diào)度