国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于移動中間件抽象層調(diào)度策略研究

2010-09-04 06:08:42黃錦濤何加銘賈德祥
關(guān)鍵詞:截止期線程隊(duì)列

黃錦濤,何加銘,陳 平,賈德祥

(寧波大學(xué)通信技術(shù)研究所,浙江寧波315211)

0 引 言

移動終端上數(shù)據(jù)業(yè)務(wù)越來越豐富,應(yīng)用環(huán)境越來越復(fù)雜,很多新型應(yīng)用(如聯(lián)網(wǎng)游戲)需要實(shí)時(shí)系統(tǒng)支持,為滿足應(yīng)用實(shí)時(shí)性要求,在基于移動終端中間件抽象層上完善調(diào)度策略。系統(tǒng)實(shí)時(shí)性具體表現(xiàn)為處理器的響應(yīng)時(shí)間和吞吐率。響應(yīng)時(shí)間指運(yùn)行程序所需要的所有時(shí)間的總和(一個(gè)任務(wù)從開始到結(jié)束所需的時(shí)間);吞吐率指單位時(shí)間內(nèi)能運(yùn)行的任務(wù)數(shù)。那么縮短響應(yīng)時(shí)間通常也就意味著提高吞吐率。提高實(shí)時(shí)性的途徑有:軟件級并行;處理器級并行;線程級并行;指令級并行;執(zhí)行級并行[1]。線程是程序中的一條執(zhí)行分支,或者說,線程是可以同時(shí)運(yùn)行的函數(shù)。線程有以下特點(diǎn):(1)共享父進(jìn)程的所有資源;(2)通過系統(tǒng)調(diào)度或者同步變量傳送消息;(3)切換時(shí)只涉及寄存器和局部變量,開銷很小;(4)注意線程同步問題,防止死機(jī)現(xiàn)象[2]。線程分時(shí)共享處理器資源,大量線程切換帶來的開銷仍然相當(dāng)可觀,所以需要一種低開銷的多任務(wù)調(diào)度模型。不同操作系統(tǒng)的線程運(yùn)行機(jī)制有很大不同,本目標(biāo)系統(tǒng)提供了兩類調(diào)度策略:位圖(Bitmap)調(diào)度和多級(MLQ)調(diào)度。

1 位圖調(diào)度策略

位圖調(diào)度策略是一種基于靜態(tài)優(yōu)先級的搶占式調(diào)度策略。被調(diào)度的線程擁有唯一不變的優(yōu)先級,每一時(shí)刻運(yùn)行的是就緒隊(duì)列中優(yōu)先級最高的線程。該調(diào)度策略以時(shí)鐘中斷作為基本調(diào)度時(shí)機(jī),當(dāng)優(yōu)先級更高的線程進(jìn)入就緒態(tài)時(shí)就立刻搶占正在運(yùn)行的低優(yōu)先級線程[3]。主要數(shù)據(jù)結(jié)構(gòu)如下:

(1)位圖表。位圖調(diào)度策略可支持256種不同的優(yōu)先級,用32位無符號整型數(shù)(針對支持32位整型數(shù)的體系結(jié)構(gòu))數(shù)組rdy_queue將256個(gè)優(yōu)先級分成8組,數(shù)組每個(gè)成員的每一位代表一個(gè)優(yōu)先級,按照從最高有效位至最低有效位優(yōu)先級逐次降低,當(dāng)某位為l時(shí)表示該優(yōu)先級線程進(jìn)入就緒態(tài)。線程開始的優(yōu)先級為基本優(yōu)先級,線程的當(dāng)前優(yōu)先級可在1到32的范圍內(nèi)動態(tài)改變。在以下情況會提升線程當(dāng)前優(yōu)先級:I/O操作完成;信號量或事件等待結(jié)束;前臺進(jìn)程中的線程完成一個(gè)等待操作;線程處于就緒狀態(tài)一定時(shí)間,但沒能進(jìn)入運(yùn)行狀態(tài)。位圖表用來方便查找系統(tǒng)最高優(yōu)先級線程;

(2)就緒隊(duì)列。Bitmap_thread_rdy數(shù)組用來存儲進(jìn)入就緒態(tài)的線程對象的指針。當(dāng)位圖表中某組中任何一個(gè)優(yōu)先級進(jìn)入就緒狀態(tài)(被置1)時(shí),就緒隊(duì)列中對應(yīng)的元素就記錄了該線程的指針如圖1所示。

圖1 位圖表與就緒隊(duì)列

這樣,通過就緒隊(duì)列與位圖表就可以得到線程的優(yōu)先級。當(dāng)位圖調(diào)度器進(jìn)行調(diào)度時(shí)只需要依次查找rdy_queue中置1的最高位,即可找到最先級線程。

