亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種多任務(wù)調(diào)度方法及服務(wù)器與流程

文檔序號:11829206閱讀:340來源:國知局
一種多任務(wù)調(diào)度方法及服務(wù)器與流程

本發(fā)明涉及調(diào)度技術(shù),尤其涉及一種多任務(wù)調(diào)度方法及服務(wù)器。



背景技術(shù):

目前,傳統(tǒng)的多任務(wù)調(diào)度方法通常采用基于輪詢時間片的方式來實現(xiàn)多任務(wù)調(diào)度。傳統(tǒng)的多任務(wù)調(diào)度方法包括:首先,針對每一項任務(wù)定義一個輪循時間片,并初始化各項任務(wù)的運行時間表;之后,等待最小的任務(wù)時間片后,檢測當(dāng)前任務(wù)的輪循時間片是否到達;當(dāng)所述當(dāng)前任務(wù)的輪詢時間片到達時,開始運行所述任務(wù),并重置該任務(wù)的運行時間表。

但是,傳統(tǒng)的多任務(wù)調(diào)度方法存在如下缺陷:1)在輪詢過程中,無法靈活控制每一項任務(wù)的啟動時間;2)無法控制任務(wù)之間的運行方式,是并行或者串行;3)無法準(zhǔn)確控制任務(wù)的當(dāng)前狀態(tài);4)無法控制任務(wù)的類型,是單次任務(wù),還是多次任務(wù)。

綜上所述,傳統(tǒng)的多任務(wù)調(diào)度方法只能以輪詢時間片的方式依次執(zhí)行到達輪詢時間片的每一項任務(wù),無法實現(xiàn)多任務(wù)間的靈活調(diào)度。



技術(shù)實現(xiàn)要素:

為解決現(xiàn)有技術(shù)中存在的問題,本發(fā)明實施例提供一種多任務(wù)調(diào)度方法及服務(wù)器,能夠在執(zhí)行多任務(wù)的輪詢過程中,實現(xiàn)任務(wù)間的靈活調(diào)度。

本發(fā)明實施例的技術(shù)方案是這樣實現(xiàn)的:

本發(fā)明實施例提供一種多任務(wù)調(diào)度方法,所述方法包括:

獲取N個任務(wù)中的一個當(dāng)前任務(wù),所述N為大于1的自然數(shù);

檢測所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài),得到檢測結(jié)果;

根據(jù)所述檢測結(jié)果判斷所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),得 到判斷結(jié)果;

所述判斷結(jié)果用于表征所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù)時,獲取為所述當(dāng)前任務(wù)配置的配置參數(shù),根據(jù)所述配置參數(shù)運行所述當(dāng)前任務(wù),獲得運行結(jié)果,根據(jù)所述運行結(jié)果更新所述當(dāng)前任務(wù)的所述當(dāng)前狀態(tài)。

上述方案中,在所述檢測所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)之前,所述方法還包括:

初始化所述N個任務(wù)的運行時間表;

達到第一預(yù)設(shè)時間閾值后,觸發(fā)執(zhí)行檢測所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)的操作。

上述方案中,所述根據(jù)所述運行結(jié)果更新所述當(dāng)前任務(wù)的所述當(dāng)前狀態(tài),還包括:

結(jié)合所述初始化的所述N個任務(wù)的運行時間表,根據(jù)所述運行結(jié)果更新所述當(dāng)前任務(wù)的運行時間表,將所述運行時間表作為用于執(zhí)行任務(wù)調(diào)度的調(diào)度時間表。

上述方案中,所述方法還包括:設(shè)置對應(yīng)于所述N個任務(wù)的任務(wù)結(jié)構(gòu)體,所述任務(wù)結(jié)構(gòu)體中的結(jié)構(gòu)體實例與所述N個任務(wù)一一對應(yīng)。

上述方案中,根據(jù)所述檢測結(jié)果判斷所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),得到判斷結(jié)果,包括:

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為可運行,且所述當(dāng)前任務(wù)的等待時間片已到達,則所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),否則,所述當(dāng)前任務(wù)為不滿足預(yù)設(shè)條件的目標(biāo)任務(wù)。

上述方案中,根據(jù)所述檢測結(jié)果判斷所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),得到判斷結(jié)果,包括:

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為等待或運行,且所述當(dāng)前任務(wù)的輪詢時間片已到達,則所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù);否則,所述當(dāng)前任務(wù)為不滿足預(yù)設(shè)條件的目標(biāo)任務(wù)。

上述方案中,根據(jù)所述檢測結(jié)果判斷所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的 目標(biāo)任務(wù),得到判斷結(jié)果,包括:

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為禁用或結(jié)束,則所述當(dāng)前任務(wù)為不滿足預(yù)設(shè)條件的目標(biāo)任務(wù)。

