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

?

基于速率的分組調(diào)度算法模型的研究

2014-04-29 00:44李志華
中國管理信息化 2014年5期
關(guān)鍵詞:服務(wù)質(zhì)量速率算法

李志華

[摘 要] 分組調(diào)度算法是為網(wǎng)絡(luò)提供服務(wù)質(zhì)量保證的一項重要措施。本文提出了一種具有良好通用性的分組調(diào)度算法模型,該模型為實現(xiàn)各種基于速率的調(diào)度算法提供基本框架,模塊化的設(shè)計方式使得算法的實現(xiàn)簡便易行。

[關(guān)鍵詞] 分組調(diào)度;服務(wù)質(zhì)量;速率;算法;模型

doi : 10 . 3969 / j . issn . 1673 - 0194 . 2014 . 05. 023

[中圖分類號] TP301.6 [文獻(xiàn)標(biāo)識碼] A [文章編號] 1673 - 0194(2014)05- 0038- 03

0 引 言

隨著網(wǎng)絡(luò)的飛速發(fā)展,其承載的業(yè)務(wù)逐漸向多媒體方向發(fā)展。視頻點播、遠(yuǎn)程會議等實時性業(yè)務(wù)需要網(wǎng)絡(luò)為用戶提供QoS(Quality of Service)保證。分組調(diào)度算法克服了傳統(tǒng)網(wǎng)絡(luò)無法提供QoS保證的缺點,其中基于速率的分組調(diào)度算法由于可以為用戶提供時延保證和良好的公平性,已成為近年來人們研究的重點。

基于速率的分組調(diào)度算法主要包括:GPS(Generalized Processor Sharing)、VC(Virtual Clock)、SFQ(Start-time Fairness Queuing)、WFQ(Weighted Fair Queuing)、WF2Q(Worst-case Weighted Fair Queuing)和SCFQ(Self-Clocked Fair Queuing)等。本文總結(jié)以上算法的公共特征提出了一種分組調(diào)度算法模型。該模型具有很好的通用性,可以作為載體實現(xiàn)各種基于速率的調(diào)度算法。同時,模塊化的設(shè)計方式為算法的實現(xiàn)提供了統(tǒng)一的框架,使得算法實現(xiàn)簡便易行。

本文首先介紹了幾種經(jīng)典調(diào)度算法的原理,在此基礎(chǔ)上提出了一種算法模型并給出了模型的模塊化實現(xiàn)方法,最后以模型為基礎(chǔ)實現(xiàn)了WFQ和VC兩種算法。

1 算法簡介

GPS和Virtual Clock是兩種具有代表性的基于速率的分組調(diào)度算法。經(jīng)過嚴(yán)格數(shù)學(xué)證明的GPS算法為許多后續(xù)算法提供了理論依據(jù)。

GPS定義為:

■≥■ (j=1,2,…,n)(1)

對每個連接i均成立。其中Si(t1,t2)表示連接i在[t1,t2]內(nèi)獲得的服務(wù)量,?準(zhǔn)i是和連接i相對應(yīng)的非負(fù)實數(shù)[1]。

GPS能夠同時調(diào)度n個連接的數(shù)據(jù)并為每個連接提供一個最小的服務(wù)速率gi=r·?準(zhǔn)i /■?準(zhǔn)i。它可以為每個連接提供嚴(yán)格的端到端時延保證和絕對的公平性,但它是一種理想的算法(同時為n個連接提供服務(wù)且調(diào)度的數(shù)據(jù)無限可分)。實際中,調(diào)度器在某一時刻只能為一個連接服務(wù)且數(shù)據(jù)包作為一個傳輸實體不是無限可分的。

為了實現(xiàn)GPS算法的各項性能指標(biāo),人們提出了許多逼近GPS的算法,其中WFQ[2]和WF2Q[3]最具代表性。二者都是按照數(shù)據(jù)包在GPS中完成時間的遞增順序來轉(zhuǎn)發(fā)各個連接的數(shù)據(jù)包。不同的是:WFQ從已經(jīng)到達(dá)的所有數(shù)據(jù)包中選擇在相應(yīng)的GPS中具有最小完成時間的數(shù)據(jù)包來轉(zhuǎn)發(fā);而WF2Q是從GPS中已經(jīng)開始接受服務(wù)的數(shù)據(jù)包中選擇完成時間最小的數(shù)據(jù)包發(fā)送即{Pik|bikGPS≤?子≤b■■},bik表示連接i的第k個數(shù)據(jù)包在GPS系統(tǒng)中開始接受服務(wù)的時刻[3]。

Virtual Clock算法為每個連接定義了兩個虛擬時鐘:Virtual clock和auxVC[4]。數(shù)據(jù)包到達(dá)后被打上一個由虛擬時鐘根據(jù)連接速率計算出來的時間戳。調(diào)度器按照時間戳的遞增順序轉(zhuǎn)發(fā)各個連接的數(shù)據(jù)包。

2 基于速率的分組調(diào)度模型

