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

?

嵌入式突發(fā)任務調度方法研究與仿真

2022-03-15 09:45:34李青云康晶晶郭文鋒
計算機仿真 2022年2期
關鍵詞:任務調度時限隊列

李青云,康晶晶,郭文鋒

(1.晉中信息學院信息工程學院,山西 晉中 030800;2.山西農業(yè)大學,山西 太谷 030801)

1 引言

具備所有硬件功能可運行在特定空間內的計算機系統(tǒng)稱為虛擬機,其具備實體計算機所有功能,通過特定CMOS和硬盤等實現(xiàn)用戶需求[1]。虛擬機技術屬于虛擬化技術的一個分支,利用虛擬機技術可轉變事務形式,依據(jù)用戶意愿將硬盤轉換為內存,將公共網(wǎng)絡劃分出一部分作為用戶私有網(wǎng)絡。目前,嵌入式應用被越來越多的領域所需求,面對日新月異的科學技術,基于Forth虛擬機技術的嵌入式應用應運而生[2],尤其是在任務調度方面,應用較為廣泛。而任務調度方法眾多,其中以李昆侖等人研究的云任務調度方法[3]和楊善超等人研究的價值優(yōu)化的任務調度算法[4]最為優(yōu)秀,前者依據(jù)用戶滿意度,利用尋優(yōu)算法實現(xiàn)任務調度,但是該方法具有較強的主觀性,且尋優(yōu)算法迭代次數(shù)眾多,調度流暢性不佳,導致其調度效果不理想,后者依據(jù)待調度任務的最大價值和變動斜率構建價值函數(shù)實現(xiàn)任務調度,但該方法時間偏移量較大,導致計算的價值概率不夠準確,負載均衡效果較差。面對上述情況,本文研究基于Forth虛擬機技術的嵌入式突發(fā)任務調度仿真,以提升突發(fā)任務調度技術水平。

2 基于Forth虛擬機技術的嵌入式突發(fā)任務調度仿真

2.1 嵌入式突發(fā)任務調度框架

Forth虛擬機又稱FVM,利用虛擬機構搭建嵌入式突發(fā)任務調度框架,將其嵌入計算機內可實現(xiàn)終端任務和使用者之間的交互功能[5],嵌入式框架結構如圖1所示。

圖1 嵌入式突發(fā)任務調度框架結構示意圖

嵌入式框架由任務控制塊、RAM、FLASH任務字典和FVM(虛擬機)等組成,由RAM模塊和FLASH任務字典模塊互相協(xié)作形成突發(fā)任務,經(jīng)過任務控制塊內的R/D堆棧轉換后,F(xiàn)VM虛擬機采用時間輪轉算法完成突發(fā)任務調度需求。

2.2 任務控制塊

任務控制塊(task Control Block)又稱TCB,是由突發(fā)任務調度信息的用戶變量構成的,負責存儲突發(fā)任務,任務控制塊內各個任務數(shù)據(jù)棧指針變量所占空間不重疊[6],任務控制塊結構如表1所示。

表1 任務控制塊結構

表1中,每個任務控制塊結構均使用2個內存單元,使用者可依據(jù)實際需求增減任務控制塊結構,上表內所有結構均為終端任務所需,無需I/O設備連接,其中,突發(fā)調度任務最常用的為status、follower、rp0、sp0以及sp等。

2.3 后臺任務映像及突發(fā)任務建立

任務控制塊與任務R/D堆棧形成任務映像,任務映像可連續(xù)存儲于內存中,嵌入式突發(fā)任務調度框架所建立的突發(fā)任務映像通過詞語的形式存儲在RAM模塊內,通過詞語的參數(shù)域形成任務信息塊,任務映像組成如圖2所示。

圖2 后臺任務映像組成示意圖

使用者指針位置即為當前任務映像首地址,各個任務之間互相獨立,通過相對偏移編址、數(shù)據(jù)堆棧等組成任務堆棧,任務堆棧依次形成,各個任務之間存儲獨立,不互相影響[7]。

在嵌入式突發(fā)任務調度時,針對需要調度的任務,在FLASH任務字典內創(chuàng)建任務名詞,利用靜態(tài)分配方式將該任務名詞分配到任務控制塊內并記錄該任務名詞的參數(shù)域初始地址,一個新任務的建立需經(jīng)過創(chuàng)建、初始化等步驟,當新任務建立完成后,將該任務添加到需調度隊列內,等待調度[8]。

2.4 基于時間輪轉的負載均衡調度算法

嵌入式突發(fā)任務調度時需保證其分配性能與效率,為使其調度吞吐量達到最大和任務資源使用最大化,嵌入式突發(fā)任務調度框架的負載均衡達到最佳狀態(tài)是其必要途徑。本文利用時間輪轉算法,將虛擬機調度任務時間劃分為獨立時間片,依據(jù)時間距離對獨立時間片進行排序,按照次序使用虛擬機處理器資源,完成后退出并按照退出次序排列,等待下一次調度,時間片使用虛擬機處理器的過程稱為進程[9],進程調度順序也依據(jù)時間排序,當某個進程使用虛擬機處理器時,僅占用一個時間片,該時間片使用完成后,該進程結束。