上述方案中,根據(jù)所述檢測結(jié)果判斷所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),得到判斷結(jié)果,包括:

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為失敗,則所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù)。

本發(fā)明實施例還提供一種服務(wù)器,所述服務(wù)器包括獲取模塊、檢測模塊、判斷模塊和執(zhí)行模塊;其中,

所述獲取模塊,用于獲取N個任務(wù)中的一個當(dāng)前任務(wù),所述N為大于1的自然數(shù);

所述檢測模塊,用于檢測所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài),得到檢測結(jié)果;

所述判斷模塊,用于根據(jù)所述檢測結(jié)果判斷所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),得到判斷結(jié)果;

所述執(zhí)行模塊,用于當(dāng)所述判斷結(jié)果用于表征所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù)時,獲取為所述當(dāng)前任務(wù)配置的配置參數(shù),根據(jù)所述配置參數(shù)運行所述當(dāng)前任務(wù),獲得運行結(jié)果,根據(jù)所述運行結(jié)果更新所述當(dāng)前任務(wù)的所述當(dāng)前狀態(tài)。

上述方案中,所述服務(wù)器還包括初始化模塊和計時模塊;其中,

所述初始化模塊,用于初始化所述N個任務(wù)的運行時間表;

所述計時模塊,用于達到第一預(yù)設(shè)時間閾值后,觸發(fā)執(zhí)行檢測所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)的操作。

上述方案中,所述執(zhí)行模塊,還用于結(jié)合所述初始化的所述N個任務(wù)的運行時間表,根據(jù)所述運行結(jié)果更新所述當(dāng)前任務(wù)的運行時間表,將所述運行時間表作為用于執(zhí)行任務(wù)調(diào)度的調(diào)度時間表。

上述方案中,所述服務(wù)器還包括設(shè)置模塊;其中,

所述設(shè)置模塊,用于設(shè)置對應(yīng)于所述N個任務(wù)的任務(wù)結(jié)構(gòu)體,所述任務(wù)結(jié) 構(gòu)體中的結(jié)構(gòu)體實例與所述N個任務(wù)一一對應(yīng)。

上述方案中,所述判斷模塊用于根據(jù)所述檢測結(jié)果判斷所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),得到判斷結(jié)果,包括:

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為可運行,且所述當(dāng)前任務(wù)的等待時間片已到達,則所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),否則,所述當(dāng)前任務(wù)為不滿足預(yù)設(shè)條件的目標(biāo)任務(wù)。

上述方案中,所述判斷模塊用于根據(jù)所述檢測結(jié)果判斷所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),得到判斷結(jié)果,包括:

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為等待或運行,且所述當(dāng)前任務(wù)的輪詢時間片已到達,則所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù);否則,所述當(dāng)前任務(wù)為不滿足預(yù)設(shè)條件的目標(biāo)任務(wù)。

上述方案中,所述判斷模塊用于根據(jù)所述檢測結(jié)果判斷所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),得到判斷結(jié)果,包括:

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為禁用或結(jié)束,則所述當(dāng)前任務(wù)為不滿足預(yù)設(shè)條件的目標(biāo)任務(wù)。

上述方案中,所述判斷模塊用于根據(jù)所述檢測結(jié)果判斷所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),得到判斷結(jié)果,包括:

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為失敗,則所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù)。

本發(fā)明實施例提供一種多任務(wù)調(diào)度方法,服務(wù)器獲取N個任務(wù)中的一個當(dāng)前任務(wù),所述N為大于1的自然數(shù);檢測所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài),得到檢測結(jié)果;根據(jù)所述檢測結(jié)果判斷所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),得到判斷結(jié)果;所述判斷結(jié)果用于表征所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù)時,獲取為所述當(dāng)前任務(wù)配置的配置參數(shù),根據(jù)所述配置參數(shù)運行所述當(dāng)前任務(wù),獲得運行結(jié)果,根據(jù)所述運行結(jié)果更新所述當(dāng)前任務(wù)的所述當(dāng)前狀態(tài)。如此,能夠在執(zhí)行多任務(wù)的輪詢過程中,實現(xiàn)任務(wù)間的靈活調(diào)度。

附圖說明

圖1為本發(fā)明實施例一多任務(wù)調(diào)度方法的實現(xiàn)流程示意圖;

圖2為本發(fā)明實施例二多任務(wù)調(diào)度方法的實現(xiàn)流程示意圖;

圖3為本發(fā)明實施例三多任務(wù)調(diào)度方法的實現(xiàn)流程示意圖;

圖4為本發(fā)明實施例服務(wù)器的組成結(jié)構(gòu)示意圖一;

圖5為本發(fā)明實施例服務(wù)器的組成結(jié)構(gòu)示意圖二;

圖6為本發(fā)明實施例服務(wù)器的組成結(jié)構(gòu)示意圖三;

