久久久久无码精品,四川省少妇一级毛片,老老熟妇xxxxhd,人妻无码少妇一区二区

一種基于比特表的實時多任務(wù)新調(diào)度算法

時間:2024-09-14 16:14:55 理工畢業(yè)論文 我要投稿
  • 相關(guān)推薦

一種基于比特表的實時多任務(wù)新調(diào)度算法

摘要:主要討論常見的幾種多任務(wù)實時性處理算法的優(yōu)缺點,提出一種更能滿足多任務(wù)實時性處理的算法——基于比特表的時間片算法。這種算法主要是把常規(guī)的比特表中的任務(wù)按照時間片進(jìn)行分配,以很好地完成實時性要求高且任務(wù)時間較長的任務(wù),而不影響其它實時性要求更高的任務(wù)的完成。

引言

在微機(jī)控制領(lǐng)域中,許多單片機(jī)應(yīng)用系統(tǒng)是實時控制系統(tǒng)RTCS(Real Time Control System)。在實時控制系統(tǒng)中,為了很好地完成外界信息的實時測量、計算和相應(yīng)的多種實時控制操作,必須達(dá)到兩個設(shè)計目標(biāo);實時性和并行性。即既要保證系統(tǒng)對外界信息以足夠快的速度進(jìn)行相應(yīng)處理,又要同時完成多種任務(wù)操作。在這里,多種任務(wù)之間的調(diào)度是個關(guān)鍵。

RTCS中允許多個實時任務(wù)并行地運(yùn)行。例如,一測控系統(tǒng)中,具有數(shù)據(jù)采集、數(shù)據(jù)計算、鍵盤處理、定時打印等任務(wù)。在單機(jī)系統(tǒng)中,這些任務(wù)在宏觀上是同時運(yùn)行的,但在微觀上只有一個任務(wù)運(yùn)行。在RTCS中每個任務(wù)有三種狀態(tài),即運(yùn)行狀態(tài)、就緒狀態(tài)和空閑狀態(tài)。某個任務(wù)一旦建立后即處于這三種狀態(tài)之一。處于運(yùn)行狀態(tài)的任務(wù)獨占CPU和其它一些資源;就緒狀態(tài)是某個任務(wù)現(xiàn)在應(yīng)該運(yùn)行,但由于其它任務(wù)正在運(yùn)行,故只能暫時等待;當(dāng)激發(fā)某個任務(wù)的條件不完備時,此任務(wù)就處于空閑狀態(tài)。

RTCS中的多個任務(wù)依靠任務(wù)調(diào)度程序來決定系統(tǒng)中哪個任務(wù)可以獲得CPU等資源或應(yīng)暫時退出運(yùn)行狀態(tài)等,從而完成每個任務(wù)三態(tài)間的轉(zhuǎn)換。在RTCS中,任務(wù)調(diào)度算法的優(yōu)劣直接關(guān)系到系統(tǒng)的實時性能與并行性能。

RTCS中較簡單的任務(wù)調(diào)度算法有“先來先執(zhí)行的調(diào)度算法”、“按時間片循環(huán)執(zhí)行的調(diào)度算法”。前者,當(dāng)實時性比較差的任務(wù)長時間占用CPU時,會使得實時性較高的任務(wù)得不到及時處理,影響系統(tǒng)的實時性;后者,按照“先入先出”的原則激活某個任務(wù),并分配給它們相等的時間片,從而使得多個任務(wù)有平等的享用CPU的權(quán)利。當(dāng)時間片用完時,讓任務(wù)“暫時”又處于就緒狀態(tài),并激活下一個任務(wù)。這種算法的實時性有一定程序的提高,但由于各任務(wù)簡單均勻地循環(huán)輪回,從而使得實時性要求較高的任務(wù)得不到優(yōu)先處理。由于各時間片相等且固定,很容易被某些緊急任務(wù)打斷。在實時性要求較高而且任務(wù)較多的復(fù)雜情況下,各個任務(wù)的實時性要求不盡相同,不能簡單地均勻分時處理任務(wù)。

基于比特表的任務(wù)調(diào)度算法,關(guān)鍵在于將CPU的全部時間化成若干個相等的時隙,同時根據(jù)任務(wù)的數(shù)目制定一張表格,以此來指示某一時刻的任務(wù)運(yùn)行。它把任務(wù)按照實時性要求分成中斷級、時鐘級、基本級三類,而且它們的優(yōu)先級依次遞減。優(yōu)先級越高,就越處于比特表的頂端位置。比特表是按照任務(wù)的優(yōu)先級排隊的,首先滿足實時性較強(qiáng)的中斷級和時鐘級,而不管實時性最低的基本級任務(wù)。這樣,時鐘級任務(wù)一定能得到即時有效的處理,其實時性可以得到較好的保障,基本級任務(wù)可以沒有時間限制。但是,時鐘級任務(wù)的實時性并不是完全能夠得到保障。下面舉例討論比特表算法的不足之處。

