專利名稱:物聯(lián)網(wǎng)考勤機(jī)的多任務(wù)優(yōu)先級調(diào)度方法
技術(shù)領(lǐng)域:
本發(fā)明涉及考勤機(jī)領(lǐng)域,尤其是一種物聯(lián)網(wǎng)考勤機(jī)的多任務(wù)調(diào)度方法。
背景技術(shù):
Linux遵循P0SIX. 1003.1b實(shí)時擴(kuò)展標(biāo)準(zhǔn),實(shí)現(xiàn)了實(shí)時進(jìn)程的概念,支持SCHED_FIFO和SCHED_RR兩種實(shí)時調(diào)度策略。但SCHED_FIF0策略只是簡單地根據(jù)先來先服務(wù)的原則調(diào)度任務(wù),沒有考慮任務(wù)的執(zhí)行時間,使得緊急型任務(wù)無法優(yōu)先執(zhí)行,從而錯過其執(zhí)行時間,導(dǎo)致運(yùn)行結(jié)果出錯或服務(wù)質(zhì)量下降。SCHED_RR策略體現(xiàn)了資源共享的思想,它可以保證每個實(shí)時任務(wù)獲得均等的執(zhí)行機(jī)會,但同樣由于沒有考慮任務(wù)的執(zhí)行時間,因而導(dǎo)致緊急型任務(wù)不能如期完成。當(dāng)系統(tǒng)超載時,這種策略將使得任務(wù)的大多數(shù)執(zhí)行時間無法得到滿足。由此可見,Linux內(nèi)核并不能為實(shí)時任務(wù)提供有效的調(diào)度支持。對于考勤機(jī)而言,目前的優(yōu)先級調(diào)度方法存在下列主要問題(I)不能夠直接將對于任務(wù)在其他重要性方面的約束條件映射到調(diào)度的優(yōu)先級上,在現(xiàn)有實(shí)現(xiàn)的算法中對于確定優(yōu)先級所采用的標(biāo)準(zhǔn)比較簡單和片面,如RM算法僅以任務(wù)的周期確定優(yōu)先級,EDF算法僅以任務(wù)的執(zhí)行時間確定優(yōu)先級;(2)重要任務(wù)不一定是緊急任務(wù),而緊急任務(wù)不一定是重要任務(wù),而目前的優(yōu)先級調(diào)度算法的實(shí)現(xiàn)一般將這兩個任務(wù)屬性分開,從而容易導(dǎo)致重要任務(wù)的執(zhí)行性能無法得到保證,如在根據(jù)任務(wù)執(zhí)行時間確定優(yōu)先級的調(diào)度算法中;或容易導(dǎo)致緊急型任務(wù)的執(zhí)行時間不能被滿足,如在根據(jù)周期等固有屬性確定優(yōu)先級的調(diào)度算法中,重要性的任務(wù)沒法執(zhí)行;(3)實(shí)時任務(wù)中的“實(shí)時”并不是指讓任務(wù)越早執(zhí)行越好,而是指只需滿足任務(wù)的期限即可。
發(fā)明內(nèi)容
為了克服已有考勤機(jī)優(yōu)先級調(diào)度方式的單純由周期或時間決定優(yōu)先級、調(diào)度效率較低的不足,本發(fā)明提供一種考慮了重要性和緊急性、調(diào)度效率較高的物聯(lián)網(wǎng)考勤機(jī)的多任務(wù)優(yōu)先級調(diào)度方法。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是一種物聯(lián)網(wǎng)考勤機(jī)的多任務(wù)優(yōu)先級調(diào)度方法,對于考勤機(jī)的每個任務(wù),設(shè)定Prioriy為任務(wù)重要性因子,反映任務(wù)在完成中的重要程度,由用戶決定;Urgency表示緊急性,由任務(wù)執(zhí)行時間動態(tài)決定;若任務(wù)A具有比任務(wù)B更高的優(yōu)先級,如果滿足下列條件之一(I)任務(wù)A的Priority比任務(wù)B的??;(2)任務(wù)A和任務(wù)B具有相同的Priority,但前者的Urgency更小;當(dāng)新的任務(wù)到達(dá)時,任務(wù)準(zhǔn)入控制模塊首先判斷新任務(wù)與系統(tǒng)原有多任務(wù)的CPU總占用率之和是否超過上界1. 0,如果不超過,則接納該工作;否則,比較新任務(wù)與系統(tǒng)原有多任務(wù)中Prioriy最大的任務(wù)的重要性優(yōu)先級,若新任務(wù)的重要性優(yōu)先級較低,則拒絕它,否則去掉Prioriy_FIFO隊(duì)尾的任務(wù),補(bǔ)充上新的任務(wù);實(shí)現(xiàn)任務(wù)調(diào)度。進(jìn)一步,設(shè)置兩個任務(wù)管理隊(duì)列,Prioriy_FIF0和 Urgency_FIF0, Prioriy_FIF0任務(wù)隊(duì)列中優(yōu)先級由重要性因子決定,UrgenCy_FIF0任務(wù)隊(duì)列中優(yōu)先級由執(zhí)行時間決定,系統(tǒng)中的每個任務(wù)同時存在于這兩個隊(duì)列中。本發(fā)明的有益效果主要表現(xiàn)在(I)任務(wù)的優(yōu)先級并不是單純地由周期或執(zhí)行時間決定的,而是考慮了任務(wù)的重要性和緊急性這兩個基本的實(shí)時任務(wù)特征,綜合決定任務(wù)的優(yōu)先級順序;(2)在輕載狀態(tài)下,SABPU調(diào)度算法不僅能夠保證重要任務(wù)的執(zhí)行,而且能夠盡可能滿足緊急型任務(wù)的執(zhí)行;(3)在超載狀態(tài)下,SABPU算法將確保重要性任務(wù)順利執(zhí)行;(4)如果新任務(wù)的到達(dá)使得系統(tǒng)超載,而該任務(wù)又具有較高重要性,那么并不會直接拒絕該任務(wù),而是去掉比其重要性低的任務(wù),直到接納或拒絕它;(5)在保證重要任務(wù)執(zhí)行性能的前提下,執(zhí)行盡可能多的任務(wù),使系統(tǒng)資源利用最大化。
具體實(shí)施例方式下面對本發(fā)明作進(jìn)ー步描述。一種物聯(lián)網(wǎng)考勤機(jī)的多任務(wù)優(yōu)先級調(diào)度方法,任務(wù)的調(diào)度優(yōu)先級并不是單純地由任務(wù)周期或任務(wù)執(zhí)行時間來決定,而是由重要性(Priority)和緊急性(Urgency)來協(xié)同決定。其中,Prioriy表示任務(wù)重要性因子,它并不代表任務(wù)周期等時間屬性,而是反映任務(wù)在完成中的重要程度,由用戶決定!Urgency表示緊急性,由任務(wù)執(zhí)行時間動態(tài)決定。我們稱任務(wù)A具有比任務(wù)B更高的優(yōu)先級,如果滿足下列條件之一(I)任務(wù)A的Priority比任務(wù)B的小,這里Priority值越小表示優(yōu)先級越高,任
務(wù)對用戶越重要;(2)任務(wù)A和任務(wù)B具有相同的Priority,但前者的Urgency更小,即任務(wù)更緊急SABPU 算法中設(shè)置兩個任務(wù)管理隊(duì)列,Prioriy_FIF0 和 Urgency_FIF0。Prioriy_FIFO任務(wù)隊(duì)列中優(yōu)先級由重要性因子決定,這個因子越小表示任務(wù)越重要,優(yōu)先級越高;UrgenCy_FIF0任務(wù)隊(duì)列中優(yōu)先級由執(zhí)行時間決定,執(zhí)行時間越小表示任務(wù)越緊急,優(yōu)先級越尚。SABPU算法中最核心的是具有動態(tài)調(diào)整任務(wù)隊(duì)列中各任務(wù)優(yōu)先級的能力。SABPU算法主要包括兩個部分任務(wù)準(zhǔn)入控制機(jī)制和在線調(diào)度器。其中,準(zhǔn)入控制是為了保證系統(tǒng)中原有重要任務(wù)的執(zhí)行不受新任務(wù)影響而設(shè)計(jì)的,當(dāng)有新任務(wù)到達(dá)時,準(zhǔn)入控制將根據(jù)當(dāng)前系統(tǒng)CPU占用率和新任務(wù)的重要性以及緊急性,決定接納或拒絕該任務(wù)進(jìn)入系統(tǒng)。在線調(diào)度器是具有任務(wù)優(yōu)先級在線調(diào)度的能力。系統(tǒng)中的每個任務(wù)同時存在于這兩個隊(duì)列中。當(dāng)新的任務(wù)到達(dá)吋,SABPU算法的任務(wù)準(zhǔn)入控制首先判斷新工作與系統(tǒng)原有多任務(wù)的CPU總占用率是否超過上界1. 0,如果不超過,則接納該工作,并將它同時加入Prioriy_FIF0和Urgency_FIF0這兩個隊(duì)列中。否則,比較新任務(wù)與Prioriy_FIF0隊(duì)尾任務(wù)的重要性優(yōu)先級,即將新任務(wù)與系統(tǒng)中優(yōu)先級最低的任務(wù)進(jìn)行比較,若新任務(wù)的重要性優(yōu)先級較低,則拒絕它,否則去掉Prioriy_FIFO隊(duì)尾的任務(wù),補(bǔ)充上新的任務(wù);同時更新Urgency_FIFO隊(duì)列中的任務(wù)優(yōu)先級,然后再次判斷新任務(wù)與系統(tǒng)中剩余任務(wù)的總CPU占用率是否超載,反復(fù)迭代,直至接受或拒絕該任務(wù)。 這里的CPU占用率是這樣定義的,對于周期性任務(wù)
權(quán)利要求
1.一種物聯(lián)網(wǎng)考勤機(jī)的多任務(wù)優(yōu)先級調(diào)度方法,其特征在于對于考勤機(jī)的每個任務(wù),設(shè)定Prioriy為任務(wù)重要性因子,反映任務(wù)在完成中的重要程度,由用戶決定;Urgency表示緊急性,由任務(wù)執(zhí)行時間動態(tài)決定;若任務(wù)A具有比任務(wù)B更高的優(yōu)先級,如果滿足下列條件之一 (1)任務(wù)A的Priority比任務(wù)B的??; (2)任務(wù)A和任務(wù)B具有相同的Priority,但前者的Urgency更??; 當(dāng)新的任務(wù)到達(dá)時,任務(wù)準(zhǔn)入控制模塊首先判斷新任務(wù)與系統(tǒng)原有多任務(wù)的CPU總占用率之和是否超過上界1. 0,如果不超過,則接納該工作;否則,比較新任務(wù)與系統(tǒng)原有多任務(wù)中Prioriy最大的任務(wù)的重要性優(yōu)先級,若新任務(wù)的重要性優(yōu)先級較低,則拒絕它,否則去掉Prioriy_FIFO隊(duì)尾的任務(wù),補(bǔ)充上新的任務(wù);實(shí)現(xiàn)任務(wù)調(diào)度。
2.如權(quán)利要求1所述的聯(lián)網(wǎng)考勤機(jī)的多任務(wù)優(yōu)先級調(diào)度方法,其特征在于設(shè)置兩個任務(wù)管理隊(duì)列,Prioriy_FIFO和Urgency_FIFO, Prioriy_FIFO任務(wù)隊(duì)列中優(yōu)先級由重要性因子決定,Urgency_FIFO任務(wù)隊(duì)列中優(yōu)先級由執(zhí)行時間決定,系統(tǒng)中的每個任務(wù)同時存在于這兩個隊(duì)列中。
全文摘要
一種物聯(lián)網(wǎng)考勤機(jī)的多任務(wù)優(yōu)先級調(diào)度方法,對于考勤機(jī)的每個任務(wù),設(shè)定Prioriy為任務(wù)重要性因子, Urgency表示緊急性,當(dāng)新的任務(wù)到達(dá)時,任務(wù)準(zhǔn)入控制模塊首先判斷新任務(wù)與系統(tǒng)原有多任務(wù)的CPU總占用率之和是否超過上界1.0,如果不超過,則接納該工作;否則,比較新任務(wù)與系統(tǒng)原有多任務(wù)中Prioriy最大的任務(wù)的重要性優(yōu)先級,若新任務(wù)的重要性優(yōu)先級較低,則拒絕它,否則去掉Prioriy_FIFO隊(duì)尾的任務(wù),補(bǔ)充上新的任務(wù);實(shí)現(xiàn)任務(wù)調(diào)度。本發(fā)明提供一種考慮了重要性和緊急性、調(diào)度效率較高的物聯(lián)網(wǎng)考勤機(jī)的多任務(wù)優(yōu)先級調(diào)度方法。
文檔編號G06F9/50GK103019857SQ20121048566
公開日2013年4月3日 申請日期2012年11月23日 優(yōu)先權(quán)日2012年11月23日
發(fā)明者史慧波, 王涌, 朱晉天, 賈立新, 徐海峰, 洪峰, 陳杰櫻 申請人:浙江工業(yè)大學(xué)