專利名稱:基于鏈表的隊列調(diào)度方法與裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及隊列調(diào)度技術(shù),尤其涉及一種基于鏈表的多種調(diào)度技術(shù)混合的隊列調(diào) 度方法與裝置。
背景技術(shù):
隊列調(diào)度,即隊列通過某種觸發(fā)檢查(比如接收到授權(quán)觸發(fā)等),仲裁隊列的出 隊條件,按照一定的規(guī)則調(diào)度隊列有序的出隊。常用的調(diào)度算法主要有輪詢(RR,Round Robin)調(diào)度算法和嚴(yán)格優(yōu)先級(SP,Strict Priority)調(diào)度算法。輪詢調(diào)度算法的實現(xiàn)原理是按照一定的順序逐個、循環(huán)輪詢隊列出隊。在每個時 鐘周期調(diào)度一個隊列出隊,然后在下一個時鐘周期輪詢下一個隊列調(diào)度出隊。而嚴(yán)格優(yōu)先 級調(diào)度算法是給隊列設(shè)定不同的優(yōu)先級,每次調(diào)度最高優(yōu)先級的隊列出隊,低優(yōu)先級的隊 列只有在高優(yōu)先級隊列不滿足出隊條件后才能得到出隊調(diào)度。目前,針對多優(yōu)先級、多隊列輸出調(diào)度時,通常的處理方法是對相同優(yōu)先級的隊列 用一個先入先出(FIFO,F(xiàn)irst Input First Output)隊列進行緩存排隊,然后在不同優(yōu)先 級排隊FIFO間采用SP嚴(yán)格優(yōu)先級調(diào)度輸出。由于FIFO的原理是先進先得到服務(wù),同一隊列可以反復(fù)進入FIFO排隊,在某一隊 列流量較大時,就會反復(fù)出現(xiàn)在FIFO中排隊,這就會使得同一優(yōu)先級中低流量的隊列很長 一段時間都得不到服務(wù),只有等到高流量的隊列反復(fù)出隊很多次后才能輪到。這就體現(xiàn)不 出對于同一優(yōu)先級隊列應(yīng)該公平輪詢出隊的思想,造成了出隊不公。另一個問題是當(dāng)隊列 較多時,F(xiàn)IFO會出現(xiàn)溢出的風(fēng)險,為避免出現(xiàn)這種現(xiàn)象,需要配置較大的FIFO隊列,這將耗 費相當(dāng)巨大的RAM資源。出隊隊列數(shù)和隊列優(yōu)先級較多的情況如隊列數(shù)為32K個,隊列優(yōu) 先級為6個,為避免溢出現(xiàn)象的出現(xiàn),出隊排隊就至少需要6個深度為32K的FIFO,這無疑 耗費了大量的RAM資源,但上述所配置的RAM資源中的很大一部分并不能被使用,也造成了 嚴(yán)重的資源浪費。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種基于鏈表的隊列調(diào)度方法與裝置,在 保證嚴(yán)格優(yōu)先級調(diào)度算法的同時,能保證同一優(yōu)先級的隊列被公平地調(diào)度。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的一種基于鏈表的隊列調(diào)度方法,包括設(shè)置排隊鏈表中的地址數(shù)不少于隊列數(shù),并按隊列所屬優(yōu)先級將所述排隊鏈表劃 分為不同的排隊子鏈表,其中,所述排隊子鏈表中的地址數(shù)不少于所述排隊子鏈表所對應(yīng) 優(yōu)先級下的所有隊列數(shù);為各隊列設(shè)置標(biāo)識其是否在所述排隊鏈表中排隊的排隊鏈表標(biāo)識 符;以及在將符合排隊條件的隊列添入所述排隊鏈表之前,根據(jù)所述隊列的排隊鏈表標(biāo)識 符判斷所述隊列是否已在所述排隊鏈表中排隊,若已排隊則不作添入處理,若未排隊則將所述隊列添入所述隊列優(yōu)先級對應(yīng)的排隊子鏈表的鏈表尾部,并將所述隊列的排隊鏈表標(biāo) 識符修改為已在所述排隊鏈表中排隊的標(biāo)識。優(yōu)選地,所述方法還包括在所述排隊鏈表中選擇優(yōu)先級最高的非空排隊子鏈表進行隊列調(diào)度,優(yōu)先級最高 的非空排隊子鏈表調(diào)度完畢后選擇次優(yōu)先級的非空排隊子鏈表進行隊列調(diào)度。優(yōu)選地,排隊子鏈表進行隊列調(diào)度時,由鏈表的頭部開始,按鏈表指針指示進行隊 列調(diào)度。優(yōu)選地,所述方法還包括優(yōu)先級相同的已出隊的隊列與待入隊的隊列均符合排 隊條件時,優(yōu)先將已出隊的隊列添入所述排隊鏈表中。優(yōu)選地,所述排隊鏈表標(biāo)識符為1比特,0標(biāo)識已在所述排隊鏈表中排隊,1標(biāo)識未 在所述排隊鏈表中排隊;或者,0標(biāo)識未在所述排隊鏈表中排隊,1標(biāo)識已在所述排隊鏈表 中排隊。優(yōu)選地,每個隊列號對應(yīng)于排隊鏈表中的一個地址。一種基于鏈表的隊列調(diào)度裝置,包括設(shè)置單元,用于設(shè)置排隊鏈表中的地址不少于總隊列的數(shù)目,以及,為各隊列設(shè)置 標(biāo)識其是否在所述排隊鏈表中排隊的排隊鏈表標(biāo)識符;劃分單元,用于按隊列所屬優(yōu)先級將所述排隊鏈表劃分為不同的排隊子鏈表,其 中,所述排隊子鏈表中的地址不少于所述排隊子鏈表所對應(yīng)優(yōu)先級下的所有隊列數(shù);判斷單元,用于在將符合排隊條件的隊列添入所述排隊鏈表之前,根據(jù)所述隊列 的排隊鏈表標(biāo)識符判斷所述隊列是否已在所述排隊鏈表中排隊,若已排隊則不作添入處 理,若未排隊則觸發(fā)添入單元;添入單元,用于將所述隊列添入所述隊列優(yōu)先級對應(yīng)的排隊子鏈表的鏈表尾部, 并觸發(fā)標(biāo)識修改單元;以及標(biāo)識修改單元,用于將所述隊列的排隊鏈表標(biāo)識符修改為已在所述排隊鏈表中排 隊的標(biāo)識。優(yōu)選地,所述裝置還包括調(diào)度單元,用于在所述排隊鏈表中選擇優(yōu)先級最高的排隊子鏈表進行隊列調(diào)度, 優(yōu)先級最高的排隊子鏈表調(diào)度完畢后選擇次優(yōu)先級最高的排隊子鏈表進行隊列調(diào)度。優(yōu)選地,所述調(diào)度單元排隊子鏈表進行隊列調(diào)度時,由鏈表的頭部開始,按鏈表指 針指示進行隊列調(diào)度。優(yōu)選地,所述添入單元在優(yōu)先級相同的已出對的隊列與入對的隊列均符合排隊條 件時,優(yōu)先將已出對的隊列添入所述排隊鏈表中。優(yōu)選地,每個隊列號對應(yīng)于排隊鏈表中的一個地址。本發(fā)明中,按隊列數(shù)量設(shè)置排隊鏈表的地址數(shù),使排隊鏈表的地址數(shù)不少于隊列 數(shù)量,再在排隊鏈表中按隊列的優(yōu)先級設(shè)置不同的排隊子鏈表,隊列入對時,按隊列優(yōu)先級 選擇對應(yīng)的排隊子鏈表,在添入排隊子鏈表之前,判斷該隊列是否已在排隊子鏈表中排隊, 若排隊則不再添入到排隊子鏈表中,否則添入。調(diào)度時,在排隊鏈表中選取優(yōu)先級最高的非 空排隊子鏈表,從鏈表的頭部開始,按鏈表指針指示進行隊列調(diào)度,所選的非空排隊子鏈表 中的隊列調(diào)度完畢后,選取次級優(yōu)先級的非空排隊子鏈表進行隊列調(diào)度。本發(fā)明在處理同
5優(yōu)先級隊列時,按先入先出的方式進行調(diào)度,但對于已在排隊鏈表中排隊的隊列而言,不可 能再被添入到排隊鏈表中,這樣保證了同優(yōu)先級隊列調(diào)度時的公平性。
圖1為本發(fā)明基于鏈表的隊列調(diào)度方法的流程圖;圖2本發(fā)明隊列添入排隊子鏈表的結(jié)構(gòu)示意圖;圖3為本發(fā)明基于鏈表的隊列調(diào)度裝置的組成結(jié)構(gòu)示意圖。
具體實施例方式本發(fā)明的基本思想是按隊列數(shù)量設(shè)置排隊鏈表的地址數(shù),使排隊鏈表的地址數(shù) 不少于隊列數(shù)量,再在排隊鏈表中按隊列的優(yōu)先級設(shè)置不同的排隊子鏈表,隊列入對時,按 隊列優(yōu)先級選擇對應(yīng)的排隊子鏈表,在添入排隊子鏈表之前,判斷該隊列是否已在排隊子 鏈表中排隊,若排隊則不再添入到排隊子鏈表中,否則添入。調(diào)度時,在排隊鏈表中選取優(yōu) 先級最高的非空排隊子鏈表,從鏈表的頭部開始,按鏈表指針指示進行隊列調(diào)度,所選的非 空排隊子鏈表中的隊列調(diào)度完畢后,選取次級優(yōu)先級的非空排隊子鏈表進行隊列調(diào)度。本 發(fā)明在處理同優(yōu)先級隊列時,按先入先出的方式進行調(diào)度,但對于已在排隊鏈表中排隊的 隊列而言,不可能再被添入到排隊鏈表中,這樣保證了同優(yōu)先級隊列調(diào)度時的公平性。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下舉實施例并參照附圖,對 本發(fā)明進一步詳細(xì)說明。圖1為本發(fā)明基于鏈表的隊列調(diào)度方法的流程圖,如圖1所示,本發(fā)明基于鏈表的 隊列調(diào)度方法包括以下步驟步驟101 設(shè)置排隊鏈表中的地址數(shù)不少于隊列數(shù),并按隊列所屬優(yōu)先級將所述 排隊鏈表劃分為不同的排隊子鏈表,其中,所述排隊子鏈表中的地址數(shù)不少于所述排隊子 鏈表所對應(yīng)優(yōu)先級下的所有隊列數(shù);為各隊列設(shè)置標(biāo)識其是否在所述排隊鏈表中排隊的排 隊鏈表標(biāo)識符。根據(jù)系統(tǒng)中所有隊列的數(shù)目設(shè)置排隊鏈表的地址數(shù),以前述背景技術(shù)中32K個隊 列為例,則設(shè)置排隊鏈表的地址數(shù)至少為32K個,排隊鏈表的地址需要至少15bit的字符來 承載,即每個隊列需有一個對應(yīng)的排隊鏈表的地址,以在將隊列作添入處理時有存放該隊 列的地址。對于排隊鏈表,再按隊列優(yōu)先級的不同設(shè)置為不同的排隊子鏈表,以對相應(yīng)優(yōu)先 級的隊列進行排隊時,將相應(yīng)優(yōu)先級的隊列添入到對應(yīng)優(yōu)先級的排隊子鏈表中,排隊子鏈 表中的地址數(shù)不能少于該優(yōu)先級下的所有隊列數(shù),以將該優(yōu)先級下的所有隊列均能在相應(yīng) 的排隊子鏈表中進行排隊。本發(fā)明中,隊列主要是指所屬用戶不同的數(shù)據(jù)隊列。最好的方 式是排隊子鏈表中的地址數(shù)與所有隊列一一對應(yīng)。同時,為各隊列設(shè)置標(biāo)識其是否在所述排隊鏈表中排隊的排隊鏈表標(biāo)識符,該排 隊鏈表標(biāo)識符為1比特的字符,其中,0標(biāo)識已在所述排隊鏈表中排隊,1標(biāo)識未在所述排隊 鏈表中排隊;或者,0標(biāo)識未在所述排隊鏈表中排隊,1標(biāo)識已在所述排隊鏈表中排隊。本發(fā) 明中,隊列的排隊鏈表標(biāo)識符地址與隊列的序號相對應(yīng),以方便查找隊列對應(yīng)的排隊鏈表 標(biāo)識符。步驟102 在將符合排隊條件的隊列添入所述排隊鏈表之前,根據(jù)所述隊列的排
6隊鏈表標(biāo)識符判斷所述隊列是否已在所述排隊鏈表中排隊,若已排隊則不作添入處理,若 未排隊則將所述隊列添入所述隊列優(yōu)先級對應(yīng)的排隊子鏈表的鏈表尾部,并將所述隊列的 排隊鏈表標(biāo)識符修改為已在所述排隊鏈表中排隊的標(biāo)識。設(shè)置完排隊鏈表后,即判斷哪些隊列符合排隊條件,對于符合排隊條件的隊列,將 其添入到排隊鏈表中,具體的,在添入排隊鏈表之前,需要確定隊列的優(yōu)先級,然后,再查看 該隊列的排隊鏈表標(biāo)識符,確定該隊列是否已在排隊鏈表中排隊,若已排隊,則不再處理該 隊列,即不再將該隊列添入到排隊鏈表中,而如果未在排隊鏈表中排隊,則將該隊列添入與 該隊列優(yōu)先級對應(yīng)的排隊子鏈表中。以下通過具體的示例詳細(xì)說明。假設(shè)依次A 隊的隊列號是35,13,0,8,0,6,1,64,0,3,55,30,20,80,9, 101,...等等。其中,0,1,3號隊列屬于第一優(yōu)先級(最高優(yōu)先級),6,8,9屬于第二優(yōu)先級, 13,20,30,35屬于第三優(yōu)先級,80,64,55,101屬于第四優(yōu)先級。假設(shè)各個隊列均滿足排隊 條件。35號隊列是最先入隊的,查詢排隊鏈表標(biāo)識符地址35 (排隊鏈表標(biāo)識符地址與隊列 序列完全對應(yīng),這將非常方便對隊列排隊鏈表標(biāo)識符的查找)的內(nèi)容,發(fā)現(xiàn)是0(假設(shè)0標(biāo) 識隊列未在排隊鏈表中排隊)時,將35號隊列添入排隊鏈表中,同時,把該地址的排隊鏈表 標(biāo)識符修改為1 (標(biāo)識隊列已在排隊鏈表中排隊)。查詢排隊鏈表標(biāo)識符地址35為1時,就 表明該隊列已經(jīng)在鏈表中排隊,不再處理該隊列的入隊。按照入隊順序,后面的隊列13號, 0號,8號,0號等依次查詢排隊鏈表標(biāo)識符。0號隊列第二次查詢排隊鏈表標(biāo)識符時,發(fā)現(xiàn) 已經(jīng)在鏈表里面了,將不再將其添入到排隊鏈表中。排隊鏈表的地址數(shù)與隊列號(隊列數(shù))是對應(yīng)的,每個隊列均有排隊的地址。本 發(fā)明在將隊列添入排隊鏈表中時,是按隊列的優(yōu)先級將該隊列添入到對應(yīng)優(yōu)先級的排隊子 鏈表中。仍以前述編號的隊列為例,第一優(yōu)先級的排隊子鏈表中將依次添入隊列號為0號, 1號,3號的隊列。圖2本發(fā)明隊列添入排隊子鏈表的結(jié)構(gòu)示意圖,如圖2所示,排隊子鏈表 地址0就是鏈表首地址,存放的是0號隊列號,1號地址中存放的是1號隊列號,3號地址中 存放的是3號隊列,由于排隊子鏈表中只添入了 3個隊列,地址3指針的下一跳地址就是鏈 表尾地址,內(nèi)容為空。在將隊列添入到排隊子鏈表中時,從排隊子鏈表的尾地址開始存放隊 列,前述的列號為0號,1號,3號的隊列添入排隊子鏈表時,在0號添入時,由于此時第一優(yōu) 先級的排隊子鏈表為空,地址0就是鏈表尾地址,將0號隊列存儲于地址0中,此時,地址1 就是鏈表尾地址,將1號隊列再添入地址1中。如圖2所示,對于第二優(yōu)先級的隊列如前述 8、6、9號隊列,仍按前述方法添入到排隊子鏈表中,對于第二優(yōu)先級的排隊子鏈表,首地址 可以是地址8,地址8的下一跳為地址6,存儲6號隊列,而地址6的下一跳為地址9,用于存 儲9號隊列。存儲的隊列嚴(yán)格按照排隊子鏈表中的地址指針進行即可,首地址存儲首個添 入的隊列,之后所有的隊列依序存儲到排隊子鏈表的尾地址中。本發(fā)明最優(yōu)的實現(xiàn)方式是地址數(shù)與隊列數(shù)是相等的,此時,隊列數(shù)和地址數(shù)一一 對應(yīng)。本發(fā)明中,只要避免同一個地址對應(yīng)不同的隊列即可。本發(fā)明僅以第一、二優(yōu)先級的隊列添入排隊子鏈表為例進行了說明,其余優(yōu)先級 的隊列添入相應(yīng)優(yōu)先級的排隊子鏈表的方式與此完全相同,這里不再贅述。本發(fā)明還包括在所述排隊鏈表中選擇優(yōu)先級最高的非空排隊子鏈表進行隊列調(diào) 度,優(yōu)先級最高的非空排隊子鏈表調(diào)度完畢后選擇次優(yōu)先級的非空排隊子鏈表進行隊列調(diào) 度。在排隊子鏈表中進行隊列調(diào)度時,首先從排隊子鏈表的頭部輸出,再按排隊子鏈表頭部指針的指示調(diào)度下一隊列出隊,直到排隊子鏈表為空。仍以前述的隊列為例,如第一優(yōu)先級隊列輸出順序依次為0號,1號,3號,...,在 第一優(yōu)先級對應(yīng)的排隊子鏈表中的隊列調(diào)度完畢后,查找出當(dāng)前優(yōu)先級最高的非空排隊子 鏈表,如是第二優(yōu)先級排隊子鏈表,其隊列輸出依次為8號,6號,9號,...,接著是第三優(yōu)先 級排隊子鏈表,其隊列輸出依次為35號,13號,30號,20號,等等。圖3為本發(fā)明基于鏈表的隊列調(diào)度裝置的組成結(jié)構(gòu)示意圖,如圖3所示,本發(fā)明基 于鏈表的隊列調(diào)度裝置包括設(shè)置單元30、劃分單元31、判斷單元32、添入單元33和標(biāo)識修 改單元34,其中,設(shè)置單元30用于設(shè)置排隊鏈表中的地址不少于總隊列的數(shù)目,以及,為各 隊列設(shè)置標(biāo)識其是否在所述排隊鏈表中排隊的排隊鏈表標(biāo)識符;劃分單元31用于按隊列 所屬優(yōu)先級將所述排隊鏈表劃分為不同的排隊子鏈表,其中,所述排隊子鏈表中的地址不 少于所述排隊子鏈表所對應(yīng)優(yōu)先級下的所有隊列數(shù);判斷單元32用于在將符合排隊條件 的隊列添入所述排隊鏈表之前,根據(jù)所述隊列的排隊鏈表標(biāo)識符判斷所述隊列是否已在所 述排隊鏈表中排隊,若已排隊則不作添入處理,若未排隊則觸發(fā)添入單元33;添入單元33 用于將所述隊列添入所述隊列優(yōu)先級對應(yīng)的排隊子鏈表的鏈表尾部,并觸發(fā)標(biāo)識修改單元 34 ;標(biāo)識修改單元34用于將所述隊列的排隊鏈表標(biāo)識符修改為已在所述排隊鏈表中排隊 的標(biāo)識。如圖3所示,本發(fā)明基于鏈表的隊列調(diào)度裝置還包括調(diào)度單元35,用于在所述排 隊鏈表中選擇優(yōu)先級最高的排隊子鏈表進行隊列調(diào)度,優(yōu)先級最高的排隊子鏈表調(diào)度完畢 后選擇次優(yōu)先級最高的排隊子鏈表進行隊列調(diào)度。。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,調(diào)度單元35是為優(yōu)化本發(fā)明基于鏈表的隊列調(diào)度裝 置的技術(shù)方案而設(shè)置的,并非實現(xiàn)本發(fā)明技術(shù)方案的必要部件。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明圖3所示的基于鏈表的隊列調(diào)度裝置是為實現(xiàn) 圖1所示的基于鏈表的隊列調(diào)度方法而設(shè)計的,圖3所示裝置中的各處理單元及處理模塊 的實現(xiàn)功能可參照圖1所示的方法中的相關(guān)描述而理解,各單元及各模塊的功能可通過運 行于處理器上的程序而實現(xiàn),也可通過相應(yīng)的邏輯電路而實現(xiàn)。以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
8
權(quán)利要求
一種基于鏈表的隊列調(diào)度方法,其特征在于,包括設(shè)置排隊鏈表中的地址數(shù)不少于隊列數(shù),并按隊列所屬優(yōu)先級將所述排隊鏈表劃分為不同的排隊子鏈表,其中,所述排隊子鏈表中的地址數(shù)不少于所述排隊子鏈表所對應(yīng)優(yōu)先級下的所有隊列數(shù);為各隊列設(shè)置標(biāo)識其是否在所述排隊鏈表中排隊的排隊鏈表標(biāo)識符;以及在將符合排隊條件的隊列添入所述排隊鏈表之前,根據(jù)所述隊列的排隊鏈表標(biāo)識符判斷所述隊列是否已在所述排隊鏈表中排隊,若已排隊則不作添入處理,若未排隊則將所述隊列添入所述隊列優(yōu)先級對應(yīng)的排隊子鏈表的鏈表尾部,并將所述隊列的排隊鏈表標(biāo)識符修改為已在所述排隊鏈表中排隊的標(biāo)識。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括 在所述排隊鏈表中選擇優(yōu)先級最高的非空排隊子鏈表進行隊列調(diào)度,優(yōu)先級最高的非 空排隊子鏈表調(diào)度完畢后選擇次優(yōu)先級的非空排隊子鏈表進行隊列調(diào)度。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,排隊子鏈表進行隊列調(diào)度時,由鏈表的頭 部開始,按鏈表指針指示進行隊列調(diào)度。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述方法還包括優(yōu)先級相同的已出隊的 隊列與待入隊的隊列均符合排隊條件時,優(yōu)先將已出隊的隊列添入所述排隊鏈表中。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述排隊鏈表標(biāo)識符為1比特,0標(biāo)識已 在所述排隊鏈表中排隊,1標(biāo)識未在所述排隊鏈表中排隊;或者,0標(biāo)識未在所述排隊鏈表 中排隊,1標(biāo)識已在所述排隊鏈表中排隊。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,每個隊列號對應(yīng)于排隊鏈表中的一個地址。
7.一種基于鏈表的隊列調(diào)度裝置,其特征在于,包括設(shè)置單元,用于設(shè)置排隊鏈表中的地址不少于總隊列的數(shù)目,以及,為各隊列設(shè)置標(biāo)識 其是否在所述排隊鏈表中排隊的排隊鏈表標(biāo)識符;劃分單元,用于按隊列所屬優(yōu)先級將所述排隊鏈表劃分為不同的排隊子鏈表,其中,所 述排隊子鏈表中的地址不少于所述排隊子鏈表所對應(yīng)優(yōu)先級下的所有隊列數(shù);判斷單元,用于在將符合排隊條件的隊列添入所述排隊鏈表之前,根據(jù)所述隊列的排 隊鏈表標(biāo)識符判斷所述隊列是否已在所述排隊鏈表中排隊,若已排隊則不作添入處理,若 未排隊則觸發(fā)添入單元;添入單元,用于將所述隊列添入所述隊列優(yōu)先級對應(yīng)的排隊子鏈表的鏈表尾部,并觸 發(fā)標(biāo)識修改單元;以及標(biāo)識修改單元,用于將所述隊列的排隊鏈表標(biāo)識符修改為已在所述排隊鏈表中排隊的 標(biāo)識。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置還包括調(diào)度單元,用于在所述排隊鏈表中選擇優(yōu)先級最高的排隊子鏈表進行隊列調(diào)度,優(yōu)先 級最高的排隊子鏈表調(diào)度完畢后選擇次優(yōu)先級最高的排隊子鏈表進行隊列調(diào)度。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述調(diào)度單元排隊子鏈表進行隊列調(diào)度 時,由鏈表的頭部開始,按鏈表指針指示進行隊列調(diào)度。
10.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述添入單元在優(yōu)先級相同的已出對的隊列與入對的隊列均符合排隊條件時,優(yōu)先將已出對的隊列添入所述排隊鏈表中。
11.根據(jù)權(quán)利要求7所述的裝置,其特征在于,每個隊列號對應(yīng)于排隊鏈表中的一個地址。
全文摘要
本發(fā)明公開了一種基于鏈表的隊列調(diào)度方法,包括設(shè)置排隊鏈表中的地址數(shù)不少于隊列數(shù),并按隊列所屬優(yōu)先級將排隊鏈表劃分為不同的排隊子鏈表,其中,排隊子鏈表中的地址數(shù)不少于排隊子鏈表所對應(yīng)優(yōu)先級下的所有隊列數(shù);為各隊列設(shè)置標(biāo)識其是否在排隊鏈表中排隊的排隊鏈表標(biāo)識符;在將符合排隊條件的隊列添入排隊鏈表之前,根據(jù)隊列的排隊鏈表標(biāo)識符判斷隊列是否已在排隊鏈表中排隊,若已排隊則不作添入處理,若未排隊則將隊列添入隊列優(yōu)先級對應(yīng)的排隊子鏈表的鏈表尾部,并將隊列的排隊鏈表標(biāo)識符修改為已在排隊鏈表中排隊的標(biāo)識。本發(fā)明同時公開了一種基于鏈表的隊列調(diào)度裝置。本發(fā)明保證了同優(yōu)先級隊列調(diào)度時的公平性。
文檔編號H04L12/56GK101902487SQ20091008563
公開日2010年12月1日 申請日期2009年5月26日 優(yōu)先權(quán)日2009年5月26日
發(fā)明者廖慶磊, 廖智勇, 賴偉 申請人:中興通訊股份有限公司