欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

多種互斥條件下的多模式測試系統(tǒng)及其方法

文檔序號:6395020閱讀:153來源:國知局
專利名稱:多種互斥條件下的多模式測試系統(tǒng)及其方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種計算機硬件測試系統(tǒng)及其方法,特別是涉及一種多種互斥條件下的多模式測試系統(tǒng)及其方法。
背景技術(shù)
計算機硬件測試的過程中,由于不同的硬件具有不同的特性,因此對每個硬件測試的線程之間的互斥要求也就不盡相同。有些測試項要求用戶參與測試(例如要求用戶敲擊鍵盤、鼠標等),用戶在同一時間只能處理一個這樣的測試項,所以這樣的測試項之間必須一個一個的互斥進行。有些測試項雖然針對的不是同一硬設(shè)備,但它們用到了同一個設(shè)備為其提供服務(wù),如Movie,Audio,由于都要使用聲卡,因此不能同時進行測試。還有些測試項在測試過程中,不允許同一設(shè)備上的其它所有測試項運行,如LPT,COM等串行的接口,多個測試項必須串行測試才可以。還有些測試項在測試過程中,不允許其它所有測試項同時運行,這一測試項必須獨占CPU進行測試,不允許有一點干擾。另外一些測試項沒有任何特殊的要求,只要與其它測試不沖突就可以進行測試了。
實際上在計算機硬件測試過程中,一些測試項并不是單單要求上面的一條就可以了,有些測試項既要求設(shè)備互斥,又要求用戶在測試過程中交互進行測試等。這樣測試項線程之間的調(diào)度就會比較復(fù)雜。如何控制測試線程,使它們之間不沖突,同時又能更好的測試出計算機的性能,是當前測試方法的重要發(fā)展方向。
現(xiàn)有的測試方法只是順序的進行測試,這樣測試項之間的關(guān)系就簡化了。有些測試程序?qū)y試項進行分類,分為交互的與非交互的,需要互斥的以及不需要互斥的等幾種情況。經(jīng)過分類后雖然線程調(diào)度的復(fù)雜度有所降低,但是實際情況下,計算機并不是這幺純粹的處理一系列的操作,它有可能同時處理幾個不同設(shè)備的交互和非交互的很多操作。這樣測試線程調(diào)度實現(xiàn)的方法雖然比較簡單,但它存在測試時間上的花費比較多的問題,因此整體性能以及準確度等都不是很理想。