圖7為傳統(tǒng)的多任務(wù)調(diào)度方法的具體實現(xiàn)流程示意圖;

圖8為基于傳統(tǒng)的多任務(wù)調(diào)度方法的任務(wù)運行情況示意圖;

圖9為本發(fā)明實施例多任務(wù)調(diào)度方法的具體實現(xiàn)流程示意圖;

圖10為基于本發(fā)明實施例多任務(wù)調(diào)度方法的任務(wù)運行情況示意圖;

圖11為本發(fā)明實施例服務(wù)器作為硬件實體的一個示例圖。

具體實施方式

下面結(jié)合附圖和具體實施例對本發(fā)明的技術(shù)方案進一步詳細(xì)闡述。

方法實施例一:

圖1為本發(fā)明實施例一多任務(wù)調(diào)度方法的實現(xiàn)流程示意圖,如圖1所示,所述方法包括:

步驟S101:獲取N個任務(wù)中的一個當(dāng)前任務(wù),所述N為大于1的自然數(shù);

具體地,服務(wù)器在執(zhí)行多任務(wù)的輪詢過程中,可以隨機獲取待執(zhí)行的N個任務(wù)中的一個當(dāng)前任務(wù),也可以按照優(yōu)先級順序獲取待執(zhí)行的N個任務(wù)中的一個優(yōu)先級較高的任務(wù),作為當(dāng)前任務(wù)。在實際應(yīng)用中,當(dāng)所述N個任務(wù)之間沒有優(yōu)先級限制的情況下,即各個任務(wù)之間的執(zhí)行順序是隨機的,則服務(wù)器隨機地從N個任務(wù)中獲取一個任務(wù),作為當(dāng)前任務(wù);當(dāng)所述N個任務(wù)之間預(yù)先設(shè)置有優(yōu)先級順序,則服務(wù)器可以根據(jù)預(yù)先設(shè)置的優(yōu)先級順序從N個任務(wù)中獲取一個優(yōu)先級較高的任務(wù),作為當(dāng)前任務(wù)。

步驟S102:檢測所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài),得到檢測結(jié)果;

這里,所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)可以包括可運行、等待或運行、禁用或結(jié)束、以及失敗等。

具體地,服務(wù)器檢測所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài),得到檢測結(jié)果包括如下四種情況:A、當(dāng)經(jīng)檢測確定所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為可運行時,為了進一步確定所述當(dāng)前任務(wù)是否為處于就緒狀態(tài)的任務(wù),則需要進一步檢測所述當(dāng)前任務(wù)的等待時間片是否已到達,以得到檢測結(jié)果;B、當(dāng)經(jīng)檢測確定所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為等待或運行時,為了進一步確定所述當(dāng)前任務(wù)是否為處于就緒狀態(tài)的任務(wù),則需要進一步檢測所述當(dāng)前任務(wù)的輪詢時間片是否已到達,以得到檢測結(jié)果;C、當(dāng)經(jīng)檢測確定所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為禁用或結(jié)束時,直接得到檢測結(jié)果;D、當(dāng)經(jīng)檢測確定所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為失敗時,直接得到檢測結(jié)果。

步驟S103:根據(jù)所述檢測結(jié)果判斷所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),得到判斷結(jié)果;

這里,服務(wù)器根據(jù)所述檢測結(jié)果來判斷確定所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù);其中,當(dāng)經(jīng)判斷確定所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù)時,即相當(dāng)于所述當(dāng)前任務(wù)為可調(diào)度的任務(wù),也可稱作已處于就緒狀態(tài)的任務(wù)。

具體地,對應(yīng)于步驟S102得到檢測結(jié)果的四種情況,服務(wù)器根據(jù)所述檢測結(jié)果來判斷確定所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù)包括:

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為可運行,且所述當(dāng)前任務(wù)的等待時間片已到達,則所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),否則,所述當(dāng)前任務(wù)為不滿足預(yù)設(shè)條件的目標(biāo)任務(wù);

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為等待或運行,且所述當(dāng)前任務(wù)的輪詢時間片已到達,則所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù);否則,所述當(dāng)前任務(wù)為不滿足預(yù)設(shè)條件的目標(biāo)任務(wù);

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為禁用或結(jié)束,則所述當(dāng)前任務(wù)為不滿足預(yù)設(shè)條件的目標(biāo)任務(wù);

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為失敗,則所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù)。

步驟S104:所述判斷結(jié)果用于表征所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù)時,獲取為所述當(dāng)前任務(wù)配置的配置參數(shù),根據(jù)所述配置參數(shù)運行所述當(dāng)前任務(wù),獲得運行結(jié)果,根據(jù)所述運行結(jié)果更新所述當(dāng)前任務(wù)的所述當(dāng)前狀態(tài)。