2 多級調(diào)度優(yōu)化策略

多級隊(duì)列調(diào)度是一種搶占式與時(shí)間片輪轉(zhuǎn)(Round-Robin)調(diào)度相結(jié)合的調(diào)度策略,是對位圖調(diào)度策略的擴(kuò)充,即允許線程具有相同的優(yōu)先級。在相同優(yōu)先級線程之間采間片輪轉(zhuǎn)調(diào)度策略,平均分配CPU占用時(shí)間。該策略的思想是盡量選擇那些處于活動狀態(tài)的高優(yōu)先級線程進(jìn)行取指,保證線程緩存區(qū)中的指令極少數(shù)是錯誤路徑的,而且該策略對線程進(jìn)行詳細(xì)的等級劃分,使得只有最低等級的線程才被暫停,提高取指效率[4]。主要數(shù)據(jù)結(jié)構(gòu)如下:

(1)位圖表。與位圖調(diào)度策略中rdy_queue相同;

(2)就緒隊(duì)列。mlq_thread_rdy數(shù)組用來存儲線程指針。與位圖調(diào)度策略不同的是,thread_rdy每一個(gè)元素存儲的是一個(gè)鏈表頭,其后面可以掛接線程對象形成一個(gè)雙向鏈表,THREAD數(shù)據(jù)結(jié)構(gòu)中的next和prey指針使線程成為一個(gè)線程雙向鏈表結(jié)點(diǎn)。變量rr_quantum用來指定時(shí)間片大小,當(dāng)某線程時(shí)間片用完時(shí),首先確定是否降低該線程的優(yōu)先級,然后確定是否調(diào)度另一個(gè)線程進(jìn)入運(yùn)行狀態(tài)。假定剛用完時(shí)間配額的線程的優(yōu)先級沒有降低,如果有優(yōu)先級相同的就緒線程,則選擇相同優(yōu)先級就緒隊(duì)列中的第一個(gè)線程進(jìn)入運(yùn)行狀態(tài),剛用完時(shí)間配額的線程被排到就緒隊(duì)列的隊(duì)尾;如果沒有優(yōu)先級相同的就緒線程,剛用完時(shí)間配額的線程將得到一個(gè)新的時(shí)間配額并繼續(xù)運(yùn)行;

(3)可達(dá)截止期優(yōu)先算法??蛇_(dá)截止期優(yōu)先算法是對截止期優(yōu)先策略的改進(jìn),就緒隊(duì)列的任務(wù)優(yōu)先級,仍然按照截止期順序排隊(duì)。但是,在調(diào)度時(shí)超過截止期的不予調(diào)度。

當(dāng)前時(shí)刻離截止時(shí)刻的時(shí)間:

式中,Tc為系統(tǒng)當(dāng)前時(shí)刻,Te為執(zhí)行整個(gè)任務(wù)的估算時(shí)間,Tr為任務(wù)已執(zhí)行部分所用的實(shí)際時(shí)間,Td為截止時(shí)刻。

當(dāng)D ≥0時(shí),任務(wù)預(yù)計(jì)能在截止時(shí)刻前完成(也就是說,該任務(wù)的截止期是當(dāng)前可達(dá)到的),于是可以進(jìn)行調(diào)度,否則放棄該任務(wù)的執(zhí)行。

在可達(dá)截止期最早優(yōu)先算法中,系統(tǒng)時(shí)鐘對任務(wù)的運(yùn)行時(shí)間進(jìn)行累計(jì),空閑任務(wù) IDLE的截止時(shí)刻DeadTime應(yīng)設(shè)為無限大,而估算時(shí)間則為0,就緒隊(duì)列中至少有一個(gè)就緒任務(wù)滿足調(diào)度要求。

3 調(diào)度管理模塊

在調(diào)度管理模塊中實(shí)現(xiàn)部分主要有:

(1)基本數(shù)據(jù)類型定義;

(2)線程上下文切換。盡管線程是微內(nèi)核中調(diào)度和執(zhí)行的基本單位,但對于微處理器而言.它不能感知線程實(shí)體的存在,它只能為線程的執(zhí)行提供一個(gè)環(huán)境,這個(gè)環(huán)境就是相關(guān)的寄存器。由此可見,線程的切換實(shí)質(zhì)就是微處理器的寄存器更換內(nèi)容的過程,而這個(gè)過程與處理器體系結(jié)構(gòu)密切相關(guān),因此需要對線程上下文切換過程進(jìn)行封裝,使其在抽象層中實(shí)現(xiàn)。給出位圖調(diào)度策略和多級隊(duì)列調(diào)度策略的實(shí)現(xiàn)流程圖如圖2所示;