時間輪轉算法依據(jù)進程情況判定優(yōu)先級,屬于靜態(tài)優(yōu)先級調度方法,在突發(fā)任務調度過程中,優(yōu)先級先進行調度,且優(yōu)先級無法調整,因此,需將嵌入式突發(fā)任務調度框架的負載均衡性作為調度優(yōu)先級,再使用時間輪轉方法實現(xiàn)突發(fā)任務調度。

2.4.1 嵌入式突發(fā)任務調度框架負載均衡優(yōu)先級判斷

以判斷負載均衡優(yōu)先級的方式實現(xiàn)負載均衡分配,在判斷嵌入式突發(fā)任務調度框架負載均衡優(yōu)先級時,令C表示負載均衡度,參數(shù)和計算節(jié)點數(shù)量分別為n和m,則在n維參數(shù)空間內,計算節(jié)點投影中間位置為O(y1,y2,…,yn),則節(jié)點映射到中心距離均值表達公式如下

(1)

(2)

上述公式中,Cij表示將i任務調度到節(jié)點j時嵌入式突發(fā)任務調度框架的負載均衡數(shù)值,當負載均衡數(shù)值為0時,表示此時的任務調度框架負載均衡為最佳狀態(tài),負載均衡數(shù)值區(qū)間為0~1,因此其最大數(shù)值為1,負載均衡數(shù)值越大表明任務調度框架負載均衡狀態(tài)越差。通過該公式計算待調度任務優(yōu)先級,負載均衡數(shù)值越小,其調度優(yōu)先級越高,依據(jù)優(yōu)先級排列后,使用時間輪轉方法進行調度。

2.4.2 時間輪轉調度算法

將上個小節(jié)獲取的待調度任務優(yōu)先級排序后的數(shù)據(jù)分為兩個就緒隊列,分別用AQi0和AQi1表示,令BTk表示進程時限,BTavg表示所有進程剩余時限平均數(shù)值,當進程時限小于剩余時限平均數(shù)值時,將該進程放置就緒隊列AQi1末尾,反之放置于就緒隊列AQi0末尾,時間輪轉算法在調度過程中,依據(jù)最高優(yōu)先級對該就緒隊列展開調度,當該進程為空時,更換下一個就緒隊列。令N、E分別表示進程數(shù)量和剩余進程總和,ut為當前隊列等待時間,時間輪轉調度算法具體步驟如下

第一步:計算優(yōu)先級為j的節(jié)點的進程時限,當時限小于剩余平均時限時,將該進程放置就緒隊列AQi1末尾,反之放置在就緒隊列AQi0末尾,更新進程數(shù)量、剩余進程數(shù)量總和、有進程剩余時限平均數(shù)值。

第二步:計算就緒隊列最高優(yōu)先級,且該優(yōu)先級不為空,令當前隊列等待時間為0。

第三步:當就緒隊列為AQi1空時,令TQ=max(g,BTavg)表示該隊列的第一個進程時間片,當全部進程剩余時限BT在其自身時間片內完成時,更新剩余進程總和與有進程剩余時限平均數(shù)值,并將該進程在屬于其就緒隊列內剔除,放置另一就緒隊列末尾,再次更新剩余進程總和與有進程剩余時限平均數(shù)值后,令當前隊列等待時間為進程調度時間和隊列等待時間之和,當任務i調度時間高于所有進程剩余時限平均數(shù)值的2倍,將該進程放置在AQi1的末尾,此時ut數(shù)值為0,反之則更新剩余進程總和與有進程剩余時限平均數(shù)值,將該進程放置于在AQi0的末尾,再次更新剩余進程總和與有進程剩余時限平均數(shù)值。

通過上述步驟,進程時間片始終在變化,在調度任意進程時,該進程的時間片即為當前所有進程剩余時限平均數(shù)值。當任意進程的時間片消耗盡后,其調度運行時間未停止時,將該進程放置于就緒隊列AQi0末尾,等待下一次調度,在全部優(yōu)先級內引入等待時間E,利用等待時間對就緒隊列內調度耗時過長的進程展開追蹤,當?shù)却龝r間超出BTavg的兩倍時,將該進程添加至另一就緒隊列最先調度,從而完成突發(fā)任務調度過程。

3 實驗分析

使用NANDFlash燒寫器將本文嵌入式突發(fā)任務調度框架燒寫在型號為ARM1176JZF-S嵌入式開發(fā)板內,該開發(fā)板控制器參數(shù)為Atmega328P,工作電壓為5V,F(xiàn)LASH容量為32kB,時鐘為16MHz,使用MATLAB仿真軟件對本文方法展開測試。

3.1 負載均衡分配測試