這里,所述為所述當(dāng)前任務(wù)配置的配置參數(shù)可以包括任務(wù)的類型、失敗的嘗試次數(shù)或可調(diào)度次數(shù)等。在實際應(yīng)用中,所述任務(wù)的類型的配置可以根據(jù)需要配置為單次運行或多次運行;所述識別的嘗試次數(shù)或可調(diào)度次數(shù)的配置可以綜合考慮服務(wù)器CPU的處理能力和對多任務(wù)調(diào)度的速率的要求等。

舉例來說,當(dāng)所述判斷結(jié)果用于表征所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù)時,獲取為所述當(dāng)前任務(wù)配置的配置參數(shù)如當(dāng)前任務(wù)的類型,則服務(wù)器根據(jù)所述當(dāng)前任務(wù)的類型運行所述當(dāng)前任務(wù),獲得運行結(jié)果,根據(jù)所述運行結(jié)果更新所述當(dāng)前任務(wù)的所述當(dāng)前狀態(tài),包括:當(dāng)所述當(dāng)前任務(wù)的類型為單次運行時,若所述運行結(jié)果為成功,則將當(dāng)前任務(wù)的狀態(tài)更新為結(jié)束;當(dāng)所述當(dāng)前任務(wù)的類型為多次運行時,若所述運行結(jié)果為成功,則將當(dāng)前任務(wù)的狀態(tài)更新為運行。

采用本發(fā)明實施例一的技術(shù)方案,在執(zhí)行多任務(wù)的輪詢過程中,可以通過獲取當(dāng)前任務(wù),對所獲取的當(dāng)前任務(wù)進行狀態(tài)檢測,及進一步根據(jù)檢測結(jié)果確定當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),即可調(diào)度任務(wù)時,根據(jù)所述配置參數(shù)運行所述當(dāng)前任務(wù),并根據(jù)所獲得運行結(jié)果更新所述當(dāng)前任務(wù)的所述當(dāng)前狀態(tài),實現(xiàn)任務(wù)間的靈活調(diào)度,不再需要依次執(zhí)行到達輪詢時間片的每一項任務(wù),實現(xiàn)了多任務(wù)間的靈活調(diào)度。

方法實施例二:

圖2為本發(fā)明實施例一多任務(wù)調(diào)度方法的實現(xiàn)流程示意圖,如圖2所示,所述方法包括:

步驟S201:獲取N個任務(wù)中的一個當(dāng)前任務(wù),所述N為大于1的自然數(shù);

具體地,服務(wù)器在執(zhí)行多任務(wù)的輪詢過程中,可以隨機獲取待執(zhí)行的N個任務(wù)中的一個當(dāng)前任務(wù),也可以按照優(yōu)先級順序獲取待執(zhí)行的N個任務(wù)中的一個優(yōu)先級較高的任務(wù),作為當(dāng)前任務(wù)。在實際應(yīng)用中,當(dāng)所述N個任務(wù)之間沒有優(yōu)先級限制的情況下,即各個任務(wù)之間的執(zhí)行順序是隨機的,則服務(wù)器隨機地從N個任務(wù)中獲取一個任務(wù),作為當(dāng)前任務(wù);當(dāng)所述N個任務(wù)之間預(yù)先設(shè)置有優(yōu)先級順序,則服務(wù)器可以根據(jù)預(yù)先設(shè)置的優(yōu)先級順序從N個任務(wù)中獲取一個優(yōu)先級較高的任務(wù),作為當(dāng)前任務(wù)。

步驟S202:初始化所述N個任務(wù)的運行時間表;

具體地,服務(wù)器可以在開始執(zhí)行多任務(wù)的輪詢過程時,對待執(zhí)行的N個任務(wù)的運行時間表進行初始化。

這里,需要補充說明的是,在本發(fā)明實施例中,步驟S201和步驟S202之間并無執(zhí)行時間先后順序的限定。

步驟S203:達到第一預(yù)設(shè)時間閾值后,觸發(fā)執(zhí)行檢測所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)的操作;

這里,所述第一預(yù)設(shè)時間閾值為在時間片輪詢操作系統(tǒng)中預(yù)先設(shè)置的最小的任務(wù)時間片。這里,所述最小的任務(wù)時間片是大小可以根據(jù)服務(wù)器中整個時間片輪詢操作系統(tǒng)的要求加以設(shè)置。具體地,服務(wù)器完成初始化所述N個任務(wù)的運行時間表后,需要等待最小的任務(wù)時間片,之后,再觸發(fā)執(zhí)行檢查所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)的操作。

步驟S204:檢測所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài),得到檢測結(jié)果;

這里,所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)可以包括可運行、等待或運行、禁用或結(jié)束、以及失敗等。