在基于速率的調(diào)度算法中速率是一個關(guān)鍵的概念。調(diào)度器中帶寬的分配、流量的調(diào)節(jié)等操作都是以速率為參數(shù)執(zhí)行的。

2.1 模型概述

網(wǎng)絡(luò)中的每個連接在完成一次通信的過程中都要經(jīng)歷3個狀態(tài):Idle、Enabled和Blocked(如圖1所示)。連接建立后首先進(jìn)入Idle狀態(tài)等待數(shù)據(jù)包的到達(dá)。當(dāng)?shù)谝粋€數(shù)據(jù)包到達(dá)后連接被標(biāo)記為eligible,進(jìn)程模型調(diào)用函數(shù)choose_connection()在所有標(biāo)記為eligible的連接中選擇一個連接發(fā)送數(shù)據(jù)。如果該連接得到發(fā)包權(quán),進(jìn)程由Idle轉(zhuǎn)入Enabled狀態(tài)。進(jìn)入Enabled狀態(tài)的進(jìn)程調(diào)用函數(shù)dequeue()發(fā)送數(shù)據(jù),之后調(diào)用函數(shù)choose_connection()確定狀態(tài)轉(zhuǎn)移方向:

(1)如果該連接隊列中仍有待發(fā)的數(shù)據(jù)包且連接有權(quán)發(fā)包,狀態(tài)轉(zhuǎn)移到自身;

(2)如果隊列中仍有待發(fā)的數(shù)據(jù)包但連接無權(quán)發(fā)包,狀態(tài)轉(zhuǎn)移到Blocked;

(3)如果隊列為空則轉(zhuǎn)移到Idle狀態(tài)。處于Blocked狀態(tài)的連接隨著時間的推移可以重新獲取發(fā)包權(quán),此時進(jìn)程狀態(tài)由Blocked轉(zhuǎn)移到Enabled并發(fā)送數(shù)據(jù)。

2.2 模型的模塊化實現(xiàn)

為了更加精確地說明進(jìn)程的原理,為每個連接定義了一個數(shù)據(jù)結(jié)構(gòu),如表1所示。連接建立時會提供一個速率參數(shù)rq。re是調(diào)度器為連接提供的服務(wù)速率的最大值,它是根據(jù)rq的值計算得到的,計算的方法由具體的算法指明。rm是連接實際得到的服務(wù)速率。對于有包待發(fā)的連接,如果它的rm小于re,則此連接將被標(biāo)記為eligible,否則被標(biāo)記為ineligible。

數(shù)據(jù)包到達(dá)后,進(jìn)程調(diào)用函數(shù)packet_arrival()完成數(shù)據(jù)包入隊等相關(guān)操作。函數(shù)effective_rate_update()負(fù)責(zé)更新的值,結(jié)果作為參數(shù)傳遞給eligible_update()函數(shù),用于更新各個連接的eligible標(biāo)記。當(dāng)調(diào)度器空閑時調(diào)用函數(shù)choose_connection()在標(biāo)記為eligible的所有連接中選取一個連接,然后利用packet_send()函數(shù)完成發(fā)送數(shù)據(jù)的任務(wù)。進(jìn)程中主要模塊的偽代碼如下所示,抽象模塊的實現(xiàn)方法由具體算法指明。

Eligible_update()

1 for each connection in Connections do

2 if c.is_overserved()==TRUE

3 c.state←ineligible

4 else if c's queue is empty

5 c.state←idle

6 else

7 c.state←eligible

Is_overserved()

1 if rm > re

2 return TRUE

3 else

4 return FALSE

Packet_send()

1 dequeue();

2 if c.is_overserved()==TRUE

3 c.state←ineligible

4 else if c is empty

5 c.state←idle

6 else

7 c.state←eligible

3 模型的特點

(1)模型提供了良好的通用性。進(jìn)程模型中沒有說明帶*的抽象模塊的實現(xiàn)方法,而是留給應(yīng)用時由具體算法來指明。這樣做的好處是使得進(jìn)程模型具有良好的通用性,可以作為載體實現(xiàn)多種算法。

(2)模塊化的實現(xiàn)方法。 模型采用了模塊化的設(shè)計方式并提供了各模塊間的接口。設(shè)計算法時只需將重點放在各個模塊的具體實現(xiàn)上,使得算法開發(fā)高效而快速。

(3)能夠提供速率保證。模型以各個連接的速率為主要參數(shù)為其分配系統(tǒng)資源。各個連接都能夠得到滿意的服務(wù)速率,并保證了端到端的時延。且根據(jù)各個連接速率值的大小按比例分配資源也體現(xiàn)了良好的公平性。

4 進(jìn)程的應(yīng)用

4.1 模型在WFQ中的應(yīng)用

WFQ模擬數(shù)據(jù)包在相應(yīng)GPS中的轉(zhuǎn)發(fā)順序,提供了和GPS算法相近的性能。為了做到這一點,WFQ必須計算各個數(shù)據(jù)包在GPS中的完成時間并按遞增順序轉(zhuǎn)發(fā)數(shù)據(jù)包。文獻(xiàn)[5]證明在包到達(dá)時只計算一次虛擬完成時間并按其遞增順序發(fā)包不會影響算法的性能。這樣做的好處是:在不降低算法性能的前提下大大減小了算法的復(fù)雜度。