本文方法在調度突發(fā)任務時,需判斷負載均衡優(yōu)先級,并依據(jù)優(yōu)先級實現(xiàn)負載均衡分配,以突發(fā)任務就緒隊列變化情況和任務初始地址衡量本文負載均衡分配情況,創(chuàng)建3組待調度突發(fā)任務,分別標記為任務一、任務二、任務三,利用MATLAB仿真軟件繪制測試走勢圖,結果如圖3所示。

圖3 負載均衡分配測試結果

分析圖3可知,三個任務的AQi0、AQi1數(shù)值不同,其原因在于本文方法在分配負載均衡過程中,優(yōu)先級較高的任務先被調整的結果,而任務的初始地址與AQi0數(shù)值相同,且AQi1數(shù)值不斷增加,表明本文方法負載均衡分配較合理。

3.2 突發(fā)任務調度流暢性測試

通過建立突發(fā)任務和刪除突發(fā)任務方式,計算其內存占用情況,以內存占用率衡量本文方法突發(fā)任務調度流暢性,結果如表2所示。

表2 突發(fā)任務調度流暢性測試結果

分析表2可知,在建立任務時內存占用率逐漸上升,當所建立的任務占用空間數(shù)值較大時,其內存占用率上升幅度也較大,同理刪除某個任務后其內存占用率有所下降,且該任務占用空間數(shù)值較大,其內存占用率下降幅度也較大,且內存占用率最高僅為30.2%,由此可知,本文方法在調度突發(fā)任務過程中具備較強的流暢性。

3.3 穩(wěn)定性測試

令所有突發(fā)任務堆棧大小相同,且所有可用空間均被完全利用,當刪除10個任務時,統(tǒng)計本文方法任務調度最大數(shù)值,為更清晰明了地展示本文方法穩(wěn)定性,同時使用文獻[3]方法和文獻[4]方法,其中,文獻[3]方法表示云任務調度方法,文獻[4]方法表示價值優(yōu)化的任務調度算法,穩(wěn)定性測試結果如表3所示。

表3 穩(wěn)定性測試結果

分析表3可知,當獨立任務占用空間相同時,在無任務刪除的情況下,三種方法的最大調度任務數(shù)量均為55個,當刪除10個任務后,本文方法最大調度任務數(shù)量為65個,較文獻[3]方法和文獻[4]方法分別高出10個和3個任務數(shù),由此可知,本文方法可在調度任務過程中不受任務建立、刪除等操作影響,具有較強穩(wěn)定性。

3.4 突發(fā)任務調度效率測試

利用仿真軟件模擬突發(fā)任務350個,分別使用三種方法進行任務調度,測試其突發(fā)任務調度效率,結果如圖4所示。

圖4 突發(fā)任務調度效率測試

分析圖4可知,隨著突發(fā)任務數(shù)量的增加,三種方法調度耗時也隨之增加,其中文獻[3]方法和文獻[4]方法隨著突發(fā)任務數(shù)量的增加其調度耗時迅速增加,當突發(fā)任務數(shù)量為350個時,二者調度任務耗時均超過14s,反觀本文方法,其調度耗時增加緩慢,突發(fā)任務數(shù)為350個時,該方法較文獻[3]方法和文獻[4]方法調度耗時低,在測試中,本文方法最低調度耗時僅為2s,由此可知,本文方法突發(fā)任務調度效率較高。

4 結論

本文利用Forth虛擬機技術進行嵌入式突發(fā)任務調度,并仿真基于Forth虛擬機技術的嵌入式突發(fā)任務調度情況,實驗結果表明:本文方法負載均衡分配較為合理;在調度流暢性方面其內存占用率最高僅為30.2%,具有較高調度流暢性;在調度任務過程中不受任務建立、刪除等操作影響,具有較強穩(wěn)定性。

猜你喜歡
任務調度時限隊列
隊列里的小秘密
基于多隊列切換的SDN擁塞控制*
軟件(2020年3期)2020-04-20 00:58:44
心電圖QRS波時限與慢性心力衰竭患者預后的相關性分析
平行時空
智族GQ(2019年7期)2019-08-26 09:31:36
基于改進NSGA-Ⅱ算法的協(xié)同制造任務調度研究
在隊列里
基于時間負載均衡蟻群算法的云任務調度優(yōu)化
測控技術(2018年7期)2018-12-09 08:58:00
豐田加速駛入自動駕駛隊列
云計算環(huán)境中任務調度策略
云計算中基于進化算法的任務調度策略
岱山县| 任丘市| 汉寿县| 兴文县| 合江县| 田阳县| 黑河市| 德格县| 海伦市| 类乌齐县| 兴义市| 望奎县| 自治县| 专栏| 柘城县| 台江县| 东乡| 义乌市| 广宗县| 灵宝市| 莱阳市| 蓬安县| 甘孜县| 疏勒县| 固安县| 江城| 毕节市| 元谋县| 麟游县| 永善县| 广州市| 武乡县| 舞阳县| 松桃| 黄大仙区| 盈江县| 进贤县| 双牌县| 阿拉善左旗| 邵武市| 溆浦县|