專利名稱:測量探針的多任務(wù)調(diào)度方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)通信和網(wǎng)絡(luò)測量技術(shù),尤其涉及一種測量探針的多任務(wù)調(diào)
度方法。
背景技術(shù):
目前在網(wǎng)絡(luò)通信和網(wǎng)絡(luò)測量技術(shù)中,要測量多個網(wǎng)段的流量和性能數(shù)據(jù)或 對網(wǎng)絡(luò)上多臺服務(wù)器進(jìn)行性能測試,可每個網(wǎng)段都放置一臺測量探針(或稱監(jiān)
測主才凡)。
如果要求一臺測量探針上同時執(zhí)行多個指定任務(wù),比如要對多個網(wǎng)段進(jìn)行 流量采集與統(tǒng)計分析,或者對網(wǎng)絡(luò)中某些服務(wù)器進(jìn)行性能測試,然后把這些測 試結(jié)果發(fā)送到另外指定的服務(wù)器上,通常采用的方法是,先執(zhí)行完一個任務(wù), 再接收另外的任務(wù),這樣循環(huán)下去。這種方法的效率不高,尤其是在執(zhí)行被動 測試任務(wù)的時候,更需要一段長的測試時間,這樣就不能保證響應(yīng)任務(wù)的實時 性。
發(fā)明內(nèi)容
針對現(xiàn)有技術(shù)的缺點,本發(fā)明的目的是提供一種測量探針的多任務(wù)調(diào)度方 法,解決了現(xiàn)有測量探針不能同時接收多個測量任務(wù)管理主機(jī)下達(dá)的測試任務(wù)
的問題。
為了實現(xiàn)上述目的,本發(fā)明的技術(shù)方案為 一種測量探針的多任務(wù)調(diào)度方 法,所述測量探針使用多線程技術(shù),線程間通過互斥鎖和條件變量進(jìn)行通訊以 實時接收并且響應(yīng)來自不同管理端發(fā)送過來的任務(wù)。
所述多線程包括接收任務(wù)線程和取出并且執(zhí)行任務(wù)線程,由接收任務(wù)線程 負(fù)責(zé)監(jiān)聽網(wǎng)絡(luò)上的多個管理端發(fā)送過來的測試任務(wù),并且把任務(wù)插入到任務(wù)隊列中,完成對測試任務(wù)的接收。
所述任務(wù)隊列是一 串保存任務(wù)信息的鏈表,線程通過互斥鎖對任務(wù)隊列進(jìn)
行添加或者刪除。
所述互斥鎖用來保證一段時間內(nèi)只有一個線程在執(zhí)行一段代碼,對互斥鎖 的操作包括創(chuàng)建鎖、上鎖、解鎖、查看鎖的狀態(tài)和刪除鎖。
所述條件變量被用來阻塞一個線程,當(dāng)條件不滿足時,線程解開相應(yīng)的互 斥鎖并等待條件發(fā)生變化, 一旦其它的某個線程改變了條件變量,它將通知相 應(yīng)的條件變量喚醒一個或多個正被此條件變量阻塞的線程,這些線程將重新鎖 定互斥鎖并重新測試條件是否滿足。
任務(wù)的接收包括如下步驟
(〗)接收到任務(wù)信息后,先判斷萬斥鎖是否打開,如果是鎖定的狀態(tài),則 休眠,如果是非鎖定狀態(tài),則先設(shè)為鎖定狀態(tài),然后把任務(wù)信息插到任務(wù)隊列 尾中,然后發(fā)個信號喚醒執(zhí)行任務(wù)線程;
(2)當(dāng)退出程序時,需要將互斥鎖釋放處理。
括如下步驟
(1) 當(dāng)任務(wù)對列中沒有任務(wù)的時候,線程處于阻塞狀態(tài),當(dāng)收到接收任務(wù) 線程的信號時,線程會被喚醒;
(2) 線程喚醒后,先判斷互斥鎖是否打開,如果是鎖定的狀態(tài),則休眠, 如果是非鎖定狀態(tài),則先設(shè)為鎖定狀態(tài),然后把頭一個任務(wù)取出,然后把互斥 鎖設(shè)為非鎖定狀態(tài),然后再開個進(jìn)程執(zhí)行任務(wù)。
與現(xiàn)有技術(shù)相比,本發(fā)明的方法能夠同時對多個網(wǎng)段進(jìn)行流量采集與統(tǒng)計 分析,或者同時對網(wǎng)絡(luò)中某些服務(wù)器進(jìn)行性能測試,大大縮短了測試時間,提 高了工作效率。
圖1是本發(fā)明的應(yīng)用環(huán)境示意圖。
具體實施例方式
下面結(jié)合附圖對本發(fā)明作進(jìn)一步的詳細(xì)說明。
請參閱圖1,在本發(fā)明的測量探針的多任務(wù)調(diào)度方法中,該測量探針使用多 線程技術(shù),線程間通過互斥鎖和條件變量進(jìn)行通訊,這樣可以實時接收并且響 應(yīng)來自不同測量任務(wù)管理主機(jī)(管理端)發(fā)送過來的任務(wù)。多線程包括接收任 務(wù)線程和取出并且執(zhí)行任務(wù)線程,由接收任務(wù)線程負(fù)責(zé)監(jiān)聽網(wǎng)絡(luò)上的多個測量 任務(wù)管理主機(jī)發(fā)送過來的測試任務(wù),并且把任務(wù)插入到任務(wù)隊列中,完成對測 試任務(wù)的接收。任務(wù)隊列是一串保存任務(wù)信息的鏈表,線程通過互斥鎖對任務(wù) 隊列進(jìn)行添加或者刪除。
互斥鎖用來保證一段時間內(nèi)只有一個線程在執(zhí)行一段代碼。對互斥鎖的操 作就有,創(chuàng)建鎖,上鎖,解鎖,查看鎖的狀態(tài),刪除鎖?;コ怄i一個明顯的缺
點是它只有兩種狀態(tài)鎖定和非鎖定。而所述條件變量通過允許線程阻塞和等 待另一個線程發(fā)送信號的方法彌補(bǔ)了互斥鎖的不足,它常和互斥鎖一起使用。 使用時,條件變量被用來阻塞一個線程,當(dāng)條件不滿足時,線程往往解開相應(yīng) 的互斥鎖,并等待條件發(fā)生變化。 一旦其它的某個線程改變了條件變量,它將 通知相應(yīng)的條件變量喚醒一個或多個正被此條件變量阻塞的線程。這些線程將 重新鎖定互斥鎖并重新測試條件是否滿足。 一般說來,條件變量被用來進(jìn)行線 程間的同步。
任務(wù)的接收包括如下步驟
(1) 接收到任務(wù)信息后,先判斷互斥鎖是否打開,如果是鎖定的狀態(tài),則 休眠,如果是非鎖定狀態(tài),則先設(shè)為鎖定狀態(tài),然后把任務(wù)信息插到任務(wù)隊列 尾中,然后發(fā)個信號喚醒執(zhí)行任務(wù)線程;
(2) 當(dāng)退出程序時,需要將互斥鎖釋放處理。
執(zhí)行任務(wù)線程是負(fù)責(zé)在任務(wù)隊列中取出任務(wù)然后執(zhí)行,包括如下步驟 (1)當(dāng)任務(wù)對列中沒有任務(wù)的時候,線程處于阻塞狀態(tài),當(dāng)收到接收任務(wù) 線程的信號時,線程會被喚醒。(2)線程喚醒后,先判斷互斥鎖是否打開,如果是鎖定的狀態(tài),則休眠, 如果是非鎖定狀態(tài),則先設(shè)為鎖定狀態(tài),然后把頭一個任務(wù)取出,然后把互斥 鎖設(shè)為非鎖定狀態(tài),然后再開個進(jìn)程執(zhí)行任務(wù)。
權(quán)利要求
1、一種測量探針的多任務(wù)調(diào)度方法,所述測量探針使用多線程技術(shù),線程間通過互斥鎖和條件變量進(jìn)行通訊以實時接收并且響應(yīng)來自不同管理端發(fā)送過來的任務(wù)。
2、 如權(quán)利要求1所述的測量探針的多任務(wù)調(diào)度方法,其特征在于,所述多 線程包括接收任務(wù)線程和取出并且執(zhí)行任務(wù)線程,由接收任務(wù)線程負(fù)責(zé)監(jiān)聽網(wǎng) 絡(luò)上的多個管理端發(fā)送過來的測試任務(wù),并且把任務(wù)插入到任務(wù)隊列中,完成 對測試任務(wù)的接收。
3、 如權(quán)利要求1所述的測量探針的多任務(wù)調(diào)度方法,其特征在于,所述任 務(wù)隊列是一串保存任務(wù)信息的鏈表,線程通過互斥鎖對任務(wù)隊列進(jìn)行添加或者 刪除。
4、 如權(quán)利要求1所述的測量探針的多任務(wù)調(diào)度方法,其特征在于,所述互 斥鎖用來保證一段時間內(nèi)只有一個線程在執(zhí)行一段代碼,對互斥鎖的操作包括 創(chuàng)建鎖、上鎖、解鎖、查看鎖的狀態(tài)和刪除鎖。
5、 如權(quán)利要求1所述的測量探針的多任務(wù)調(diào)度方法,其特征在于,所述條 件變量被用來阻塞一個線程,當(dāng)條件不滿足時,線程解開相應(yīng)的互斥鎖并等待 條件發(fā)生變化, 一旦其它的某個線程改變了條件變量,它將通知相應(yīng)的條件變 量喚醒一個或多個正^^皮此條件變量阻塞的線程,這些線程將重新鎖定互斥鎖并 重新測試條件是否滿足。
6、 如權(quán)利要求1所述的測量探針的多任務(wù)調(diào)度方法,其特征在于,任務(wù)的 接收包括如下步驟(1) 接收到任務(wù)信息后,先判斷互斥鎖是否打開,如果是鎖定的狀態(tài),則 休眠,如果是非鎖定狀態(tài),則先設(shè)為鎖定狀態(tài),然后把任務(wù)信息插到任務(wù)隊列 尾中,然后發(fā)個信號喚醒執(zhí)行任務(wù)線程;(2) 當(dāng)退出程序時,需要將互斥鎖釋放處理。
7、 如權(quán)利要求6所述的測量探針的多任務(wù)調(diào)度方法,其特征在于,所述執(zhí)行任務(wù)線程是負(fù)責(zé)在任務(wù)隊列中取出任務(wù)然后執(zhí)行,任務(wù)的執(zhí)行包括如下步驟(1) 當(dāng)任務(wù)對列中沒有任務(wù)的時候,線程處于阻塞狀態(tài),當(dāng)收到接收任務(wù) 線程的信號時,線程會被喚醒;(2) 線程喚醒后,先判斷互斥鎖是否打開,如果是鎖定的狀態(tài),則休眠, 如果是非鎖定狀態(tài),則先設(shè)為鎖定狀態(tài),然后把頭一個任務(wù)取出,然后把互斥 鎖設(shè)為非鎖定狀態(tài),然后再開個進(jìn)程執(zhí)行任務(wù)。
全文摘要
本發(fā)明公開了一種測量探針的多任務(wù)調(diào)度方法,所述測量探針使用多線程技術(shù),線程間通過互斥鎖和條件變量進(jìn)行通訊以實時接收并且響應(yīng)來自不同管理端發(fā)送過來的任務(wù)。本發(fā)明的方法能夠同時對多個網(wǎng)段進(jìn)行流量采集與統(tǒng)計分析,或者同時對網(wǎng)絡(luò)中某些服務(wù)器進(jìn)行性能測試,大大縮短了測試時間,提高了工作效率。
文檔編號H04L12/56GK101316193SQ20071002824
公開日2008年12月3日 申請日期2007年5月28日 優(yōu)先權(quán)日2007年5月28日
發(fā)明者吳楚均, 馬維旻 申請人:北京師范大學(xué)珠海分校