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