具體地,服務(wù)器檢測所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài),得到檢測結(jié)果包括如下四種情況:A、當(dāng)經(jīng)檢測確定所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為可運行時,為了進一步確定所述當(dāng)前任務(wù)是否為處于就緒狀態(tài)的任務(wù),則需要進一步檢測所述當(dāng)前任務(wù)的等待時間片是否已到達,以得到檢測結(jié)果;B、當(dāng)經(jīng)檢測確定所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為等待或運行時,為了進一步確定所述當(dāng)前任務(wù)是 否為處于就緒狀態(tài)的任務(wù),則需要進一步檢測所述當(dāng)前任務(wù)的輪詢時間片是否已到達,以得到檢測結(jié)果;C、當(dāng)經(jīng)檢測確定所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為禁用或結(jié)束時,直接得到檢測結(jié)果;D、當(dāng)經(jīng)檢測確定所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為失敗時,直接得到檢測結(jié)果。

步驟S205:根據(jù)所述檢測結(jié)果判斷所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),得到判斷結(jié)果;

這里,服務(wù)器根據(jù)所述檢測結(jié)果來判斷確定所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù);其中,當(dāng)經(jīng)判斷確定所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù)時,即相當(dāng)于所述當(dāng)前任務(wù)為可調(diào)度的任務(wù),也可稱作已處于就緒狀態(tài)的任務(wù)。

具體地,對應(yīng)于步驟S204得到檢測結(jié)果的四種情況,服務(wù)器根據(jù)所述檢測結(jié)果來判斷確定所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù)包括:

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為可運行,且所述當(dāng)前任務(wù)的等待時間片已到達,則所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),否則,所述當(dāng)前任務(wù)為不滿足預(yù)設(shè)條件的目標(biāo)任務(wù);

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為等待或運行,且所述當(dāng)前任務(wù)的輪詢時間片已到達,則所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù);否則,所述當(dāng)前任務(wù)為不滿足預(yù)設(shè)條件的目標(biāo)任務(wù);

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為禁用或結(jié)束,則所述當(dāng)前任務(wù)為不滿足預(yù)設(shè)條件的目標(biāo)任務(wù);

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為失敗,則所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù)。

步驟S206:所述判斷結(jié)果用于表征所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù)時,獲取為所述當(dāng)前任務(wù)配置的配置參數(shù),根據(jù)所述配置參數(shù)運行所述當(dāng)前任務(wù),獲得運行結(jié)果,根據(jù)所述運行結(jié)果更新所述當(dāng)前任務(wù)的所述當(dāng)前狀態(tài)。

這里,所述為所述當(dāng)前任務(wù)配置的配置參數(shù)可以包括任務(wù)的類型、失敗的嘗試次數(shù)或可調(diào)度次數(shù)等。在實際應(yīng)用中,所述任務(wù)的類型的配置可以根據(jù)需 要配置為單次運行或多次運行;所述識別的嘗試次數(shù)或可調(diào)度次數(shù)的配置可以綜合考慮服務(wù)器CPU的處理能力和對多任務(wù)調(diào)度的速率的要求等。

在本發(fā)明實施例二實施方式中,所述方法還可以包括:

步驟S207:結(jié)合所述初始化的所述N個任務(wù)的運行時間表,根據(jù)所述運行結(jié)果更新所述當(dāng)前任務(wù)的運行時間表,將所述運行時間表作為用于執(zhí)行任務(wù)調(diào)度的調(diào)度時間表。

如此,采用本發(fā)明實施例二的技術(shù)方案,在執(zhí)行多任務(wù)的輪詢過程中,不再需要依次執(zhí)行到達輪詢時間片的每一項任務(wù),實現(xiàn)了多任務(wù)間的靈活調(diào)度。

方法實施例三:

圖3為本發(fā)明實施例三多任務(wù)調(diào)度方法的實現(xiàn)流程示意圖,如圖3所示,所述方法包括:

步驟S301:設(shè)置對應(yīng)于N個任務(wù)的任務(wù)結(jié)構(gòu)體;

其中,所述任務(wù)結(jié)構(gòu)體中的結(jié)構(gòu)體實例與所述N個任務(wù)一一對應(yīng),所述N為大于1的自然數(shù)。

這里,所述任務(wù)結(jié)構(gòu)體中的結(jié)構(gòu)體實例可以包括對應(yīng)任務(wù)所處的當(dāng)前狀態(tài)、預(yù)先配置的對應(yīng)任務(wù)的配置參數(shù)及任務(wù)的調(diào)度方式等信息。其中,所述配置參數(shù)可以包括任務(wù)的類型、失敗的嘗試次數(shù)或可調(diào)度次數(shù)等;所述任務(wù)的調(diào)度方式可以包括并行調(diào)度或串行調(diào)度。

步驟S302:獲取所述N個任務(wù)中的一個當(dāng)前任務(wù);

