本發(fā)明屬于自動(dòng)化控制領(lǐng)域,特別涉及基于令牌的任務(wù)調(diào)度方法。
背景技術(shù):
流程工業(yè)優(yōu)化控制過(guò)程中往往要求能夠?qū)⒀b置的溫度、液位、壓力等指標(biāo)控制在一定的范圍內(nèi),這就需要在先控服務(wù)器上同時(shí)運(yùn)行多個(gè)先進(jìn)控制軟件APC控制器(以下簡(jiǎn)稱控制器)用以控制不同裝置的不同指標(biāo)。由于這些控制器每次運(yùn)行時(shí)需要消耗大量的計(jì)算資源(如CPU、內(nèi)存),因此若同時(shí)運(yùn)行多個(gè)控制器的情況下會(huì)導(dǎo)致先控服務(wù)器(運(yùn)行基于先進(jìn)過(guò)程控制理論的控制器等優(yōu)化類軟件的高性能服務(wù)器)運(yùn)行在高負(fù)荷狀態(tài),這將會(huì)導(dǎo)致其它控制器由于無(wú)法得到計(jì)算資源而無(wú)法進(jìn)行優(yōu)化計(jì)算,最終影響到裝置的優(yōu)化效果,更為嚴(yán)重的是由于先控服務(wù)器長(zhǎng)期運(yùn)行在高負(fù)荷狀態(tài),大大增加了其發(fā)生宕機(jī)等意外情況的概率,從而嚴(yán)重影響到控制系統(tǒng)的穩(wěn)定性,帶來(lái)生產(chǎn)上的安全隱患。
針對(duì)現(xiàn)有技術(shù)改進(jìn)的實(shí)現(xiàn)方案是在控制器內(nèi)部增加系統(tǒng)資源監(jiān)控模塊,通過(guò)實(shí)時(shí)監(jiān)控先控服務(wù)器的系統(tǒng)資源使用情況用以確定是否需要延時(shí)執(zhí)行。但是這種方案會(huì)發(fā)生需要延時(shí)的控制器在延時(shí)執(zhí)行時(shí)刻系統(tǒng)依舊處于高負(fù)荷狀態(tài)從而導(dǎo)致不斷延時(shí),繼而發(fā)生不能及時(shí)運(yùn)算從而導(dǎo)致無(wú)法穩(wěn)定優(yōu)化效果的情況。
技術(shù)實(shí)現(xiàn)要素:
為了解決現(xiàn)有技術(shù)中存在的缺點(diǎn)和不足,本發(fā)明提供了用于提高系統(tǒng)穩(wěn)定性的基于令牌的任務(wù)調(diào)度方法。
為了達(dá)到上述技術(shù)目的,本發(fā)明提供了基于令牌的任務(wù)調(diào)度方法,該方法用于控制系統(tǒng)中的全局令牌協(xié)調(diào)器,所述任務(wù)調(diào)度方法,包括:
令全局令牌協(xié)調(diào)器獲取控制系統(tǒng)資源,確定可用令牌數(shù)量;
建立令牌等待發(fā)送列表,在令牌等待發(fā)送列表中存有接收到的已發(fā)送令牌請(qǐng)求的控制器的序號(hào)、接收到令牌請(qǐng)求的時(shí)刻順序以及與控制器對(duì)應(yīng)的優(yōu)先級(jí)順序;
接收當(dāng)前控制器發(fā)送的令牌請(qǐng)求,根據(jù)令牌等待發(fā)送列表中存儲(chǔ)的控制器的順序,結(jié)合可用令牌數(shù)量向當(dāng)前控制器發(fā)送令牌回復(fù)指令;
其中,在令牌等待發(fā)送列表中,首先按照控制器優(yōu)先級(jí)從高到底排列,其次在控制器優(yōu)先級(jí)一致的情況按照接收到控制器令牌請(qǐng)求時(shí)刻的先后順序排序。
可選的,所述令全局令牌協(xié)調(diào)器獲取控制系統(tǒng)資源,確定可用令牌數(shù)量,包括:
在啟動(dòng)所述全局令牌協(xié)調(diào)器、或設(shè)置在所述全局令牌協(xié)調(diào)器內(nèi)的定時(shí)檢測(cè)系統(tǒng)檢測(cè)到可用資源事件發(fā)生、或接收到控制器發(fā)送的令牌請(qǐng)求時(shí),獲取所述控制系統(tǒng)資源使用情況,從所述控制系統(tǒng)資源使用情況中提取處理器空閑使用率,對(duì)所述處理器空閑處理器使用率進(jìn)行處理,獲取可用令牌數(shù)量。
可選的,所述對(duì)所述處理器空閑使用率進(jìn)行處理,獲取可用令牌數(shù)量,包括:
將所述處理器空閑使用率×100×80%/10后的結(jié)果取整,將得到的數(shù)值定為可用令牌數(shù)量。
可選的,在所述接收到當(dāng)前控制器發(fā)送的令牌請(qǐng)求后,所述任務(wù)調(diào)度方法,還包括:
將所述當(dāng)前控制器的序號(hào)與所述令牌等待發(fā)送列表中的內(nèi)容進(jìn)行對(duì)比;
如果在所述令牌等待發(fā)送列表中已經(jīng)存儲(chǔ)有所述當(dāng)前控制器的序號(hào),則將所述當(dāng)前控制器的優(yōu)先級(jí)加一;
如果在所述令牌等待發(fā)送列表中未存儲(chǔ)有所述當(dāng)前控制器的序號(hào),則將所述當(dāng)前控制器的序號(hào)添加到所述令牌等待發(fā)送列表中。
可選的,所述接收當(dāng)前控制器發(fā)送的令牌請(qǐng)求,根據(jù)令牌等待發(fā)送列表中存儲(chǔ)的控制器的順序,結(jié)合可用令牌數(shù)量向當(dāng)前控制器發(fā)送令牌回復(fù)指令,包括:
在接收到當(dāng)前控制器發(fā)送的令牌請(qǐng)求后,獲取令牌等待發(fā)送列表中存儲(chǔ)的控制器的順序,獲取排在最前的控制器的序號(hào);
如果可用令牌數(shù)量大于零,則向所述序號(hào)對(duì)應(yīng)的控制器發(fā)送內(nèi)容為請(qǐng)求成功的令牌回復(fù)指令;
如果可用令牌數(shù)量小于或等于零,則向所述序號(hào)對(duì)應(yīng)的控制器發(fā)送內(nèi)容為請(qǐng)求失敗的令牌回復(fù)指令。
可選的,在向所述序號(hào)對(duì)應(yīng)的控制器發(fā)送內(nèi)容為請(qǐng)求成功的令牌回復(fù)指令后,所述方法還包括:
向所述序號(hào)對(duì)應(yīng)的控制器發(fā)放令牌,將所述可用令牌數(shù)量減一,將所述序號(hào)從所述令牌等待發(fā)送列表中移除。
可選的,所述任務(wù)調(diào)度方法,還包括:
在接收到令牌歸還請(qǐng)求后,將所述可用令牌數(shù)量加一。
本發(fā)明還提出了基于令牌的任務(wù)調(diào)度方法,該方法用于控制系統(tǒng)中與全局令牌協(xié)調(diào)器進(jìn)行數(shù)據(jù)傳輸?shù)闹辽僖粋€(gè)控制器,其特征在于,所述任務(wù)調(diào)度方法,包括:
控制器向全局令牌協(xié)調(diào)器發(fā)送令牌請(qǐng)求;
從全局令牌協(xié)調(diào)器處接收令牌回復(fù)指令,根據(jù)令牌回復(fù)指令執(zhí)行后續(xù)步驟。
可選的,所述根據(jù)令牌回復(fù)指令執(zhí)行后續(xù)步驟,包括:
當(dāng)所述令牌回復(fù)指令中的內(nèi)容為成功時(shí),接收所述全局令牌協(xié)調(diào)器發(fā)出的令牌,執(zhí)行計(jì)算任務(wù),執(zhí)行完成后向所述全局令牌協(xié)調(diào)器發(fā)送令牌歸還請(qǐng)求;
當(dāng)所述令牌回復(fù)指令中的內(nèi)容為失敗時(shí),選取一個(gè)隨機(jī)時(shí)間片段,等待隨機(jī)時(shí)間片段對(duì)應(yīng)的時(shí)刻。
可選的,所述任務(wù)調(diào)度方法,還包括:
在等待所述隨機(jī)時(shí)間片段對(duì)應(yīng)的時(shí)刻后,如果控制器已運(yùn)行超時(shí),則記錄控制器因超時(shí)導(dǎo)致異常的次數(shù),向所述全局令牌協(xié)調(diào)器發(fā)送令牌取消請(qǐng)求;如果控制器未超時(shí)則重新向所述全局令牌協(xié)調(diào)器發(fā)送令牌請(qǐng)求。
本發(fā)明提供的技術(shù)方案帶來(lái)的有益效果是:
通過(guò)使用全局令牌協(xié)調(diào)器根據(jù)系統(tǒng)資源對(duì)令牌數(shù)量進(jìn)行實(shí)時(shí)調(diào)整,保證先控服務(wù)器不會(huì)因多個(gè)控制器的運(yùn)行導(dǎo)致系統(tǒng)負(fù)荷長(zhǎng)時(shí)間處于高位,提高了控制系統(tǒng)的穩(wěn)定性,令裝置的優(yōu)化效果能夠得到持續(xù)改進(jìn);同時(shí)有效的利用了先控服務(wù)器的系統(tǒng)資源,防止因限定控制器數(shù)量導(dǎo)致系統(tǒng)資源的浪費(fèi)。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明提供的基于令牌的任務(wù)調(diào)度方法的流程示意圖;
圖2是本發(fā)明提供的根據(jù)令牌回復(fù)指令執(zhí)行后續(xù)步驟的流程示意圖;
圖3是本發(fā)明提供的控制器引入令牌后的執(zhí)行流程示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更為清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整的描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
實(shí)施例一
本發(fā)明實(shí)施例提供了基于令牌的任務(wù)調(diào)度方法,該方法應(yīng)用于包含全局令牌協(xié)調(diào)器和至少一個(gè)控制器的控制系統(tǒng)中,全局令牌協(xié)調(diào)器與多個(gè)控制器進(jìn)行通信,以令牌分配的方式實(shí)際運(yùn)行的控制器進(jìn)行控制,從而能夠根據(jù)控制系統(tǒng)資源的情況對(duì)申請(qǐng)資源的控制器的數(shù)量進(jìn)行限制。
如圖1所示,該基于令牌的任務(wù)調(diào)度方法,包括:
101、令全局令牌協(xié)調(diào)器獲取控制系統(tǒng)資源,確定可用令牌數(shù)量。
102、建立令牌等待發(fā)送列表,在令牌等待發(fā)送列表中存有接收到的已發(fā)送令牌請(qǐng)求的控制器的序號(hào)、接收到令牌請(qǐng)求的時(shí)刻順序以及與控制器對(duì)應(yīng)的優(yōu)先級(jí)順序。
103、控制器向全局令牌協(xié)調(diào)器發(fā)送令牌請(qǐng)求。
104、接收當(dāng)前控制器發(fā)送的令牌請(qǐng)求,根據(jù)令牌等待發(fā)送列表中存儲(chǔ)的控制器的順序,結(jié)合可用令牌數(shù)量向當(dāng)前控制器發(fā)送令牌回復(fù)指令。
105、從全局令牌協(xié)調(diào)器處接收令牌回復(fù)指令,根據(jù)令牌回復(fù)指令執(zhí)行后續(xù)步驟。
其中,首先按照控制器優(yōu)先級(jí)從高到底排列,其次在控制器優(yōu)先級(jí)一致的情況按照接收到控制器令牌請(qǐng)求時(shí)刻的先后順序排序。
在實(shí)施中,全局令牌協(xié)調(diào)器作為控制系統(tǒng)內(nèi)令牌的管理單元,用于根據(jù)控制系統(tǒng)的系統(tǒng)資源定時(shí)更新令牌總數(shù),防止在沒(méi)有控制器發(fā)送令牌請(qǐng)求時(shí)因令牌數(shù)量太少導(dǎo)致的資源閑置。同時(shí)在全局令牌協(xié)調(diào)器被啟動(dòng)后定時(shí)或者在接收到控制器發(fā)送的令牌請(qǐng)求時(shí)獲取系統(tǒng)資源的使用情況,從而確定可用令牌數(shù)量以便在向控制器分配令牌后對(duì)可用令牌數(shù)量進(jìn)行實(shí)時(shí)更新。
在令牌等待發(fā)送列表中,接收到令牌請(qǐng)求的時(shí)刻順序以及與控制器對(duì)應(yīng)的優(yōu)先級(jí)排序均按降序排列。從而使得全局令牌協(xié)調(diào)器在分配令牌時(shí)能夠始終針對(duì)最靠前即對(duì)令牌需求最強(qiáng)烈的控制器。
通過(guò)使用全局令牌協(xié)調(diào)器根據(jù)系統(tǒng)資源對(duì)令牌數(shù)量進(jìn)行實(shí)時(shí)調(diào)整,保證先控服務(wù)器不會(huì)因多個(gè)控制器的運(yùn)行導(dǎo)致系統(tǒng)負(fù)荷長(zhǎng)時(shí)間處于高位,提高了控制系統(tǒng)的穩(wěn)定性,令裝置的優(yōu)化效果能夠得到持續(xù)改進(jìn);同時(shí)有效的利用了先控服務(wù)器的系統(tǒng)資源,防止因限定控制器數(shù)量導(dǎo)致系統(tǒng)資源的浪費(fèi)。
在步驟101中提出了根據(jù)控制系統(tǒng)資源確定可用令牌數(shù)量的步驟,具體包括:
在啟動(dòng)全局令牌協(xié)調(diào)器、或設(shè)置在所述全局令牌協(xié)調(diào)器內(nèi)的定時(shí)檢測(cè)系統(tǒng)檢測(cè)到可用資源事件發(fā)生、或接收到控制器發(fā)送的令牌請(qǐng)求時(shí),獲取控制系統(tǒng)資源使用情況,從控制系統(tǒng)資源使用情況中提取處理器空閑使用率,對(duì)處理器空閑處理器使用率進(jìn)行處理,獲取可用令牌數(shù)量。
具體的,對(duì)處理器空閑使用率進(jìn)行處理,獲取可用令牌數(shù)量的具體實(shí)現(xiàn)方式有多種實(shí)現(xiàn)方式,具體的:
將處理器空閑使用率×100×80%/10后的結(jié)果取整,將得到的數(shù)值定為可用令牌數(shù)量。
例如,當(dāng)前處理器空閑使用率為98%,按上述處理后結(jié)果為7.84,取整結(jié)果為7,表明此時(shí)可用令牌數(shù)量為7。
在步驟102中全局令牌協(xié)調(diào)器處建立令牌等待發(fā)送列表,用于記錄接收到的從控制器發(fā)出的令牌請(qǐng)求的具體內(nèi)容。該列表中至少包含三項(xiàng)內(nèi)容,分別是發(fā)送令牌請(qǐng)求的控制器的序號(hào)、全局令牌協(xié)調(diào)控制器接收到令牌請(qǐng)求時(shí)的時(shí)刻順序以及與發(fā)送令牌請(qǐng)求的控制器對(duì)應(yīng)的優(yōu)先級(jí)順序。
由于事先在全局令牌協(xié)調(diào)器中建立該列表,使得在令牌分配過(guò)程中,全局令牌協(xié)調(diào)器能夠根據(jù)列表中的時(shí)刻順序、優(yōu)先級(jí)順序選取出下一個(gè)令牌應(yīng)該分配到的控制器,由于在選取過(guò)程中參考了發(fā)送令牌請(qǐng)求時(shí)的時(shí)刻以及控制器的優(yōu)先級(jí)順序,而優(yōu)先級(jí)順序又能夠根據(jù)控制器發(fā)送令牌請(qǐng)求的次數(shù)進(jìn)行調(diào)整,從而可以令最需要進(jìn)行運(yùn)算的控制器優(yōu)先獲取到令牌進(jìn)而獲取到計(jì)算資源。
基于上述理論,步驟104中接收到當(dāng)前控制器發(fā)送的令牌請(qǐng)求后,該任務(wù)調(diào)度方法還包括:
201、將當(dāng)前控制器的序號(hào)與令牌等待發(fā)送列表中的內(nèi)容進(jìn)行對(duì)比;
202、如果在令牌等待發(fā)送列表中已經(jīng)存儲(chǔ)有當(dāng)前控制器的序號(hào),則將當(dāng)前控制器的優(yōu)先級(jí)加一;
203、如果在令牌等待發(fā)送列表中未存儲(chǔ)有當(dāng)前控制器的序號(hào),則將當(dāng)前控制器的序號(hào)添加到令牌等待發(fā)送列表中。
經(jīng)過(guò)步驟201至步驟203所示的令牌等待發(fā)送列表調(diào)整過(guò)程,使得列表中的控制器順序能夠根據(jù)控制器優(yōu)先級(jí)從高到低的順序進(jìn)行排序,如果出現(xiàn)控制器優(yōu)先級(jí)一致的情況,則按照控制器發(fā)送令牌請(qǐng)求時(shí)間的先后順序?qū)崟r(shí)調(diào)整,使得位于列表最前方控制器能夠盡快被分配到令牌,從而實(shí)現(xiàn)合理調(diào)度控制器,提高控制器系統(tǒng)的穩(wěn)定性的目的。
根據(jù)控制器未成功獲取令牌次數(shù)動(dòng)態(tài)調(diào)整優(yōu)先級(jí),實(shí)現(xiàn)控制器的優(yōu)先級(jí)調(diào)整。之所以設(shè)置控制器運(yùn)行優(yōu)先級(jí)是為了能夠區(qū)分控制器的運(yùn)行緊迫程度,消弭控制器優(yōu)先級(jí)一致情況下不斷延時(shí)執(zhí)行所帶來(lái)的控制器無(wú)法執(zhí)行的隱患;另外通過(guò)控制器的優(yōu)先級(jí)策略能夠最小化控制系統(tǒng)一次優(yōu)化完成的總體時(shí)間成本;實(shí)現(xiàn)在先控服務(wù)器高負(fù)荷狀態(tài)下能夠穩(wěn)定控制器的優(yōu)化效果。
步驟104中描述了全局令牌協(xié)調(diào)器在接收到令牌請(qǐng)求后的詳細(xì)處理步驟,具體包括:
301、在接收到當(dāng)前控制器發(fā)送的令牌請(qǐng)求后,獲取令牌等待發(fā)送列表中存儲(chǔ)的控制器的順序,獲取排在最前的控制器的序號(hào);
302、如果可用令牌數(shù)量大于零,則向序號(hào)對(duì)應(yīng)的控制器發(fā)送內(nèi)容為請(qǐng)求成功的令牌回復(fù)指令;
303、如果可用令牌數(shù)量小于或等于零,則向序號(hào)對(duì)應(yīng)的控制器發(fā)送內(nèi)容為請(qǐng)求失敗的令牌回復(fù)指令。
在實(shí)施中,全局令牌協(xié)調(diào)器從已經(jīng)按步驟201-204調(diào)整后的令牌等待發(fā)送列表中提取排在最前的控制器的序號(hào),根據(jù)當(dāng)前可用令牌數(shù)量的具體情況向該序號(hào)對(duì)應(yīng)的控制器發(fā)送不同內(nèi)容的令牌回復(fù)指令。
如果可用令牌數(shù)量大于零,表明當(dāng)前還有可以分配的令牌,因此向序號(hào)對(duì)應(yīng)的控制器發(fā)送內(nèi)容為請(qǐng)求成功的令牌回復(fù)指令,接著將令牌分配至序號(hào)對(duì)應(yīng)的控制器。相反的,如果可用令牌數(shù)量小于或等于零,表明當(dāng)前已經(jīng)沒(méi)有可以分配的令牌,因此向序號(hào)對(duì)應(yīng)的控制器發(fā)送內(nèi)容為請(qǐng)求失敗的令牌回復(fù)指令,使得該序號(hào)對(duì)應(yīng)的控制器在接收到該令牌回復(fù)指令后,能夠進(jìn)行后續(xù)處理。
針對(duì)前一種結(jié)果,即在向序號(hào)對(duì)應(yīng)的控制器發(fā)送內(nèi)容為請(qǐng)求成功的令牌回復(fù)指令后,該任務(wù)調(diào)度方法還包括:
304、向序號(hào)對(duì)應(yīng)的控制器發(fā)放令牌,將可用令牌數(shù)量減一,將序號(hào)從令牌等待發(fā)送列表中移除。
之所以將已發(fā)送令牌的控制器及時(shí)從令牌等待發(fā)送列表中移除,是為了能夠盡快的處理后續(xù)控制器發(fā)送的令牌請(qǐng)求,提高控制系統(tǒng)的響應(yīng)效率。
從控制器的角度來(lái)看,步驟105提出了根據(jù)令牌回復(fù)指令執(zhí)行后續(xù)步驟,如圖2所示,包括:
401、當(dāng)令牌回復(fù)指令中的內(nèi)容為成功時(shí),接收全局令牌協(xié)調(diào)器發(fā)出的令牌,執(zhí)行計(jì)算任務(wù),執(zhí)行完成后向全局令牌協(xié)調(diào)器發(fā)送令牌歸還請(qǐng)求;
402、當(dāng)令牌回復(fù)指令中的內(nèi)容為失敗時(shí),選取一個(gè)隨機(jī)時(shí)間片段,等待隨機(jī)時(shí)間片段對(duì)應(yīng)的時(shí)刻。
針對(duì)步驟402所述的情況,如圖3所示,若全局令牌協(xié)調(diào)器沒(méi)有第一時(shí)間發(fā)放令牌給控制器,則控制器等待一個(gè)隨機(jī)時(shí)間片段(一般在50-150ms之間,減少多控制器情況下的再次同時(shí)請(qǐng)求令牌概率)后再次嘗試獲取令牌,當(dāng)全局令牌協(xié)調(diào)器再次接受控制器的令牌請(qǐng)求后,對(duì)控制器對(duì)應(yīng)的優(yōu)先級(jí)進(jìn)行提高處理,實(shí)現(xiàn)在令牌可用時(shí)優(yōu)先發(fā)放的處理。
控制器等待一個(gè)隨機(jī)時(shí)間片段后首先判斷下是否控制器已運(yùn)行超時(shí),若超時(shí)則記錄控制器的異常次數(shù),同時(shí)向全局令牌協(xié)調(diào)器發(fā)送令牌取消請(qǐng)求;若未超時(shí)則重新向所述全局令牌協(xié)調(diào)器發(fā)送令牌請(qǐng)求。
這里之所以在控制器接收到內(nèi)容為失敗的令牌回復(fù)指令后,額外添加超時(shí)檢測(cè)的步驟,是為了防止控制器自身出現(xiàn)故障對(duì)整個(gè)令牌分配機(jī)制造成影響,避免出現(xiàn)全局令牌協(xié)調(diào)器始終處于處理出現(xiàn)異常的控制器發(fā)送的令牌請(qǐng)求的環(huán)路中,而無(wú)法對(duì)其它正常的控制器發(fā)送的令牌請(qǐng)求進(jìn)行響應(yīng)。
控制器在取得令牌獲取到計(jì)算資源執(zhí)行完任務(wù)后,向向全局令牌協(xié)調(diào)器發(fā)送令牌歸還請(qǐng)求,全局令牌協(xié)調(diào)器在接收到令牌歸還請(qǐng)求后,將可用令牌數(shù)量加一。
在本發(fā)明實(shí)施例中提出的基于令牌的任務(wù)調(diào)度方法,除了上述技術(shù)方案外,還提出了一個(gè)實(shí)現(xiàn)效果略差的替代方案:
1.設(shè)置控制器允許的最大延時(shí)
在控制器內(nèi)部設(shè)置一個(gè)假定系統(tǒng)處于高負(fù)荷狀態(tài)下的最大延時(shí),當(dāng)超出這個(gè)延時(shí)則直接執(zhí)行控制器的計(jì)算任務(wù)。
2.控制器內(nèi)部等待若干個(gè)隨機(jī)時(shí)間片段
1)獲取系統(tǒng)資源使用情況;
2)根據(jù)系統(tǒng)資源使用情況判斷是否需要等待一個(gè)隨機(jī)時(shí)間片段(隨機(jī)時(shí)間片段能夠減少由于多個(gè)控制器運(yùn)行時(shí)刻重合而導(dǎo)致的系統(tǒng)負(fù)荷上升概率);
3)若需要等待一個(gè)時(shí)間片段則初始化一個(gè)隨機(jī)時(shí)間片段并等待,若不需要等待則直接到步驟3控制器執(zhí)行計(jì)算任務(wù);
4)等待一個(gè)時(shí)間片段后判斷是否已達(dá)到最大延時(shí),若沒(méi)有則重新回到步驟1),否則直接到步驟3控制器執(zhí)行計(jì)算任務(wù)。
3.控制器執(zhí)行計(jì)算任務(wù)
在步驟2中完成之后則直接運(yùn)行控制器,此時(shí)控制器內(nèi)部始終認(rèn)為系統(tǒng)的資源使用情況是允許控制器運(yùn)行的。
在該替代技術(shù)方案中,控制器根據(jù)設(shè)定的最大延時(shí)判定是否執(zhí)行具體的計(jì)算任務(wù),沒(méi)有考慮系統(tǒng)資源是否足夠真的具有滿足控制器運(yùn)行的資源,因此可能在一定程度上出現(xiàn)系統(tǒng)處于高負(fù)荷的運(yùn)行狀態(tài),但也是一種可執(zhí)行的方法。
本發(fā)明提出了基于令牌的任務(wù)調(diào)度方法,包括全局令牌協(xié)調(diào)器以及與之聯(lián)系的至少一個(gè)控制器,令全局令牌協(xié)調(diào)器獲取控制系統(tǒng)資源確定可用令牌數(shù)量。接收當(dāng)前控制器發(fā)送的令牌請(qǐng)求,根據(jù)令牌等待發(fā)送列表中存儲(chǔ)的控制器的順序,結(jié)合可用令牌數(shù)量向當(dāng)前控制器發(fā)送令牌回復(fù)指令。根據(jù)令牌回復(fù)指令執(zhí)行后續(xù)步驟。通過(guò)使用全局令牌協(xié)調(diào)器根據(jù)系統(tǒng)資源對(duì)令牌數(shù)量進(jìn)行實(shí)時(shí)調(diào)整,保證先控服務(wù)器不會(huì)因多個(gè)控制器的運(yùn)行導(dǎo)致系統(tǒng)負(fù)荷長(zhǎng)時(shí)間處于高位,提高了控制系統(tǒng)的穩(wěn)定性,令裝置的優(yōu)化效果能夠得到持續(xù)改進(jìn);同時(shí)有效的利用了先控服務(wù)器的系統(tǒng)資源,防止因限定控制器數(shù)量導(dǎo)致系統(tǒng)資源的浪費(fèi)。
上述實(shí)施例中的各個(gè)序號(hào)僅僅為了描述,不代表各部件的組裝或使用過(guò)程中的先后順序。
以上所述僅為本發(fā)明的實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。