發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于提供一種多種互斥條件下的多模式測試系統(tǒng)及其方法,可根據(jù)測試項的多種互斥測試要求進行多種模式的測試,從而保證了對硬件以及計算機整體性能的測試準確性。
為了實現(xiàn)上述目的,本發(fā)明提供了一種多種互斥條件下的多模式測試系統(tǒng),包括一等待模塊,包括一等待隊列,用以接收用戶所選的測試項;一臨時等待隊列,用以臨時存儲沖突測試項;一模式確定模塊,用以接收用戶輸入的測試模式;一測試模塊,其包括一運行隊列,該測試模塊對該運行隊列中的測試項進行測試;一變量控制模塊,其根據(jù)該測試模式以及用戶的選擇,開啟相應(yīng)的測試變量,控制該測試模塊的測試循環(huán)次數(shù);及一互斥判斷模塊,其提取該等待隊列以及該臨時等待隊列的測試項,并判斷其互斥條件,將允許測試項存儲至該運行隊列,將該沖突測試項存儲至該臨時等待隊列中等待調(diào)用。
上述的多種互斥條件下的多模式測試系統(tǒng),其特點在于,所述測試模式包括循環(huán)串行模式、循環(huán)并行模式、時間串行模式、時間并行模式、及循環(huán)并行擴展模式。
上述的多種互斥條件下的多模式測試系統(tǒng),其特點在于,所述循環(huán)串行模式還包括普通串行模式。
上述的多種互斥條件下的多模式測試系統(tǒng),其特點在于,所述循環(huán)并行模式還包括普通并行模式。
上述的多種互斥條件下的多模式測試系統(tǒng),其特點在于,所述互斥條件包括獨占、交互沖突、設(shè)備級沖突以及無任何沖突。
另外,本發(fā)明還提供了一種多種互斥條件下的多模式測試方法,包括如下步驟確定測試項,并根據(jù)該測試項確定測試模式;創(chuàng)建等待隊列、臨時等待隊列以及運行隊列,并將該測試項存儲至該等待隊列中;從該等待隊列以及該臨時等待隊列中提取測試項,同時判斷其互斥條件;根據(jù)該互斥條件將該當前測試項存儲至相應(yīng)的隊列;若測試項為當前允許測試項,則將其存儲至該運行隊列中;及若測試項為當前沖突測試項,則將其存儲至該臨時等待隊列中;及根據(jù)該測試模式對運行隊列中的測試項進行測試。
上述的多種互斥條件下的多模式測試方法,其特點在于,所述根據(jù)該互斥條件將該當前測試項存儲至相應(yīng)的隊列的步驟還包括若測試項為當前允許測試項,則將其存儲至該運行隊列中;及若測試項為當前沖突測試項,則將其存儲至該臨時等待隊列中。
上述的多種互斥條件下的多模式測試方法,其特點在于,還包括根據(jù)該測試項開啟控制變量,控制測試項的測試循環(huán)次數(shù)。
上述的多種互斥條件下的多模式測試方法,其特點在于,所述測試模式包括循環(huán)串行模式、循環(huán)并行模式、時間串行模式、時間并行模式、以及循環(huán)并行擴展模式。
上述的多種互斥條件下的多模式測試方法,其特點在于,所述互斥條件包括獨占、交互沖突、設(shè)備級沖突、無任何沖突。
本發(fā)明所提的多種互斥條件下的多模式測試系統(tǒng)及其測試方法,可以同時控制許多測試線程之間的互斥情況,不會出現(xiàn)測試沖突。同時兼顧了多種測試調(diào)度模式,能滿足用戶全方面的需要,其不但可以用于單項測試,而且可以針對不同的設(shè)備進行測試,還可以進行整體測試,多種測試模式,并使得運行結(jié)果更加精確的反映了實際的情況。
以下結(jié)合附圖和具體實施例對本發(fā)明進行詳細描述,但不作為對本發(fā)明的限定。