具體地,服務(wù)器在執(zhí)行多任務(wù)的輪詢過程中,可以隨機獲取待執(zhí)行的N個任務(wù)中的一個當(dāng)前任務(wù),也可以按照優(yōu)先級順序獲取待執(zhí)行的N個任務(wù)中的一個優(yōu)先級較高的任務(wù),作為當(dāng)前任務(wù)。在實際應(yīng)用中,當(dāng)所述N個任務(wù)之間沒有優(yōu)先級限制的情況下,即各個任務(wù)之間的執(zhí)行順序是隨機的,則服務(wù)器隨機地從N個任務(wù)中獲取一個任務(wù),作為當(dāng)前任務(wù);當(dāng)所述N個任務(wù)之間預(yù)先設(shè)置有優(yōu)先級順序,則服務(wù)器可以根據(jù)預(yù)先設(shè)置的優(yōu)先級順序從N個任務(wù)中獲取一個優(yōu)先級較高的任務(wù),作為當(dāng)前任務(wù)。

步驟S303:檢測所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài),得到檢測結(jié)果;

這里,服務(wù)器通過遍歷預(yù)先設(shè)置的任務(wù)結(jié)構(gòu)體查找對應(yīng)于當(dāng)前任務(wù)的結(jié)構(gòu)體實例的方式,檢測所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài),得到檢測結(jié)果。其中,所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)可以包括可運行、等待或運行、禁用或結(jié)束、以及失敗等。

具體地,服務(wù)器檢測所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài),得到檢測結(jié)果包括如下四種情況:A、當(dāng)經(jīng)檢測確定所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為可運行時,為了進一步確定所述當(dāng)前任務(wù)是否為處于就緒狀態(tài)的任務(wù),則需要進一步檢測所述當(dāng)前任務(wù)的等待時間片是否已到達,以得到檢測結(jié)果;B、當(dāng)經(jīng)檢測確定所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為等待或運行時,為了進一步確定所述當(dāng)前任務(wù)是否為處于就緒狀態(tài)的任務(wù),則需要進一步檢測所述當(dāng)前任務(wù)的輪詢時間片是否已到達,以得到檢測結(jié)果;C、當(dāng)經(jīng)檢測確定所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為禁用或結(jié)束時,直接得到檢測結(jié)果;D、當(dāng)經(jīng)檢測確定所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為失敗時,直接得到檢測結(jié)果。

步驟S304:根據(jù)所述檢測結(jié)果判斷所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),得到判斷結(jié)果;

這里,服務(wù)器根據(jù)所述檢測結(jié)果來判斷確定所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù);其中,當(dāng)經(jīng)判斷確定所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù)時,即相當(dāng)于所述當(dāng)前任務(wù)為可調(diào)度的任務(wù),也可稱作已處于就緒狀態(tài)的任務(wù)。

具體地,對應(yīng)于步驟S303得到檢測結(jié)果的四種情況,服務(wù)器根據(jù)所述檢測結(jié)果來判斷確定所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù)包括:

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為可運行,且所述當(dāng)前任務(wù)的等待時間片已到達,則所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),否則,所述當(dāng)前任務(wù)為不滿足預(yù)設(shè)條件的目標(biāo)任務(wù);

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為等待或運行,且所述當(dāng)前任務(wù)的輪詢時間片已到達,則所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任 務(wù);否則,所述當(dāng)前任務(wù)為不滿足預(yù)設(shè)條件的目標(biāo)任務(wù);

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為禁用或結(jié)束,則所述當(dāng)前任務(wù)為不滿足預(yù)設(shè)條件的目標(biāo)任務(wù);

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為失敗,則所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù)。

步驟S305:所述判斷結(jié)果用于表征所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù)時,獲取為所述當(dāng)前任務(wù)配置的配置參數(shù),根據(jù)所述配置參數(shù)運行所述當(dāng)前任務(wù),獲得運行結(jié)果,根據(jù)所述運行結(jié)果更新所述當(dāng)前任務(wù)的所述當(dāng)前狀態(tài)。

這里,所述為所述當(dāng)前任務(wù)配置的配置參數(shù)可以包括任務(wù)的類型、失敗的嘗試次數(shù)或可調(diào)度次數(shù)等。在實際應(yīng)用中,所述任務(wù)的類型的配置可以根據(jù)需要配置為單次運行或多次運行;所述識別的嘗試次數(shù)或可調(diào)度次數(shù)的配置可以綜合考慮服務(wù)器CPU的處理能力和對多任務(wù)調(diào)度的速率的要求等。

如此,采用本發(fā)明實施例三的技術(shù)方案,在執(zhí)行多任務(wù)的輪詢過程中,不再需要依次執(zhí)行到達輪詢時間片的每一項任務(wù),實現(xiàn)了多任務(wù)間的靈活調(diào)度。