圖2 任務(wù)的啟動順序和運(yùn)行時間

假定有表1所示的五種任務(wù),按照常規(guī)比特表算法根本無法設(shè)計出這樣的比特表。當(dāng)時鐘級的各級每次運(yùn)行時間之和沒有達(dá)到5ms時,比特表算法能夠很好地滿足系統(tǒng)實時性要求;然而,當(dāng)中斷級和時鐘級的每次運(yùn)行時間之和大于或者等于最高級實時性要求,更有甚者,當(dāng)有一個時鐘級任務(wù)的運(yùn)行時間超過最高級實時性要求時,比特表算法就會失效。因為常規(guī)的比特表算法要求,只要激活比特表中安排的中斷級和時鐘級任務(wù)就必須一次執(zhí)行完,否則,如果這個任務(wù)被中斷就無法再得到執(zhí)行。由于圖像處理的運(yùn)行時間為5ms,加上中斷級任務(wù)執(zhí)行時間,因此設(shè)計時隙必須大于5ms;而比特表的設(shè)計方法時隙只可能小于等于5ms(中斷級任務(wù)和實時性最高的時鐘級任務(wù)決定的)。所以,無論安排怎樣的比徨表都無法使任務(wù)D滿足實時性要求。基于這兩種情況,本文提出一種用賦有優(yōu)先權(quán)的時間來填充比特表的算法,以改善這兩種情況。

表1 實時性要求和各任務(wù)運(yùn)行時間表

序 號任 務(wù)優(yōu)先級實時性要求/ms每次運(yùn)行時間/msA數(shù)據(jù)采集時鐘級51B端口檢測時鐘級102.5C鍵盤掃描時鐘級151D圖像處理時鐘級305E打印數(shù)據(jù)基本級無實時要求200

1 比特表的改進(jìn)算法

這種改進(jìn)算法的關(guān)系在于把各任務(wù)劃分為若干時間片,然后再根據(jù)實時性要求填入比特表中。根據(jù)比特表的設(shè)計方法,時隙間隔定為5ms,總時隙數(shù)為LCM(10/5,20/5,30/5)=6。把各中斷級和時鐘級任務(wù)運(yùn)行時間的最大公約數(shù)定為時間片。即有如下計算公式:

T=GCD{Ti}

T為時間片,Ti為時鐘級和中斷級任務(wù)實時性要求,GCD(Greatest Common Divisor)求最大公約數(shù),LCM(Lowest Common Multiple)求最小公倍數(shù)。

本例中的時間片T=GCD{0.5,1,2.5,1,5}=0.5ms。(假設(shè)時鐘中斷處理時間為0.5ms)。

時間片的分配,必須遵循以下原則:

①滿足實時性要求;

②確保每一個時隙中所有分配的任務(wù)都必須完全運(yùn)行;

③均衡考慮CPU對各任務(wù)的運(yùn)行,優(yōu)先考慮時鐘級任務(wù)和中斷級任務(wù)。

按上述原則,中斷級任務(wù)分1個時間片,時鐘級1分配2個時間片,時鐘級2分配3個時間片,時鐘級3分配1個時間片,時鐘級4分配2個時間片,而將每個時隙剩余的時間分配給基本級任務(wù)。這樣,即使是在系統(tǒng)最繁忙的時候也有一個時間片分配給基本級任務(wù),從而彌補(bǔ)了比特表算法的不足。

綜上所述,設(shè)計圖1所示的比特表。

此比特表的時隙任務(wù)安排完全滿足實時性要求。A任務(wù)每時隙運(yùn)行1次,每時隙運(yùn)行2個時間片。A任務(wù)每5ms運(yùn)行1次。B任務(wù)每10ms運(yùn)行1次,C任務(wù)每20ms運(yùn)行1次

【一種基于比特表的實時多任務(wù)新調(diào)度算法】相關(guān)文章:

一種改進(jìn)的基于頻譜平移的語音信號實時變調(diào)算法03-07

一種基于加權(quán)空間平滑的新MUSIC算法03-07

一種H.263比特率轉(zhuǎn)碼速率控制的新算法03-07

基于貨物當(dāng)前狀態(tài)全程跟蹤的調(diào)度算法03-07

基于MSP430單片機(jī)的實時多任務(wù)操作系統(tǒng)03-18

一種新的實用安全加密標(biāo)準(zhǔn)算法-Camellia算法03-20

一種改進(jìn)的無線鏈路調(diào)度算法研究03-07

準(zhǔn)實時公交調(diào)度模型的研究03-07

一種基于RFID技術(shù)的機(jī)器人定位算法11-22