圖2 位圖調(diào)度策略和多級隊(duì)列調(diào)度策略流程圖

(3)調(diào)度服務(wù)函數(shù)。調(diào)度管理模塊提供的服務(wù)函數(shù)如表1所示:

表1 調(diào)度服務(wù)函數(shù)

4 測試分析

在通常的位圖調(diào)度策略中,如果取出過多在IQ中停留時(shí)間較長的指令,最終會使IQ中充滿不可發(fā)射的指令,稱之為IQ阻塞(IQ clog),這樣吞吐率降低,使執(zhí)行單元處于空閑狀態(tài),浪費(fèi)資源。利用多級調(diào)度結(jié)合可達(dá)截止期優(yōu)先算法的混合應(yīng)用,時(shí)間片輪轉(zhuǎn)式交替執(zhí)行使指令混合,減少IQ阻塞出現(xiàn)的概率。實(shí)驗(yàn)測試結(jié)果表明改進(jìn)后多級調(diào)度策略相比于原先的位圖調(diào)度策略,IQ阻塞的概率減少了11%。如表2所示,IQ阻塞率在各種線程數(shù)目下都有大幅度降低。

表2 各線程IQ阻塞率

5 結(jié)束語

一個(gè)好的調(diào)度方法,需要綜合考慮應(yīng)用程序多樣性以及體系結(jié)構(gòu)兩個(gè)方面的特征。本文提出一種基于抽象層的線程調(diào)度策略,在高效的位圖調(diào)度的基礎(chǔ)上擴(kuò)充為多級調(diào)度策略,一種搶占式與時(shí)間片輪轉(zhuǎn)(Round-Robin)調(diào)度相結(jié)合的調(diào)度策略。這種調(diào)度方式避免了某項(xiàng)任務(wù)長時(shí)間占用CPU時(shí)間,既提高了程序的性能,又增強(qiáng)了程序的功能。但隨著進(jìn)程或者線程個(gè)數(shù)的增加,以及處理器個(gè)數(shù)的增加,需考察的調(diào)度決策數(shù)呈指數(shù)增長。因此調(diào)度算法應(yīng)該和具體的體系結(jié)構(gòu)以及進(jìn)程本身相關(guān),這也是需要繼續(xù)完善的方向。

[1]Sohi G,Roth A.Speculative Multithreaded Processors[J].IEEE Computer,2001,34(4):66-71.

[2]駱斌,費(fèi)翔林.多線程技術(shù)的研究與應(yīng)用[J].計(jì)算機(jī)研究與發(fā)展,2000,37(4):407-412.

[3]Seto D B,Lehoczky J,Liu s.Task Period selection and schedulability in real-time systems[J].IEEE Communication Society,1998,16(3):188-199.

[4]羅宇,商臨鋒.操作系統(tǒng)多線程實(shí)現(xiàn)技術(shù)研究[J].小型微型計(jì)算機(jī)系統(tǒng),2000,21(5):500-503.

[5]Reinder J B,Elisabeth S,Wim V.Best-case response times and jitter analysis of real-time tasks[J].Journal of Scheduling,2004,7(2):133-147.

猜你喜歡
截止期線程隊(duì)列
隊(duì)列里的小秘密
基于多隊(duì)列切換的SDN擁塞控制*
軟件(2020年3期)2020-04-20 00:58:44
在隊(duì)列里
豐田加速駛?cè)胱詣玉{駛隊(duì)列
淺談linux多線程協(xié)作
基于截止期價(jià)值度優(yōu)先的CAN消息實(shí)時(shí)調(diào)度算法*
滿足業(yè)務(wù)實(shí)時(shí)性要求的路由設(shè)計(jì)*
Linux線程實(shí)現(xiàn)技術(shù)研究
分布式武器目標(biāo)分配中的實(shí)時(shí)截止期分配
實(shí)時(shí)數(shù)據(jù)庫系統(tǒng)中事務(wù)的差分服務(wù)
光山县| 桑植县| 江城| 老河口市| 府谷县| 同仁县| 中山市| 慈利县| 云林县| 临邑县| 扶风县| 溧阳市| 沁阳市| 邵阳市| 清镇市| 乌什县| 冀州市| 甘孜| 永仁县| 平定县| 凉城县| 保亭| 佛教| 甘孜县| 霞浦县| 昌图县| 镇原县| 咸阳市| 民权县| 阿尔山市| 洛南县| 星子县| 图木舒克市| 日土县| 双鸭山市| 屏东市| 海安县| 遂溪县| 广宁县| 林州市| 黄石市|