服務(wù)器實施例:

圖4為本發(fā)明實施例服務(wù)器的組成結(jié)構(gòu)示意圖一,如圖4所示,所述服務(wù)器包括獲取模塊401、檢測模塊402、判斷模塊403和執(zhí)行模塊404;其中,

所述獲取模塊401,用于獲取N個任務(wù)中的一個當(dāng)前任務(wù),所述N為大于1的自然數(shù);

所述檢測模塊402,用于檢測所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài),得到檢測結(jié)果;

所述判斷模塊403,用于根據(jù)所述檢測結(jié)果判斷所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),得到判斷結(jié)果;

具體地,所述判斷模塊403用于根據(jù)所述檢測結(jié)果判斷所述當(dāng)前任務(wù)是否為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),得到判斷結(jié)果,包括:

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為可運行,且所述 當(dāng)前任務(wù)的等待時間片已到達,則所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù),否則,所述當(dāng)前任務(wù)為不滿足預(yù)設(shè)條件的目標(biāo)任務(wù);

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為等待或運行,且所述當(dāng)前任務(wù)的輪詢時間片已到達,則所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù);否則,所述當(dāng)前任務(wù)為不滿足預(yù)設(shè)條件的目標(biāo)任務(wù);

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為禁用或結(jié)束,則所述當(dāng)前任務(wù)為不滿足預(yù)設(shè)條件的目標(biāo)任務(wù);

當(dāng)所述檢測結(jié)果用于表征所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)為失敗,則所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù)。

所述執(zhí)行模塊404,用于當(dāng)所述判斷結(jié)果用于表征所述當(dāng)前任務(wù)為滿足預(yù)設(shè)條件的目標(biāo)任務(wù)時,獲取為所述當(dāng)前任務(wù)配置的配置參數(shù),根據(jù)所述配置參數(shù)運行所述當(dāng)前任務(wù),獲得運行結(jié)果,根據(jù)所述運行結(jié)果更新所述當(dāng)前任務(wù)的所述當(dāng)前狀態(tài)。

在一應(yīng)用實施例中,如圖5所示,所述服務(wù)器還可以包括初始化模塊405和計時模塊406;其中,

所述初始化模塊405,用于初始化所述N個任務(wù)的運行時間表;

所述計時模塊406,用于達到第一預(yù)設(shè)時間閾值后,觸發(fā)執(zhí)行檢測所述當(dāng)前任務(wù)所處的當(dāng)前狀態(tài)的操作。

在一應(yīng)用實施例中,如圖5所示,所述執(zhí)行模塊404,還用于結(jié)合所述初始化的所述N個任務(wù)的運行時間表,根據(jù)所述運行結(jié)果更新所述當(dāng)前任務(wù)的運行時間表,將所述運行時間表作為用于執(zhí)行任務(wù)調(diào)度的調(diào)度時間表。

在一應(yīng)用實施例中,如圖6所示,所述服務(wù)器還可以包括設(shè)置模塊407;其中,

所述設(shè)置模塊407,用于設(shè)置對應(yīng)于所述N個任務(wù)的任務(wù)結(jié)構(gòu)體,所述任務(wù)結(jié)構(gòu)體中的結(jié)構(gòu)體實例與所述N個任務(wù)一一對應(yīng)。

具體應(yīng)用場景:

圖7為傳統(tǒng)的多任務(wù)調(diào)度方法的具體實現(xiàn)流程示意圖,如圖7所示,所述方法包括:

步驟S701:初始化所有任務(wù)的運行時間表;

步驟S702:等待最小的任務(wù)時間片;

步驟S703:檢測當(dāng)前任務(wù)的輪詢時間片是否已到達,若是,執(zhí)行步驟S704;否則,執(zhí)行步驟S705;

步驟S704:執(zhí)行所述當(dāng)前任務(wù),并重置所述當(dāng)前任務(wù)的運行時間表;

步驟S705:進一步檢測確定是否接到退出通知,若是,退出對所述當(dāng)前任務(wù)的執(zhí)行,結(jié)束流程;否則,返回執(zhí)行步驟S701。

這樣,采用如圖7所示的傳統(tǒng)的多任務(wù)調(diào)度方法,服務(wù)器只能通過檢測當(dāng)前任務(wù)的輪詢時間片是否已到達的方式依次執(zhí)行到達輪詢時間片的每一項任務(wù),即如圖8所示的基于傳統(tǒng)的多任務(wù)調(diào)度方法的任務(wù)運行情況示意圖,如此,將無法實現(xiàn)多任務(wù)間的靈活調(diào)度。

圖9為本發(fā)明實施例多任務(wù)調(diào)度方法的具體實現(xiàn)流程示意圖,如圖9所示,所述方法包括:

步驟S901:初始化所有任務(wù)的運行時間表;

步驟S902:等待最小的任務(wù)時間片;

步驟S903:檢測當(dāng)前任務(wù)是否滿足可調(diào)度條件,若是,執(zhí)行步驟S904;否則,執(zhí)行步驟S905;

步驟S904:執(zhí)行所述當(dāng)前任務(wù),并根據(jù)所述當(dāng)前任務(wù)的運行結(jié)果,更新所述當(dāng)前任務(wù)的狀態(tài)及調(diào)度時間表;

步驟S905:進一步檢測確定是否接到退出通知,若是,退出對所述當(dāng)前任務(wù)的執(zhí)行,結(jié)束流程;否則,返回執(zhí)行步驟S901。

如此,通過如圖9所示的多任務(wù)調(diào)度方法,服務(wù)器不再通過檢測當(dāng)前任務(wù)的輪詢時間片是否已到達來依次執(zhí)行到達輪詢時間片的每一項任務(wù),而是采用檢測當(dāng)前任務(wù)是否滿足可調(diào)度條件的方式,靈活地實現(xiàn)任務(wù)間的調(diào)度,即如圖10所示的基于本發(fā)明實施例多任務(wù)調(diào)度方法的任務(wù)運行情況示意圖。

這里,需要補充說明的是,上述實施例中所涉及的服務(wù)器可以為PC這種電子設(shè)備,還可以為如PAD,平板電腦,手提電腦這種便攜電子設(shè)備、還可以為如手機這種智能移動終端,不限于這里的描述;服務(wù)器至少包括用于存儲數(shù)據(jù)的數(shù)據(jù)庫和用于數(shù)據(jù)處理的處理器,或者包括設(shè)置于服務(wù)器內(nèi)的存儲介質(zhì)或獨立設(shè)置的存儲介質(zhì)。

其中,對于用于數(shù)據(jù)處理的處理器而言,在執(zhí)行處理時,可以采用微處理器、中央處理器(CPU,Central Processing Unit)、數(shù)字信號處理器(DSP,Digital Singnal Processor)或可編程邏輯陣列(FPGA,F(xiàn)ield-Programmable Gate Array)實現(xiàn);對于存儲介質(zhì)來說,包含操作指令,該操作指令可以為計算機可執(zhí)行代碼,通過所述操作指令來實現(xiàn)上述本發(fā)明實施例信息處理方法流程中的各個步驟。

所述服務(wù)器S11作為硬件實體的一個示例如圖11所示。所述裝置包括處理器111、存儲介質(zhì)112以及至少一個外部通信接口113;所述處理器111、存儲介質(zhì)112以及外部通信接口113均通過總線114連接。

這里需要指出的是:以上涉及服務(wù)器項的描述,與上述方法描述是類似的,同方法的有益效果描述,不做贅述。對于本發(fā)明服務(wù)器中未披露的技術(shù)細(xì)節(jié),請參照本發(fā)明方法實施例的描述。

在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的設(shè)備和方法,可以通過其它的方式實現(xiàn)。以上所描述的設(shè)備實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,如:多個單元或組件可以結(jié)合,或可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另外,所顯示或討論的各組成部分相互之間的耦合、或直接耦合、或通信連接可以是通過一些接口,設(shè)備或單元的間接耦合或通信連接,可以是電性的、機械的或其它形式的。

上述作為分離部件說明的單元可以是、或也可以不是物理上分開的,作為單元顯示的部件可以是、或也可以不是物理單元;既可以位于一個地方,也可以分布到多個網(wǎng)絡(luò)單元上;可以根據(jù)實際的需要選擇其中的部分或全部單元來 實現(xiàn)本實施例方案的目的。

另外,在本發(fā)明各實施例中的各功能單元可以全部集成在一個處理單元中,也可以是各單元分別單獨作為一個單元,也可以兩個或兩個以上單元集成在一個單元中;上述集成的單元既可以采用硬件的形式實現(xiàn),也可以采用硬件加軟件功能單元的形式實現(xiàn)。

本領(lǐng)域普通技術(shù)人員可以理解:實現(xiàn)上述方法實施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于計算機可讀取存儲介質(zhì)中,該程序在執(zhí)行時,執(zhí)行包括上述方法實施例的步驟;而前述的存儲介質(zhì)包括:移動存儲設(shè)備、只讀存儲器(Read-Only Memory,ROM)、隨機存取存儲器(Random Access Memory,RAM)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

或者,本發(fā)明上述集成的單元如果以軟件功能模塊的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明實施例的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機、服務(wù)器、或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分。而前述的存儲介質(zhì)包括:移動存儲設(shè)備、ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。

以上所述,僅為本發(fā)明的具體實施方式,但本發(fā)明的保護范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以所述權(quán)利要求的保護范圍為準(zhǔn)。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1