專利名稱:基于路由交換機的自適應(yīng)可變時間片包轉(zhuǎn)發(fā)調(diào)度方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機網(wǎng)絡(luò)系統(tǒng)技術(shù)領(lǐng)域,具體地說是涉及一種基于路由交換機的自適應(yīng)可變時間片包轉(zhuǎn)發(fā)調(diào)度方法。
背景技術(shù):
傳統(tǒng)的多級隊列進(jìn)程調(diào)度方法的路由交換機中有多個網(wǎng)絡(luò)接口端口NID,完成從傳輸介質(zhì)接收和發(fā)送包、解碼、編碼的工作,它們通過共享總線的方式和中央處理器CPU進(jìn)行通信.CPU完成NID的驅(qū)動、路由表的維護(hù)和包的轉(zhuǎn)發(fā)工作。附圖1是傳統(tǒng)路由器包轉(zhuǎn)發(fā)方式。在傳統(tǒng)方式中,數(shù)據(jù)包轉(zhuǎn)發(fā)要經(jīng)過Rx ISR、Forward Thread和Tx ISR三個部分的處理,其中Rx ISR、Tx ISR以中斷方式運行,F(xiàn)orward Thread以內(nèi)核線程方式運行,它們的優(yōu)先級關(guān)系為P(Rx ISR)>P(Tx ISR)>P(Forward Thread)。Rx ISR運行的時間和接口的包到達(dá)率有關(guān),隨之增加而增加。由于Rx ISR具有最高優(yōu)先級,當(dāng)包到達(dá)率很高時,Rx ISR將占用大量CPU資源,使得Forward Thread和Tx ISR的運行時間減少,接收隊列Rx Qucue溢出,系統(tǒng)處于“接收一丟棄”的惡性循環(huán)中,因此傳統(tǒng)的路由交換機的多級隊列進(jìn)程調(diào)度方法存在以下問題1.當(dāng)包到達(dá)率很高時導(dǎo)致路由器吞吐量下降。
2.當(dāng)負(fù)載很重時包轉(zhuǎn)發(fā)延遲增加.特別是某些端口的數(shù)據(jù)包遲遲得不到系統(tǒng)的響應(yīng)。
發(fā)明內(nèi)容
本發(fā)明的目的在于克服傳統(tǒng)的多級隊列進(jìn)程調(diào)度方法存在的問題,提供一種基于路由交換機的自適應(yīng)可變時間片包轉(zhuǎn)發(fā)調(diào)度方法。該方法通過改進(jìn)了系統(tǒng)的任務(wù)調(diào)度方法,簡化了包轉(zhuǎn)發(fā)過程中的系統(tǒng)調(diào)用,保證CPU資源在包轉(zhuǎn)發(fā)過程中各端口的多個任務(wù)之間能夠合理分配時間,并有效地提高了路由交換機的吞吐量,減小了包轉(zhuǎn)發(fā)的延遲以及路由交換機各端口轉(zhuǎn)發(fā)數(shù)據(jù)包的平等響應(yīng)權(quán)。
本發(fā)明的目的是通過以下技術(shù)方案來實現(xiàn)的基于路交換機的自適應(yīng)可變時間片包轉(zhuǎn)發(fā)調(diào)度方法,按圖3計算機程序流程圖,其調(diào)度方法的步驟如下步驟1創(chuàng)建進(jìn)程控制表,根據(jù)公式Q=R/2N,其中的Q時間片長度,R系統(tǒng)對響應(yīng)時間的要求N就緒隊列中的進(jìn)程數(shù),確定進(jìn)程Pi的時間片長,并初始化相關(guān)參數(shù);步驟2將進(jìn)程Pi送入隊列尾排隊,其中Pi代表路由交換機端口I的進(jìn)程;步驟3當(dāng)就緒隊列中的第一個進(jìn)程Pi得到CPU的控制權(quán)后,對數(shù)據(jù)包按路由表轉(zhuǎn)發(fā)操作;步驟4檢查進(jìn)程Pi的中斷狀態(tài)?若時間片用完則轉(zhuǎn)到步驟5否則轉(zhuǎn)到步驟6
步驟5按公式Q′=Q+t確定進(jìn)程Pi新的時間片,其中Q′進(jìn)程調(diào)整后時間片長,Q進(jìn)程調(diào)整前時間片長,t=p*R/N/128t時間片增量p網(wǎng)絡(luò)端口的優(yōu)先數(shù);步驟6按公式Q′=Q-t確定進(jìn)程Pi新的時間片;步驟7檢查進(jìn)程Pi新的時間片長Q′>0,進(jìn)程Pi的時間片已用完,轉(zhuǎn)到步驟8,否則轉(zhuǎn)到步驟2步驟8結(jié)束進(jìn)程Pi。
本發(fā)明調(diào)度方法的基本原理如下基于路由交換機自適應(yīng)可變時間片包轉(zhuǎn)發(fā)調(diào)度方法可以消除傳統(tǒng)多級隊列進(jìn)程調(diào)度方法所導(dǎo)致的缺陷。其基本原理是見附圖2所示系統(tǒng)將所有的在Rx端口緩存區(qū)有等待轉(zhuǎn)發(fā)數(shù)據(jù)包的作業(yè)進(jìn)程(每端口無論緩存區(qū)有多少個數(shù)據(jù)包,系統(tǒng)僅生成一個作業(yè)進(jìn)程)按先來先服務(wù)(First Come First service,F(xiàn)CFS)的原則排成一個就緒隊列,每次調(diào)度時把CPU分配給隊首進(jìn)程,并令其執(zhí)行一個時間片。時間片的大小是可變的,系統(tǒng)可根據(jù)系統(tǒng)中的就緒作業(yè)隊列進(jìn)程數(shù)來確定時間片的大小。時間片的確定按(Q=R/2N Q時間片長度 R系統(tǒng)對響應(yīng)時間的要求 N就緒隊列中的進(jìn)程數(shù))。
進(jìn)程在給定的時間片用完時或端口緩存區(qū)已無數(shù)據(jù)包時,由系統(tǒng)發(fā)出時鐘中斷或系統(tǒng)中斷,中斷處理程序根據(jù)中斷狀態(tài)來停止該進(jìn)程的執(zhí)行,并根據(jù)時間片的使用狀態(tài)和端口的優(yōu)先級調(diào)整該進(jìn)程時間片的長短,(調(diào)整策略按Q′=Q±t t=p*R/N/128 Q′進(jìn)程調(diào)整后時間片長 Q進(jìn)程調(diào)整前時間片長 t時間片增量 p網(wǎng)絡(luò)端口的優(yōu)先數(shù))當(dāng)Q′≤0該進(jìn)程消亡;當(dāng)Q′>0將該進(jìn)程送就緒隊列的末尾,等待下一次執(zhí)行;然后,把處理機分配給就緒隊列中新的隊首進(jìn)程,同時也讓它執(zhí)行一個時間片這樣就可以保證隊列中的所有進(jìn)程,在給定的時間(人所能接受的等待時間)內(nèi),均能獲得一個時間片的處理機執(zhí)行時間.
本發(fā)明基于路由交換機的自適應(yīng)可變時間片進(jìn)程調(diào)度方法與傳統(tǒng)的多級隊列進(jìn)程調(diào)度方法相比較有以下有益效果(1)在系統(tǒng)初始化時對所有的在Rx端口緩存區(qū)有等待轉(zhuǎn)發(fā)數(shù)據(jù)包的進(jìn)程按就緒隊列進(jìn)程的個數(shù)分別分配給予不同的時間片,從而保證路由交換機任一Rx端口的數(shù)據(jù)都能獲得轉(zhuǎn)發(fā),令路由交換機各端口轉(zhuǎn)發(fā)數(shù)據(jù)包的平等響應(yīng)權(quán)得以實現(xiàn)。減小了包轉(zhuǎn)發(fā)的延遲。
(2)傳統(tǒng)方法中每一個轉(zhuǎn)發(fā)數(shù)據(jù)包生成一個進(jìn)程,而該方法在一個時間片里可處理若干個轉(zhuǎn)發(fā)數(shù)據(jù)包,系統(tǒng)因此節(jié)省了N-1次負(fù)責(zé)釋放接受、發(fā)送報文的緩沖區(qū)處理程序所需的時間。同時作業(yè)進(jìn)程在一個時間片結(jié)束后并不是立即消亡,因此節(jié)省了N-1次創(chuàng)建和結(jié)束進(jìn)程所花的時間從而提高了系統(tǒng)吞吐率。比傳統(tǒng)的多級隊列進(jìn)程調(diào)度方法效率提高約25%。
(3)作業(yè)進(jìn)程在一個時間片結(jié)束后并不是立即消亡,而是由閉環(huán)智能系統(tǒng)根據(jù)數(shù)據(jù)包到達(dá)情況和系統(tǒng)負(fù)載狀態(tài)自動的增加或減少時間片長,從而令路由交換機各端口能自動的調(diào)節(jié)帶寬以適應(yīng)負(fù)載環(huán)境。
(4)對于端口的優(yōu)先級處理,該方法通過增加或減少時間片梯度(即采用加快發(fā)散和收斂速度的方法)改善端口的傳輸環(huán)境,提高端口吞吐率的方法,將端口傳輸優(yōu)先級問題拓展為優(yōu)化端口傳輸環(huán)境方式加以解決。
上述幾個要點有效的消除了采用多級隊列進(jìn)程調(diào)度方法的路由交換設(shè)備過載時的性能下降問題。
四
圖1路由交換機傳統(tǒng)包轉(zhuǎn)發(fā)方法模型示意圖;圖中RxBuffen 接收緩沖區(qū);TxBuffen 發(fā)送緩沖區(qū);RxISR 接收中斷處理程序;TxISR 發(fā)送中斷處理程序;Forword Process轉(zhuǎn)發(fā)線程圖2基于路由交換機的自適應(yīng)可變時間片包轉(zhuǎn)發(fā)方法模型示意圖;圖3路由交換機自適應(yīng)可變時間片包轉(zhuǎn)發(fā)調(diào)度方法的計算機程序流程圖。
五具體實施例方式實例環(huán)境硬件部分由2臺FlexHammer24機(其中一臺作對比機,一臺用作以FlexHammer24機的硬件為基礎(chǔ)的試驗樣機)和一臺IXIA400T性能測試設(shè)備構(gòu)成。
軟件部分Cisco TFTP Server,基于mcp8240 CPU的匯編軟件,Turbo C Ver 3.0,EST的嵌人式微處理器開發(fā)系統(tǒng),實現(xiàn)1.首先將FlexHammer24機的Console口與PC機的串口1連接。
2.打開交換機FlexHammer24和PC機的電源。
3.啟動按裝在Pc機上的Cisco TFTP Server。
4.啟動windows2000操作系統(tǒng)自帶的超級終端以默認(rèn)配置方式或者TCP/IP網(wǎng)絡(luò),用有管理員權(quán)限的用戶登錄進(jìn)入配置模式。
5.輸入命令upload ftp hammeros<A.B.C.D><username><password><filename>
其中<A.B.C.D>為hammeros文件上傳的主機的IP地址,<username>是ftp的用戶名,<password>是該用戶的密碼,<filename>為上傳的文件名稱、類型為hammeros的文件。這樣獲得FlexHammer24機的二進(jìn)制代碼的系統(tǒng)軟件hammeros.bin。
6.用EST的嵌人式微處理器開發(fā)系統(tǒng)的反匯編軟件將二進(jìn)制代碼的hammeros.bin文件編譯成匯編語言程序hammeros.asm。
7.分析、整理FlexHammer24機系統(tǒng)原程序確定代表各端口優(yōu)先級的標(biāo)識符pi的存儲位置,以及IOS里處理數(shù)據(jù)包轉(zhuǎn)發(fā)的中斷程序、進(jìn)程生成參數(shù)。
8.對FlexHammer24機的IOS進(jìn)程隊列部分程序改造,將就緒進(jìn)程分成兩個隊列;處理數(shù)據(jù)包轉(zhuǎn)發(fā)的中斷程序生成的進(jìn)程放在Q2隊列里,其他進(jìn)程均放到Q1隊列里,就緒隊列Q1的優(yōu)先級高于隊列Q2。
9.以Turbo C程序語言按基于路由交換機的自適應(yīng)可變時間片進(jìn)程調(diào)度方法給出的流程編寫原程序,再用Turbo C程序?qū)⒃绦蚓幾g成二進(jìn)制代碼的進(jìn)程調(diào)度程序文件Jcdd.bin,10.用EST的嵌人式微處理器開發(fā)系統(tǒng)的反匯編軟件將二進(jìn)制代碼的Jcdd.bin文件編譯成匯編語言原程序Jcdd.asm,再將Jcdd.asm插入hammeros.asm。
11.使用EST的嵌人式微處理器開發(fā)系統(tǒng)對hammeros.asm進(jìn)行仿真調(diào)試后,用匯編軟件將hammeros.asm原程序編譯成二進(jìn)制代碼的hammeros.bin原程序文件。
12.用有管理員權(quán)限的用戶名登錄進(jìn)入FlexHammer24機配置模式,輸入命令donwload ftp hammeros<A.B.C.D><username><password><hammeros.bin>
下載成功后,令FlexHammer24機重新啟動。
權(quán)利要求
1.基于路由交換機的自適應(yīng)可變時間片包轉(zhuǎn)發(fā)調(diào)度方法,其調(diào)度方法步驟如下步驟1創(chuàng)建進(jìn)程控制表,根據(jù)公式Q=R/2N,其中的Q時間片長度,R系統(tǒng)對響應(yīng)時間的要求N就緒隊列中的進(jìn)程數(shù),確定進(jìn)程Pi的時間片長,并初始化相關(guān)參數(shù);步驟2將進(jìn)程Pi送入隊列尾排隊,其中Pi代表路由交換機端口I的進(jìn)程;步驟3當(dāng)就緒隊列中的第一個進(jìn)程Pi得到CPU的控制權(quán)后,對數(shù)據(jù)包按路由表轉(zhuǎn)發(fā)操作;步驟4檢查進(jìn)程Pi的中斷狀態(tài)?若時間片用完則轉(zhuǎn)到步驟5否則轉(zhuǎn)到步驟6步驟5按公式Q′=Q+t確定進(jìn)程Pi新的時間片,其中Q′進(jìn)程調(diào)整后時間片長,Q進(jìn)程調(diào)整前時間片長,t=p*R/N/128t時間片增量p網(wǎng)絡(luò)端口的優(yōu)先數(shù);步驟6按公式Q′=Q-t確定進(jìn)程Pi新的時間片;步驟7檢查進(jìn)程Pi新的時間片長Q′>0,進(jìn)程Pi的時間片已用完,轉(zhuǎn)到步驟8,否則轉(zhuǎn)到步驟2步驟8結(jié)束進(jìn)程Pi。
全文摘要
本發(fā)明公開了一種基于路由交換機的自適應(yīng)可變時間片包轉(zhuǎn)發(fā)調(diào)度方法,該方法通過改進(jìn)了系統(tǒng)的任務(wù)調(diào)度方法,簡化了包轉(zhuǎn)發(fā)過程中的系統(tǒng)調(diào)用,保證CPU資源在包轉(zhuǎn)發(fā)過程中各端口的多個任務(wù)之間能夠合理分配時間,從而有效地提高了路由交換機的吞吐量,比傳統(tǒng)的多極隊列進(jìn)程調(diào)度方法效率提高約25%,并且減小了包轉(zhuǎn)發(fā)的延遲以及路由交換機各端口轉(zhuǎn)發(fā)數(shù)據(jù)包的平等權(quán)。
文檔編號H04L12/56GK1976314SQ20061009798
公開日2007年6月6日 申請日期2006年11月24日 優(yōu)先權(quán)日2006年11月24日
發(fā)明者李金方 申請人:河海大學(xué)