在WFQ算法中GPS作為參考系統(tǒng)而存在,決定了各個連接的數(shù)據(jù)包的轉(zhuǎn)發(fā)順序。因此,可以用兩個進(jìn)程來實現(xiàn)WFQ:①GPS進(jìn)程;②WFQ進(jìn)程。前者通過喚醒connection_setup()和packet_arrival()完成連接建立、虛擬時間的計算和effective_rate_update()的更新工作,結(jié)果被WFQ進(jìn)程利用作為選包的依據(jù)。當(dāng)WFQ調(diào)度器空閑時喚醒WFQ進(jìn)程,調(diào)用choose_connection()和packet_send()選擇數(shù)據(jù)包并完成發(fā)送工作。主要模塊的偽代碼如下所示。

Packet_arrival()

1 p.vt=p′s finishing virtual time

2 enqueue()

Effective_rate_update()

1 ?準(zhǔn)total =■r■

2 for each connection which has packet to send do

3 c·re=r·■

Choose_connection()

1 for each connection which has arrival packets do

vt[]=the head packets vt of all busy connections

2 INDEX=Min(vt[])

3 Return INDEX

4.2 模型在VC中的應(yīng)用

VC不需要計算rq和?準(zhǔn)total之間的關(guān)系,使得算法的實現(xiàn)簡便易行。在VC中每個連接都能夠按照r■接受服務(wù)而無需考慮其他連接的狀態(tài).當(dāng)調(diào)度器空閑時進(jìn)程喚醒packet_send(),選擇具有最小虛擬完成時間的數(shù)據(jù)包發(fā)送。模塊偽碼如下所示。

Packet_arrival()

1 If the packet is the first packet

2 p.vt=Current_time

3 else[2]

4 auxVC←max(real time,auxVC)

5 p.vc←vc+Vtick

6 auxVC←auxVC+Vtick

7 p.vt←auxVC

8 equeue(packet p)

Choose_connection()

1 connection c=the connection, among the set of eligible ones, whose first packet in the packet queue has the smallest virtual clock stamp

2 return connection c

5 結(jié) 論

本文提出了一種基于速率的分組調(diào)度算法模型。該模型具有很好的通用性,可以作為載體實現(xiàn)各種基于速率的調(diào)度算法。模型具有很多優(yōu)良的特性,其中模塊化的設(shè)計方式為算法的實現(xiàn)提供了統(tǒng)一的框架,使得算法實現(xiàn)簡便易行。

主要參考文獻(xiàn)

[1]A K Parekh,R G Gallage. A Generalized Processor Sharing Approach to Flow Control in Integrated Services Networks:The Single-node Case[J]. IEEE/ACM Transactions on Networking,1993,1(3):344-357.

[2]J C R Bennett,H Zhang. Hierarchical Packet Fair Queuing Algorithms[J].IEEE/ACM Transactions on Networking,1997,5(5):675-689.

[3]J C R Bennett,H Zhang. WF2Q: Worst-Case Fair Weighted Fair Queuing[C].Proceedings of 15th Annual Joint Conference of The IEEE Computer Societies(IEEE INFOCOM96),1996,Vol.1:120-128.

[4]L Zhang. Virtual Clock: A New Traffic Control Algorithm for Packet Switching Networks[J]. ACM SIGCOMM Computer Communication Review, 1990, 20(4):19-29.

[5]H Y Tyan, B Wang, Y Ye, J C Hou. NetSimQ: A Java Integrated Network Simulation Tool for QoS Control in Point-to-point High Speed Networks[C]. 3rd NASA Research and Education Network Workshop, Moffett Field, CA ,1998.

猜你喜歡
服務(wù)質(zhì)量速率算法
“化學(xué)反應(yīng)的速率與限度”知識與能力提升
基于MapReduce的改進(jìn)Eclat算法
論如何提升博物館人性化公共服務(wù)質(zhì)量
Travellng thg World Full—time for Rree
進(jìn)位加法的兩種算法
速度和速率有什么不同
一種改進(jìn)的整周模糊度去相關(guān)算法
傾聽患者心聲 提高服務(wù)質(zhì)量
堅持履職盡責(zé) 提升服務(wù)質(zhì)量
不同冷卻速率下低壓轉(zhuǎn)子鋼30Cr2Ni4MoV的凝固組織
微博| 乐都县| 佳木斯市| 磐安县| 凉山| 酒泉市| 卢氏县| 房产| 儋州市| 托克逊县| 阿勒泰市| 增城市| 遂溪县| 泸西县| 罗甸县| 葵青区| 吐鲁番市| 祁门县| 虎林市| 多伦县| 延川县| 上栗县| 尖扎县| 开封县| 同心县| 社旗县| 密云县| 上饶县| 清远市| 河东区| 宜丰县| 龙里县| 营口市| 炎陵县| 云龙县| 隆德县| 唐山市| 木里| 宜都市| 鄱阳县| 上虞市|