圖1是本發(fā)明所提的多種互斥條件下的多模式測試系統(tǒng)的模塊架構(gòu)圖;
圖2是本發(fā)明所提的多種互斥條件下的多模式測試方法的運作流程圖;及圖3是本發(fā)明根據(jù)互斥條件對測試線程進行處理的流程圖。
具體實施例方式
本發(fā)明涉及一種多種互斥條件下的多模式測試系統(tǒng)及其方法,首先由圖1說明本發(fā)明的系統(tǒng),該圖是本發(fā)明所提的系統(tǒng)的模塊架構(gòu)圖,如圖1所示,等待模塊110包括等待隊列111以及臨時等待隊列112,互斥判斷模塊150與等待模塊110以及模式確定模塊120相連,其判斷等待模塊110中測試項的互斥條件,根據(jù)判斷結(jié)果將允許測試項放入測試模塊130進行測試,否則將沖突測試項放入臨時等待隊列112中等待調(diào)用。變量控制模塊140根據(jù)用戶設(shè)定的控制變量控制測試模塊130中測試項的測試循環(huán)次數(shù),從而可根據(jù)測試項的多種互斥測試要求進行多種模式的測試。各模塊的詳細說明如下(1)等待模塊110,包括等待隊列111以及臨時等待隊列112,其中等待隊列111,其接收用戶所選的測試項;臨時等待隊列112,用以臨時存儲沖突測試項。
(2)模式確定模塊120,用以接收用戶輸入的測試模式,用戶根據(jù)選中的測試項選擇相應(yīng)的測試模式,測試模式包括循環(huán)串行模式(Loop SequentialMode)、循環(huán)并行模式(Loop Parallel Mode)、時間串行模式(Time SequentialMode)、時間并行模式(Time Parallel Mode)、及循環(huán)并行擴展模式(LoopParallel Extendable)。其中循環(huán)串行模式若循環(huán)次數(shù)為一次,則為普通串行模式(Common Sequential Mode);循環(huán)并行模式若循環(huán)次數(shù)為一次則為普通并行模式(Common Parallel Mode)。
如果是Loop Sequential Mode(包括Common Sequential Mode),由一個變量loopcount控制,當每次運行完一次時,loopcount增加一,當?shù)竭_用戶設(shè)定的次數(shù)時,運行結(jié)束,清空等待隊列、運行隊列、臨時等待隊列。如果是LoopParallel Mode(包括Common Parallel Mode)、Loop Parallel Extendable,則等待最慢的一個測試線程運行用戶設(shè)定的次數(shù)之后,結(jié)束。如果是Time SequentialMode,則開啟一個定時器Timer,以串行方式調(diào)度測試線程,當?shù)竭_用戶設(shè)定的時間后,運行終止,清空等待隊列、運行隊列、臨時等待隊列。如果是TimeParallel Mode,則開啟一個Timer,以并行方式調(diào)度測試線程,當?shù)竭_用戶設(shè)定的時間后,運行終止,清空等待隊列、運行隊列、臨時等待隊列。
(3)測試模塊130,其還包括一運行隊列131,該測試模塊用以對該運行隊列中的測試項進行測試。當用戶選擇中途停止測試時,給每個運行的線程發(fā)送消息,運行終止,清空等待隊列、運行隊列、臨時等待隊列。
(4)變量控制模塊140,其根據(jù)該測試模式以及用戶的設(shè)定,開啟相應(yīng)的變量,控制該測試模塊的測試循環(huán)次數(shù);及(5)互斥判斷模塊150,其提取該等待隊列以及該臨時等待隊列的測試項,并判斷其互斥條件,將互斥條件允許的測試項存儲至該運行隊列,將該沖突測試項存儲至該臨時等待隊列中等待調(diào)用。其中互斥條件是根據(jù)測試項返回的互斥信息,互斥條件共有四種,分別為無任何沖突(Exclusive With None)、設(shè)備級沖突(Exclusive With Device)、獨占(Exclusive With All)以及交互沖突。同時測試項還要返回交互情況的信息IsInteractive的值。
不同的互斥條件對應(yīng)不同的優(yōu)先級,Exclusive With All的測試項,不能與其它測試項一起運行,故優(yōu)先級最高;交互的測試項,同一時間只能運行一個這樣的測試項,它的優(yōu)先級其次;由于Exclusive With Device的測試項,一個設(shè)備只能運行一個測試項,它優(yōu)先級為第三;Exclusive With None的優(yōu)先級最低。
該互斥判斷模塊150從等待隊列111中取出一個測試項,如果測試項是Exclusive With All,那么它只能單獨運行,只有當運行隊列中沒有運行的測試項時,這個測試項才能被調(diào)度起來,同時進入等待狀態(tài),直到該測試項運行完畢,系統(tǒng)重新恢復(fù)為運行狀態(tài),否則,這個測試項仍在等待隊列111中。如果是IsInteractive的測試項,則先判斷運行隊列131中有沒有IsInteractive的運行的測試項,然后判斷它的設(shè)備級的互斥條件,決定它是否可以運行;如果測試項是Exclusive With Device,要對運行隊列131進行判斷,如果沒有同設(shè)備的運行的測試項,才能開啟線程運行這個測試項;如果運行著的測試線程,達到了最大線程數(shù),則進入等待狀態(tài),直到有測試線程運行完畢為止。
接著,通過圖2來說明本發(fā)明的流程,該圖是本發(fā)明所提的多種互斥條件下的多模式測試方法的運作流程圖。步驟210,首先確定測試項,并根據(jù)該測試項確定測試模式。測試模式包括循環(huán)串行模式(Loop Sequential Mode)、循環(huán)并行模式(Loop Parallel Mode)、時間串行模式(Time Sequential Mode)、時間并行模式(Time Parallel Mode)、及循環(huán)并行擴展模式(Loop ParallelExtendable)。
其中循環(huán)串行模式若循環(huán)次數(shù)為一次,則為普通串行模式(CommonSequential Mode);循環(huán)并行模式若循環(huán)次數(shù)為一次則為普通并行模式(Common Parallel Mode)。如果是Loop Sequential Mode(包括CommonSequential Mode),由一個變量loopcount控制,當每次運行完一次時,loopcount增加一,當?shù)竭_用戶設(shè)定的次數(shù)時,運行結(jié)束,清空等待隊列、運行隊列、臨時等待隊列。
如果是Loop Parallel Mode(包括Common Parallel Mode)、Loop ParallelExtendable,則等待最慢的一個測試線程,運行用戶設(shè)定的次數(shù)之后,結(jié)束運行;如果是Time Sequential Mode,開啟一個Timer,串行的調(diào)度測試線程,當?shù)竭_用戶設(shè)定的時間后,運行終止,清空等待隊列、運行隊列、臨時等待隊列;如果是Time Parallel Mode,開啟一個Timer,并行調(diào)度測試線程,當?shù)竭_用戶設(shè)定的時間后,運行終止,清空等待隊列、運行隊列、臨時等待隊列。
步驟220,然后創(chuàng)建等待隊列、臨時等待隊列以及運行隊列,并將等待隊列以及運行隊列初始化,將該測試項存儲至該等待隊列中,再根據(jù)該測試項開啟控制變量Timer或Itemcount,控制測試項的測試循環(huán)次數(shù)。
步驟230,將控制變量初始化,然后從該等待隊列以及臨時等待隊列中提取測試項,同時判斷其互斥條件。其中互斥條件是根據(jù)測試項返回的互斥信息,共有四種,分別為無任何沖突(Exclusive With None)、設(shè)備級沖突(ExclusiveWith Device)、獨占(Exclusive With All)以及交互沖突。同時測試項還要返回交互情況的信息IsInteractive的值。不同的互斥條件對應(yīng)不同的優(yōu)先級,Exclusive With All的測試項,不能與其它測試項一起運行,故優(yōu)先級最高;交互的測試項,同一時間只能運行一個這樣的測試項,它的優(yōu)先級其次;由于Exclusive With Device的測試項,一個設(shè)備只能運行一個測試項,它優(yōu)先級為第三;Exclusive With None的優(yōu)先級最低。
步驟240,根據(jù)該互斥條件將該當前測試項存儲至相應(yīng)的隊列(請參見圖3)。若測試項為當前允許測試項,則開啟線程運行這個測試項,并將其存儲至運行隊列中(步驟241);若測試項為當前沖突測試項,則將其存儲至臨時等待隊列中(步驟242)。
步驟250,再根據(jù)該測試模式對運行隊列中的測試項進行測試。如果測試項是Exclusive With All,那么它只能單獨運行,只有當運行隊列中沒有其它正在運行的測試項時,這個測試項才能被調(diào)度起來,同時進入等待狀態(tài),直到該測試項運行完畢,系統(tǒng)重新恢復(fù)為運行狀態(tài),否則,這個測試項仍在等待隊列中。如果是IsInteractive的測試項,則先判斷運行隊列中有沒有IsInteractive的運行的測試項,然后判斷它的設(shè)備級的互斥條件,決定它是否可以運行;如果測試項是Exclusive With Device,要對運行隊列進行判斷,如果沒有同設(shè)備的運行的測試項,才能開啟線程運行這個測試項;如果運行著的測試線程,達到了最大線程數(shù),同時進入等待狀態(tài),直到有測試線程運行完畢為止。
下面以循環(huán)串行模式為例對本發(fā)明進行詳細說明。
當前測試項為Memory Walking 0,Memory Walking 1,Memory MarchR(Excliusive with none),每個測試項要求開啟2個線程進行測試,Keyboard,Mouse(Interative),每個測試項要求開啟1個線程進行測試,VideoColor Purity,Video DAC Address,Video Mode,Video Direct(Interative),每個測試項要求開啟2個線程,用戶選擇Loop Sequential Mode進行測試,最大線程數(shù)為9999,要求運行10個Loop的情況下,調(diào)度如下將用戶選擇的Memory Walking 0,Memory Walking 1等測試項,以及它們設(shè)定的線程數(shù)放入等待隊列中,等候被系統(tǒng)調(diào)度,將Loopcount設(shè)為0,準備測試。
從臨時等待隊列中取出一個測試項的一個線程,判斷它的互斥條件,如果可以運行,將其線程數(shù)減一,當線程數(shù)為0時,將其從臨時等待隊列中刪除。如果臨時等待中沒有可以開啟的測試項線程,從等待隊列中取出一個測試項線程,判斷它的互斥條件,如果可以開啟,將其開啟,放入運行隊列,否則將該測試項放入臨時等待隊列中。循環(huán)判斷,直到臨時等待隊列,等待隊列為空時,等待。當運行隊列為空時,將Loopcount增加一,重新調(diào)度線程的下一次運行。如果Loopcount達到10次,程序運行結(jié)束。
運行結(jié)果為Memory Walking 0,Memory Walking 1,Memory March R的2個線程,Keyboard的1個線程,被開啟運行,當交互線程Keyboard結(jié)束后Mouse被開啟,然后陸續(xù)是設(shè)備級交互線程Video Color Purity,Video DACAddress,Video Mode,Video Direct一個一個線程被開啟運行,一次Loop結(jié)束,下一次循環(huán)又從Memory Walking 0開始運行,直到10次Loop,測試結(jié)束,顯示測試信息。
下面以循環(huán)并行模式為例,對本發(fā)明進行詳細說明。
當前測試項包括Memory Walking 0,Memory Walking 1,Memory MarchR(Exclusive with node),每個測試項要求開啟3個線程進行測試,Keyboard,Mouse(Interactive),每個測試項要求開啟2個線程進行測試,VideoColor Purity,Video DAC Address,Video Mode,Video Direct(Interactive),每個測試項要求開啟4個線程,用戶選擇Loop Parallel Mode進行測試,要求運行10次,最大線程數(shù)為9999的情況下,調(diào)度如下將用戶選擇的Memory Walking 0,Memory Walking 1等測試項,以及它們設(shè)定的線程數(shù)放入等待隊列中,等候被系統(tǒng)調(diào)度,將Loopcount設(shè)為0,準備測試。
從臨時等待隊列中取出一個測試項的一個線程,判斷它的互斥條件,如果可以運行,將其線程數(shù)減一,當線程數(shù)為0時,將其從臨時等待隊列中刪除。如果臨時等待中沒有可以開啟的測試項線程,從等待隊列中取出一個測試項線程,判斷它的互斥條件,如果可以開啟,將其開啟,放入運行隊列,否則將該測試項放入臨時等待隊列中。當?shù)却犃械竭_隊尾時,下一次循環(huán)又從等隊列的頭開始,Loopcount增加一,直到10次。當臨時等待隊列為空時,等待運行隊列中測試項結(jié)束后,測試結(jié)束。
運行結(jié)果為Memory Walking 0,Memory Walking 1等Exclusive with none的測試項的每個線程運行10次的同時,Keyboard,Mouse,Video Color Purity等交互的測試項的每個線程依次運行10次。
下面以時間串行模式為例對本發(fā)明進行詳細說明。
當前測試項為包括Storage HardDisk Funnel Read,Storage HardDiskRandom Read,(Exclusive with none),每個測試項要求開啟2個線程,MoviePlay,Mouse(Interactive),每個測試項要求開啟2個線程,LPT ECPModeReadWrite,LPT ExtenalLoopback,LPT SPPMode ReadWrite(Exclusive withdevice),每個測試項要求開啟2個測試線程。用戶選擇Time Sequential Mode運行測試,最大線程數(shù)為9999的情況下,調(diào)度如下將用戶選擇的Storage HardDisk Funnel Read,Storage HardDisk RandomRead等測試項,以及它們設(shè)定的線程數(shù)放入等待隊列中,等候被系統(tǒng)調(diào)度,將Loopcount設(shè)為0,開啟一個Timer,設(shè)定結(jié)束運行時間,準備測試。
然后從臨時等待隊列中取出一個測試項的一個線程,判斷它的互斥條件,如果可以運行,將其線程數(shù)減一,當線程數(shù)為0時,將其從臨時等待隊列中刪除。如果臨時等待中沒有可以開啟的測試項線程,從等待隊列中取出一個測試項線程,判斷它的互斥條件,如果可以開啟,將其開啟,放入運行隊列,否則將該測試項放入臨時等待隊列中。循環(huán)判斷,直到臨時等待隊列,等待隊列為空時,等待。當運行隊列為空時,將Loopcount增加一,重新調(diào)度線程的下一次運行。當Timer到時時,發(fā)送消息,將運行隊列中的每一線程結(jié)束,結(jié)束測試。
運行結(jié)果為Storage HardDisk Funnel Read,Storage HardDisk Random Read的2個線程,Movie Play,LPT ECPMode ReadWrite的1個線程,被開啟運行,當交互線程Movie Play結(jié)束后Mouse被開啟。當LPT ECPMode ReadWrite運行結(jié)束后,LPT ExtenalLoopback,LPT SPPMode ReadWrite一次運行。這到一次Loop結(jié)束,下一次循環(huán)又從Storage HardDisk Funnel Read開始運行,直到10次Loop,測試結(jié)束,顯示測試信息。
下面以時間并行模式為例,對本發(fā)明進行詳細說明。
當前測試項為Storage HardDisk Funnel Read,Storage HardDisk RandomRead(Exclusive with none),每個測試項要求開啟2個線程,MoviePlay,Mouse(Interacitve),每個測試項要求開啟2個線程,LPT ECPModeReadWrite,LPT ExtenalLoopback,LPT SPPMode ReadWrite(Exclusive withdevice),每個測試項要求開啟2個測試線程。用戶選擇Time Parallel Mode運行測試,最大線程數(shù)為9999的情況下,調(diào)度如下將用戶選擇的Storage HardDisk Funnel Read,Storage HardDisk RandomRead等測試項,以及它們設(shè)定的線程數(shù)放入等待隊列中,等候被系統(tǒng)調(diào)度,將Loopcount設(shè)為0,開啟一個Timer,設(shè)定結(jié)束運行時間,準備測試。
從臨時等待隊列中取出一個測試項的一個線程,判斷它的互斥條件,如果可以運行,將其線程數(shù)減一,當線程數(shù)為0時,將其從臨時等待隊列中刪除。如果臨時等待中沒有可以開啟的測試項線程,從等待隊列中取出一個測試項線程,判斷它的互斥條件,如果可以開啟,將其開啟,放入運行隊列,否則將該測試項放入臨時等待隊列中。當?shù)却犃械竭_列尾時,下一次循環(huán)又從等隊列的頭開始,Loopcount增加一,直到Timer到時時,將所有的運行線程結(jié)束掉,將臨時等待隊列、運行隊列清空,測試結(jié)束。
運行結(jié)果Storage HardDisk Funnel Read,Storage HardDisk Random Read等Exclusive with none的測試項的每個線程運行10次的同時,MoviePlay,Mouse交互的測試項線程依次運行,LPT ECPMode ReadWrite,LPTExtenalLoopback,LPT SPPMode ReadWrite也依次運行直到Timer到時為止。
下面循環(huán)串行模式為例,對本發(fā)明進行詳細說明。
當前測試項為Storage HardDisk Funnel Read,Storage HardDisk RandomRead,(Exclusive with none),每個測試項要求開啟3個線程,用戶選擇LoopSequential Mode進行測試,要求運行10次,最大線程數(shù)為4的情況下,調(diào)度如下將用戶選擇的Storage HardDisk Funnel Read,Storage HardDisk RandomRead等測試項,以及它們設(shè)定的線程數(shù)放入等待隊列中,等候被系統(tǒng)調(diào)度,將Loopcount設(shè)為0,準備測試。
從臨時等待隊列中取出一個測試項的一個線程,判斷它的互斥條件,如果可以運行,將其線程數(shù)減一,當線程數(shù)為0時,將其從臨時等待隊列中刪除。如果臨時等待中沒有可以開啟的測試項線程,從等待隊列中取出一個測試項線程,判斷它的互斥條件,如果可以開啟,將其開啟,放入運行隊列,否則將該測試項放入臨時等待隊列中。當開始的線程數(shù)達到4時,等待,直到有線程結(jié)束,才可以調(diào)度。當?shù)却犃械竭_隊尾時,下一次循環(huán)又從等隊列的頭開始,Loopcount增加一,直到10次。當臨時等待隊列為空時,等待運行隊列中測試項結(jié)束后,測試結(jié)束。
運行結(jié)果為Storage HardDisk Funnel Read三個線程和Storage HardDiskRandom Read的一個線程同時運行,當有一個線程結(jié)束后,Storage HardDiskRandom Read的第二個線程才可以運行,當有一個線程結(jié)束后,StorageHardDisk Random Read的第三個線程才可以運行,一次Loop結(jié)束,Loopcount增加一,直到10次。
下面以循環(huán)并行模式為例,對本發(fā)明進行詳細說明。
當前測試項為Memory Walking 0,Memory Bit stuct,MultiCPU,(Exclusivewith none),每個測試項要求開啟2個測試線程,最大線程數(shù)為9999,用戶選擇Loop Parallel Extendable運行測試,要求循環(huán)10次,調(diào)度的情況如下將用戶選擇的Memory Walking 0,Memory Bit stuct,MultiCPU等測試項,以及它們設(shè)定的線程數(shù)放入等待隊列中,等候被系統(tǒng)調(diào)度,將Loopcount設(shè)為0,將ItemCount值設(shè)為0,準備測試。
從臨時等待隊列中取出一個測試項的一個線程,判斷它的互斥條件,如果可以運行,將其線程數(shù)減一,當線程數(shù)為0時,將其從臨時等待隊列中刪除。如果臨時等待中沒有可以開啟的測試項線程,從等待隊列中取出一個測試項線程,判斷它的互斥條件,如果可以開啟,將其開啟,放入運行隊列,否則將該測試項放入臨時等待隊列中。每開啟一個線程,將ItemCount增加一。當?shù)却犃械竭_列尾時,等待。每個開啟的測試線程內(nèi)部運行完10此后,ItemCount減一。當ItemCount為0時,發(fā)送消息,調(diào)度運行隊列中的線程結(jié)束運行。
運行結(jié)果Memory Walking 0,Memory Bit stuct,MultiCPU的6個測試線程同時運行,直到最慢的Memory Walking 0運行10此后,運行結(jié)束。
當然,本發(fā)明還可有其它多種實施例,在不背離本發(fā)明精神及其實質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護范圍。
權(quán)利要求
1.一種多種互斥條件下的多模式測試系統(tǒng),包括一等待模塊,包括一等待隊列,用以接收用戶所選的測試項;一臨時等待隊列,用以臨時存儲沖突測試項;一模式確定模塊,用以接收用戶輸入的測試模式;一測試模塊,其包括一運行隊列,該測試模塊對該運行隊列中的測試項進行測試;一變量控制模塊,其根據(jù)該測試模式以及用戶的選擇,開啟相應(yīng)的測試變量,控制該測試模塊的測試循環(huán)次數(shù);及一互斥判斷模塊,其提取該等待隊列以及該臨時等待隊列的測試項,并判斷其互斥條件,將允許測試項存儲至該運行隊列,將該沖突測試項存儲至該臨時等待隊列中等待調(diào)用。
2.根據(jù)權(quán)利要求1所述的多種互斥條件下的多模式測試系統(tǒng),其特征在于,所述測試模式包括循環(huán)串行模式、循環(huán)并行模式、時間串行模式、時間并行模式、及循環(huán)并行擴展模式。
3.根據(jù)權(quán)利要求2所述的多種互斥條件下的多模式測試系統(tǒng),其特征在于,所述循環(huán)串行模式還包括普通串行模式。
4.根據(jù)權(quán)利要求2所述的多種互斥條件下的多模式測試系統(tǒng),其特征在于,所述循環(huán)并行模式還包括普通并行模式。
5.根據(jù)權(quán)利要求1所述的多種互斥條件下的多模式測試系統(tǒng),其特征在于,所述互斥條件包括獨占、交互沖突、設(shè)備級沖突以及無任何沖突。
6.一種多種互斥條件下的多模式測試方法,包括如下步驟確定測試項,并根據(jù)該測試項確定測試模式;創(chuàng)建等待隊列、臨時等待隊列以及運行隊列,并將該測試項存儲至該等待隊列中;從該等待隊列以及該臨時等待隊列中提取測試項,同時判斷其互斥條件;根據(jù)該互斥條件將該當前測試項存儲至相應(yīng)的隊列;若測試項為當前允許測試項,則將其存儲至該運行隊列中;及若測試項為當前沖突測試項,則將其存儲至該臨時等待隊列中;及根據(jù)該測試模式對運行隊列中的測試項進行測試。
7.根據(jù)權(quán)利要求6所述的多種互斥條件下的多模式測試方法,其特征在于,所述根據(jù)該互斥條件將該當前測試項存儲至相應(yīng)的隊列的步驟還包括若測試項為當前允許測試項,則將其存儲至該運行隊列中;及若測試項為當前沖突測試項,則將其存儲至該臨時等待隊列中。
8.根據(jù)權(quán)利要求6所述的多種互斥條件下的多模式測試方法,其特征在于,還包括根據(jù)該測試項開啟控制變量,控制測試項的測試循環(huán)次數(shù)。
9.根據(jù)權(quán)利要求6所述的多種互斥條件下的多模式測試方法,其特征在于,所述測試模式包括循環(huán)串行模式、循環(huán)并行模式、時間串行模式、時間并行模式、以及循環(huán)并行擴展模式。
10.根據(jù)權(quán)利要求6所述的多種互斥條件下的多模式測試方法,其特征在于,所述互斥條件包括獨占、交互沖突、設(shè)備級沖突、無任何沖突。
全文摘要
本發(fā)明涉及一種多種互斥條件下的多模式測試系統(tǒng)及其方法,首先確定測試項,并根據(jù)該測試項確定測試模式,然后創(chuàng)建等待隊列、臨時等待隊列以及運行隊列,并將該測試項存儲至等待隊列中,從等待隊列及臨時等待隊列中提取測試項,互斥判斷模塊根據(jù)互斥條件,若測試項為當前允許測試項,則將其存儲至運行隊列中,若測試項為當前沖突測試項,則將其存儲至臨時等待隊列中,最后根據(jù)該測試模式對運行隊列中的測試項進行測試。
文檔編號G06F9/46GK1684042SQ20041003116
公開日2005年10月19日 申請日期2004年4月13日 優(yōu)先權(quán)日2004年4月13日
發(fā)明者劉文涵, 宋建福, 吳健 申請人:英業(yè)達股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
黑水县| 开平市| 温泉县| 安西县| 宣威市| 建阳市| 景东| 潞西市| 台江县| 铁岭市| 麟游县| 收藏| 桦川县| 施甸县| 马公市| 宁安市| 武胜县| 西吉县| 福贡县| 星子县| 合肥市| 寻甸| 青田县| 咸宁市| 垣曲县| 元阳县| 临江市| 建水县| 新安县| 龙山县| 张北县| 息烽县| 昭苏县| 井冈山市| 肇庆市| 江达县| 城市| 陇川县| 德格县| 新兴县| 利辛县|