本申請涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種報(bào)文的調(diào)度方法及裝置。
背景技術(shù):
在計(jì)算機(jī)網(wǎng)絡(luò)中,終端通常通過隊(duì)列對報(bào)文進(jìn)行緩存。所謂隊(duì)列在計(jì)算機(jī)科學(xué)中,是一種先進(jìn)先出的線性表,只允許在表的前端進(jìn)行刪除操作即出隊(duì),在表的后端進(jìn)行插入操作即入隊(duì)。
其中,進(jìn)行刪除操作的端稱為隊(duì)頭,進(jìn)行插入操作的端稱為隊(duì)尾。各個(gè)隊(duì)列組成鏈表,并通過鏈表進(jìn)行動(dòng)態(tài)管理以及緩存報(bào)文,從而可以對隊(duì)列中的報(bào)文進(jìn)行調(diào)度。
參閱圖1a所示,隊(duì)列示意圖,隊(duì)列中包含若干報(bào)文,而每一個(gè)報(bào)文中包含若干單元(cell)。隊(duì)列中分別設(shè)置有頭指針和尾指針。頭指針用于指向最新發(fā)起請求調(diào)度的cell,或者,在沒有調(diào)度請求時(shí),頭指針用于指向隊(duì)列的第一個(gè)cell,尾指針用于指向隊(duì)列的最后一個(gè)cell。
現(xiàn)有技術(shù)下,對報(bào)文進(jìn)行調(diào)度主要采用以下方式:
當(dāng)報(bào)文入隊(duì)時(shí),鏈表的尾指針實(shí)時(shí)更新,指向最新入隊(duì)的一個(gè)cell,并確定頭指針與尾指針不相等時(shí),觸發(fā)調(diào)度,鏈表的頭指針基于出隊(duì)的cell,進(jìn)行相應(yīng)的更新,指向隊(duì)頭的下一個(gè)cell。
但是,采用這種方式,一方面,由于尾指針僅指向最新入隊(duì)的cell,因此,不能通過尾指針確定一個(gè)報(bào)文的最后一個(gè)cell是否入隊(duì),存在對不完整報(bào)文進(jìn)行調(diào)度的問題。另一方面,由于完整的調(diào)度流程存在一定的延時(shí),因此,可能存在已經(jīng)發(fā)起調(diào)度請求但還未完成實(shí)際出隊(duì)的多個(gè)cell,這會(huì)消耗大量的緩存資源。
技術(shù)實(shí)現(xiàn)要素:
本申請實(shí)施例提供一種報(bào)文的調(diào)度方法及裝置,用于在對隊(duì)列中的報(bào)文進(jìn)行調(diào)度時(shí),僅對完整報(bào)文進(jìn)行調(diào)度,保證報(bào)文的連續(xù)性,精確控制已經(jīng)發(fā)起調(diào)度請求但還未完成實(shí)際出隊(duì)的cell的數(shù)量,降低緩存資源的消耗。
本申請實(shí)施例提供的具體技術(shù)方案如下:
第一方面,一種報(bào)文的調(diào)度方法,包括:
監(jiān)測隊(duì)列的入隊(duì)狀態(tài),確定入隊(duì)狀態(tài)表征報(bào)文入隊(duì)時(shí),對隊(duì)列的報(bào)文尾指針進(jìn)行更新,其中,報(bào)文尾指針用于指向隊(duì)列中最后一個(gè)完整報(bào)文的最后一個(gè)cell;
計(jì)算隊(duì)列的調(diào)度頭指針與出隊(duì)頭指針的差值,獲得調(diào)度差值,其中,調(diào)度頭指針用于指向當(dāng)前請求調(diào)度的cell,出隊(duì)頭指針用于指向最后一個(gè)完成調(diào)度的cell;
確定調(diào)度差值低于預(yù)設(shè)門限值,并且調(diào)度頭指針小于報(bào)文尾指針時(shí),對隊(duì)列中的報(bào)文進(jìn)行調(diào)度。
較佳的,確定入隊(duì)狀態(tài)表征報(bào)文入隊(duì)時(shí),對隊(duì)列的報(bào)文尾指針進(jìn)行更新,具體包括:
確定入隊(duì)狀態(tài)表征報(bào)文入隊(duì)時(shí),將隊(duì)列的尾指針進(jìn)行更新,其中,尾指針用于指向隊(duì)列中最后一個(gè)cell;
獲取尾指針指向的cell的第一描述信息;
基于第一描述信息,確定尾指針指向的cell為一個(gè)報(bào)文的最后一個(gè)cell時(shí),將報(bào)文尾指針指向尾指針指向的cell。
較佳的,確定調(diào)度差值低于預(yù)設(shè)門限值,并且調(diào)度頭指針小于報(bào)文尾指針時(shí),對隊(duì)列中的報(bào)文進(jìn)行調(diào)度,具體包括:
確定調(diào)度差值低于預(yù)設(shè)門限值,并且調(diào)度頭指針小于報(bào)文尾指針時(shí),基于調(diào)度頭指針,確定調(diào)度頭指針指向的cell,作為第一cell;
對第一cell的下一個(gè)cell發(fā)起調(diào)度請求,并將調(diào)度頭指針進(jìn)行更新,指向第一cell的下一個(gè)cell;
基于出隊(duì)頭指針,確定出隊(duì)頭指針指向的cell,作為第二cell;
確定第二cell的下一個(gè)cell完成調(diào)度時(shí),將出隊(duì)頭指針進(jìn)行更新,指向第二cell的下一個(gè)cell;
基于更新后的調(diào)度頭指針或/和更新后的出隊(duì)頭指針,對隊(duì)列中的報(bào)文進(jìn)行調(diào)度。
較佳的,基于更新后的調(diào)度頭指針或/和更新后的出隊(duì)頭指針,對隊(duì)列中的報(bào)文進(jìn)行調(diào)度,包括:
基于更新后的調(diào)度頭指針或/和更新后的出隊(duì)頭指針,對隊(duì)列中的報(bào)文進(jìn)行調(diào)度,執(zhí)行以下操作,直到更新后的調(diào)度頭指針與更新后的出隊(duì)頭指針的差值為零:
判斷是否更新后的調(diào)度頭指針與更新后的出隊(duì)頭指針的差值低于預(yù)設(shè)門限值并且更新后的調(diào)度頭指針小于報(bào)文尾指針,若是,向更新后的調(diào)度頭指針指向的cell的下一個(gè)cell發(fā)起調(diào)度請求,并對調(diào)度頭指針進(jìn)行更新,以及確定更新后的出隊(duì)頭指針指向的cell的下一個(gè)cell調(diào)度完成時(shí),將出隊(duì)頭指針進(jìn)行更新;
否則,確定更新后的出隊(duì)頭指針指向的cell的下一個(gè)cell調(diào)度完成時(shí),將出隊(duì)頭指針進(jìn)行更新。
較佳的,進(jìn)一步包括:
獲取更新后的調(diào)度頭指針指向的cell的第二描述信息;
基于第二描述信息,確定更新后的調(diào)度頭指針指向的cell為一個(gè)報(bào)文的第一個(gè)cell時(shí),將隊(duì)列的報(bào)文調(diào)度頭指針指向更新后的調(diào)度頭指針指向的cell,其中,報(bào)文調(diào)度頭指針用于指向一個(gè)報(bào)文的第一個(gè)cell;
基于第二描述信息還包含的復(fù)制指示信息,確定復(fù)制指示信息表征對報(bào)文進(jìn)行復(fù)制時(shí),對報(bào)文調(diào)度頭指針指向的cell對應(yīng)的報(bào)文,進(jìn)行復(fù)制。
第二方面,一種報(bào)文的調(diào)度裝置,包括:
入隊(duì)單元,用于監(jiān)測隊(duì)列的入隊(duì)狀態(tài),確定入隊(duì)狀態(tài)表征報(bào)文入隊(duì)時(shí),對隊(duì)列的報(bào)文尾指針進(jìn)行更新,其中,報(bào)文尾指針用于指向隊(duì)列中最后一個(gè)完整報(bào)文的最后一個(gè)cell;
獲取單元,用于計(jì)算隊(duì)列的調(diào)度頭指針與出隊(duì)頭指針的差值,獲得調(diào)度差值,其中,調(diào)度頭指針用于指向當(dāng)前請求調(diào)度的cell,出隊(duì)頭指針用于指向最后一個(gè)完成調(diào)度的cell;
調(diào)度單元,用于確定調(diào)度差值低于預(yù)設(shè)門限值,并且調(diào)度頭指針小于報(bào)文尾指針時(shí),對隊(duì)列中的報(bào)文進(jìn)行調(diào)度。
較佳的,在確定入隊(duì)狀態(tài)表征報(bào)文入隊(duì)時(shí),對隊(duì)列的報(bào)文尾指針進(jìn)行更新時(shí),入隊(duì)單元具體用于:
確定入隊(duì)狀態(tài)表征報(bào)文入隊(duì)時(shí),將隊(duì)列的尾指針進(jìn)行更新,其中,尾指針用于指向隊(duì)列中最后一個(gè)cell;
獲取尾指針指向的cell的第一描述信息;
基于第一描述信息,確定尾指針指向的cell為一個(gè)報(bào)文的最后一個(gè)cell時(shí),將報(bào)文尾指針指向尾指針指向的cell。
較佳的,在確定調(diào)度差值低于預(yù)設(shè)門限值,并且調(diào)度頭指針小于報(bào)文尾指針,對隊(duì)列中的報(bào)文進(jìn)行調(diào)度時(shí),調(diào)度單元具體用于:
確定調(diào)度差值低于預(yù)設(shè)門限值,并且調(diào)度頭指針小于報(bào)文尾指針時(shí),基于調(diào)度頭指針,確定調(diào)度頭指針指向的cell,作為第一cell;
對第一cell的下一個(gè)cell發(fā)起調(diào)度請求,并將調(diào)度頭指針進(jìn)行更新,指向第一cell的下一個(gè)cell;
基于出隊(duì)頭指針,確定出隊(duì)頭指針指向的cell,作為第二cell;
確定第二cell的下一個(gè)cell完成調(diào)度時(shí),將出隊(duì)頭指針進(jìn)行更新,指向第二cell的下一個(gè)cell;
基于更新后的調(diào)度頭指針或/和更新后的出隊(duì)頭指針,對隊(duì)列中的報(bào)文進(jìn)行調(diào)度。
較佳的,在基于更新后的調(diào)度頭指針或/和更新后的出隊(duì)頭指針,對隊(duì)列中的報(bào)文進(jìn)行調(diào)度時(shí),調(diào)度單元還用于:
基于更新后的調(diào)度頭指針或/和更新后的出隊(duì)頭指針,對隊(duì)列中的報(bào)文進(jìn)行調(diào)度,執(zhí)行以下操作,直到更新后的調(diào)度頭指針與更新后的出隊(duì)頭指針的差值為零:
判斷是否更新后的調(diào)度頭指針與更新后的出隊(duì)頭指針的差值低于預(yù)設(shè)門限值并且更新后的調(diào)度頭指針小于報(bào)文尾指針,若是,向更新后的調(diào)度頭指針指向的cell的下一個(gè)cell發(fā)起調(diào)度請求,并對調(diào)度頭指針進(jìn)行更新,以及確定更新后的出隊(duì)頭指針指向的cell的下一個(gè)cell調(diào)度完成時(shí),將出隊(duì)頭指針進(jìn)行更新;
否則,確定更新后的出隊(duì)頭指針指向的cell的下一個(gè)cell調(diào)度完成時(shí),將出隊(duì)頭指針進(jìn)行更新。較佳的,調(diào)度單元還用于:
獲取更新后的調(diào)度頭指針指向的cell的第二描述信息;
基于第二描述信息,確定更新后的調(diào)度頭指針指向的cell為一個(gè)報(bào)文的第一個(gè)cell時(shí),將隊(duì)列的報(bào)文調(diào)度頭指針指向更新后的調(diào)度頭指針指向的cell,其中,報(bào)文調(diào)度頭指針用于指向一個(gè)報(bào)文的第一個(gè)cell;
基于第二描述信息還包含的復(fù)制指示信息,確定復(fù)制指示信息表征對報(bào)文進(jìn)行復(fù)制時(shí),對報(bào)文調(diào)度頭指針指向的cell對應(yīng)的報(bào)文,進(jìn)行復(fù)制。
第三方面,一種通信裝置,包括:一個(gè)或多個(gè)處理器;以及
一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),可讀介質(zhì)上存儲(chǔ)有用于報(bào)文的調(diào)度的程序,其中,程序被一個(gè)或多個(gè)處理器執(zhí)行時(shí),使得裝置執(zhí)行上述第一方面中任一項(xiàng)的方法。
第四方面,一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),可讀介質(zhì)上存儲(chǔ)有用于報(bào)文的調(diào)度的程序,其中,程序被一個(gè)或多個(gè)處理器執(zhí)行時(shí),使得通信設(shè)備執(zhí)行上述第一方面中任一項(xiàng)的方法。
本申請實(shí)施例中,監(jiān)測隊(duì)列的入隊(duì)狀態(tài),確定入隊(duì)狀態(tài)表征報(bào)文入隊(duì)時(shí),對隊(duì)列的報(bào)文尾指針進(jìn)行更新,其中,報(bào)文尾指針用于指向隊(duì)列中最后一個(gè)完整報(bào)文的最后一個(gè)cell;計(jì)算隊(duì)列的調(diào)度頭指針與出隊(duì)頭指針的差值,獲得調(diào)度差值,其中,調(diào)度頭指針用于指向當(dāng)前請求調(diào)度的cell,出隊(duì)頭指針用于指向最后一個(gè)完成調(diào)度的cell;確定調(diào)度差值低于預(yù)設(shè)門限值,并且調(diào)度頭指針小于報(bào)文尾指針時(shí),對隊(duì)列中的報(bào)文進(jìn)行調(diào)度。這樣,通過報(bào)文尾指針確定隊(duì)列的最后一個(gè)完整報(bào)文,從而可以僅對完整報(bào)文進(jìn)行調(diào)度,保證了報(bào)文的連續(xù)性,以及通過隊(duì)列的調(diào)度頭指針與出隊(duì)頭指針的差值,可以精確控制已經(jīng)發(fā)起調(diào)度請求但還未完成實(shí)際出隊(duì)的cell的數(shù)量,從而降低了緩存資源的消耗。
進(jìn)一步地,在隊(duì)列中設(shè)置報(bào)文調(diào)度頭指針,并將報(bào)文調(diào)度頭指針指向隊(duì)列中最新調(diào)度的報(bào)文的第一個(gè)cell,這樣,在對上述報(bào)文進(jìn)行復(fù)制時(shí),就可以通過報(bào)文調(diào)度頭指針,確定上述一個(gè)報(bào)文的第一個(gè)cell,進(jìn)而基于上述第一個(gè)cell對整個(gè)報(bào)文的各個(gè)cell依次進(jìn)行復(fù)制,解決了無法確定上述第一個(gè)cell,進(jìn)而無法對相應(yīng)的報(bào)文進(jìn)行完整復(fù)制的問題。
附圖說明
圖1a為現(xiàn)有技術(shù)下的隊(duì)列示意圖;
圖1b為本申請實(shí)施例中的隊(duì)列示意圖;
圖2為本申請實(shí)施例中報(bào)文的調(diào)度方法的流程圖;
圖3為本申請實(shí)施例中報(bào)文的調(diào)度方法的流程圖;
圖4為本申請實(shí)施例中報(bào)文的調(diào)度裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
下面將結(jié)合本申請實(shí)施例中的附圖,對本申請實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本申請一部分實(shí)施例,并不是全部的實(shí)施例?;诒旧暾垖?shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本申請保護(hù)的范圍。
為了在對隊(duì)列中的報(bào)文進(jìn)行調(diào)度時(shí),僅對完整報(bào)文進(jìn)行調(diào)度,保證報(bào)文的連續(xù)性,精確控制已經(jīng)發(fā)起調(diào)度請求但還未完成實(shí)際出隊(duì)的cell的數(shù)量,降低緩存資源的消耗,本申請實(shí)施例中,設(shè)計(jì)了一種報(bào)文的調(diào)度方法,該方法為,先將報(bào)文尾指針,指向最后一個(gè)完整報(bào)文,然后,確定隊(duì)列的調(diào)度頭指針與出隊(duì)頭指針的差值低于預(yù)設(shè)門限值并且調(diào)度頭指針小于報(bào)文尾指針時(shí),對隊(duì)列中的報(bào)文進(jìn)行調(diào)度。
下面結(jié)合附圖對本申請優(yōu)選的實(shí)施方式進(jìn)行詳細(xì)說明。
參閱圖1b所示,本申請實(shí)施例中的隊(duì)列示意圖。本申請實(shí)施例中,隊(duì)列中包含若干報(bào)文,而每一個(gè)報(bào)文中包含若干cell。隊(duì)列中分別設(shè)置有尾指針、報(bào)文尾指針、調(diào)度頭指針、出隊(duì)頭指針,以及報(bào)文調(diào)度頭指針。
其中,尾指針用于指向隊(duì)列中最后一個(gè)cell。報(bào)文尾指針用于指向隊(duì)列中最后一個(gè)完整報(bào)文的最后一個(gè)cell。調(diào)度頭指針用于指向最新發(fā)起請求調(diào)度的cell。出隊(duì)頭指針用于指向最后一個(gè)完成調(diào)度的cell。報(bào)文調(diào)度頭指針用于指向一個(gè)報(bào)文的第一個(gè)cell。
這樣,終端就可以采用本申請實(shí)施例中的隊(duì)列,在后續(xù)的步驟中,對報(bào)文進(jìn)行相應(yīng)的調(diào)度。
參閱圖2所示,本申請實(shí)施例中,對報(bào)文的調(diào)度具體流程如下:
步驟200:終端監(jiān)測隊(duì)列的入隊(duì)狀態(tài),確定入隊(duì)狀態(tài)表征報(bào)文入隊(duì)時(shí),對隊(duì)列的報(bào)文尾指針進(jìn)行更新。
具體的,首先,終端監(jiān)測隊(duì)列的入隊(duì)狀態(tài),確定入隊(duì)狀態(tài)表征報(bào)文入隊(duì)時(shí),將隊(duì)列的尾指針進(jìn)行更新,其中,尾指針用于指向隊(duì)列中最后一個(gè)cell。
然后,終端獲取尾指針指向的cell的第一描述信息,并基于第一描述信息,確定尾指針指向的cell為一個(gè)報(bào)文的最后一個(gè)cell時(shí),將報(bào)文尾指針指向尾指針指向的cell。
這樣,終端就可以通過尾指針確定隊(duì)列中的最后一個(gè)cell,并通過報(bào)文尾指針確定隊(duì)列中最后一個(gè)完整的報(bào)文,從而在后續(xù)的報(bào)文調(diào)度過程中,可以通過報(bào)文尾指針,僅對完整報(bào)文進(jìn)行調(diào)度。
步驟210:終端計(jì)算隊(duì)列的調(diào)度頭指針與出隊(duì)頭指針的差值,獲得調(diào)度差值。
具體的,執(zhí)行步驟210,終端就可以根據(jù)獲得的調(diào)度差值,在后續(xù)發(fā)起調(diào)度請求時(shí),精確控制已經(jīng)發(fā)起調(diào)度請求但還未完成實(shí)際出隊(duì)的cell的數(shù)量,從而降低緩存資源的消耗。
步驟220:終端確定調(diào)度差值低于預(yù)設(shè)門限值,并且調(diào)度頭指針小于報(bào)文尾指針時(shí),對隊(duì)列中的報(bào)文進(jìn)行調(diào)度。
具體的,首先,終端確定調(diào)度差值低于預(yù)設(shè)門限值,并且調(diào)度頭指針小于報(bào)文尾指針時(shí),基于調(diào)度頭指針,確定調(diào)度頭指針指向的cell,作為第一cell,并對第一cell的下一個(gè)cell發(fā)起調(diào)度請求,以及將調(diào)度頭指針進(jìn)行更新,指向第一cell的下一個(gè)cell。
接著,終端基于出隊(duì)頭指針,確定出隊(duì)頭指針指向的cell,作為第二cell,并確定第二cell的下一個(gè)cell完成調(diào)度時(shí),將出隊(duì)頭指針進(jìn)行更新,指向第二cell的下一個(gè)cell。
然后,終端基于更新后的調(diào)度頭指針或/和更新后的出隊(duì)頭指針,對隊(duì)列中的報(bào)文進(jìn)行調(diào)度,執(zhí)行以下操作,直到更新后的調(diào)度頭指針與更新后的出隊(duì)頭指針的差值為零:
判斷是否更新后的調(diào)度頭指針與更新后的出隊(duì)頭指針的差值低于預(yù)設(shè)門限值并且更新后的調(diào)度頭指針小于報(bào)文尾指針,若是,向更新后的調(diào)度頭指針指向的cell的下一個(gè)cell發(fā)起調(diào)度請求,并對調(diào)度頭指針進(jìn)行更新,以及確定更新后的出隊(duì)頭指針指向的cell的下一個(gè)cell調(diào)度完成時(shí),將出隊(duì)頭指針進(jìn)行更新,否則,確定更新后的出隊(duì)頭指針指向的cell的下一個(gè)cell調(diào)度完成時(shí),將出隊(duì)頭指針進(jìn)行更新。
這樣,終端就可以將出隊(duì)頭指針指向的cell至調(diào)度頭指針指向的cell之間的各個(gè)cell,依次進(jìn)行出隊(duì),完成調(diào)度。
進(jìn)一步地,終端確定調(diào)度頭指針更新時(shí),獲取更新后的調(diào)度頭指針指向的cell的第二描述信息,并基于第二描述信息,確定更新后的調(diào)度頭指針指向的cell為一個(gè)報(bào)文的第一個(gè)cell時(shí),將隊(duì)列的報(bào)文調(diào)度頭指針指向更新后的調(diào)度頭指針指向的cell,以及基于第二描述信息還包含的復(fù)制指示信息,確定復(fù)制指示信息表征對報(bào)文進(jìn)行復(fù)制時(shí),對報(bào)文調(diào)度頭指針指向的cell對應(yīng)的報(bào)文進(jìn)行復(fù)制。
這樣,在隊(duì)列中設(shè)置報(bào)文調(diào)度頭指針,并將報(bào)文調(diào)度頭指針指向隊(duì)列中最新調(diào)度的報(bào)文的第一個(gè)cell,在對上述報(bào)文進(jìn)行復(fù)制時(shí),就可以通過報(bào)文調(diào)度頭指針,確定上述一個(gè)報(bào)文的第一個(gè)cell,進(jìn)而基于上述第一個(gè)cell對整個(gè)報(bào)文的各個(gè)cell依次進(jìn)行復(fù)制,解決了無法確定上述第一個(gè)cell,進(jìn)而無法對相應(yīng)的報(bào)文進(jìn)行完整復(fù)制的問題。
參閱圖3所示,本申請實(shí)施例中,對報(bào)文的調(diào)度進(jìn)行進(jìn)一步詳細(xì)說明:
步驟300:終端監(jiān)測隊(duì)列的入隊(duì)狀態(tài),確定入隊(duì)狀態(tài)表征報(bào)文入隊(duì)時(shí),對隊(duì)列的尾指針更新。
具體的,終端監(jiān)測隊(duì)列的入隊(duì)狀態(tài),確定入隊(duì)狀態(tài)表征報(bào)文正在入隊(duì)時(shí),基于入隊(duì)的cell,將尾指針向后移動(dòng),對尾指針進(jìn)行更新,使尾指針始終指向隊(duì)列的最后一個(gè)cell。
步驟310:終端判斷尾指針指向的cell是否為一個(gè)報(bào)文的最后一個(gè)cell,若是,執(zhí)行步驟320,否則,執(zhí)行步驟330。
步驟320:終端對報(bào)文尾指針進(jìn)行更新。
具體的,終端獲取尾指針指向的cell的第一描述信息。其中,第一描述信息中包含cell在報(bào)文中的位置。
進(jìn)一步地,終端基于第一描述信息,確定尾指針指向的cell為一個(gè)報(bào)文的最后一個(gè)cell時(shí),將報(bào)文尾指針向后移動(dòng),指向尾指針指向的cell。
例如,參閱圖1b所示,一個(gè)報(bào)文的第一個(gè)cell入隊(duì),則尾指針向后移動(dòng),指向上述cell(隊(duì)列的最后一個(gè)cell),并通過上述cell的第一描述信息確定上述cell并不是一個(gè)報(bào)文的最后一個(gè)cell,因此,不對報(bào)文尾指針進(jìn)行更新。
這樣,就可以通過尾指針確定隊(duì)列中的最后一個(gè)cell,并通過報(bào)文尾指針確定隊(duì)列中最后一個(gè)完整的報(bào)文,從而可以通過報(bào)文尾指針,僅對完整報(bào)文進(jìn)行調(diào)度。
步驟330:終端計(jì)算隊(duì)列的調(diào)度頭指針與出隊(duì)頭指針的差值,獲得調(diào)度差值。
具體的,首先,終端獲取隊(duì)列的調(diào)度頭指針和出隊(duì)頭指針。
其中,若終端未對隊(duì)列中的報(bào)文進(jìn)行調(diào)度,則調(diào)度頭指針與出隊(duì)頭指針均指向隊(duì)頭的第一個(gè)cell;若終端對報(bào)文進(jìn)行調(diào)度時(shí),由于完整的調(diào)度流程存在一定的延時(shí),因此,調(diào)度頭指針基于調(diào)度請求,指向最新發(fā)起調(diào)度請求的cell,而出隊(duì)頭指針指向最后一個(gè)完成調(diào)度的cell。
進(jìn)一步地,終端計(jì)算隊(duì)列的調(diào)度頭指針與出隊(duì)頭指針的差值,獲得調(diào)度差值。
例如,參閱圖1b所示,終端計(jì)算隊(duì)列的調(diào)度頭指針與出隊(duì)頭指針之間的差值為5。
這樣,終端就可以根據(jù)調(diào)度差值,在后續(xù)發(fā)起調(diào)度請求時(shí),精確控制已經(jīng)發(fā)起調(diào)度請求但還未完成實(shí)際出隊(duì)的cell的數(shù)量,從而降低緩存資源的消耗。
步驟340:終端判斷是否調(diào)度差值低于預(yù)設(shè)門限值并且調(diào)度頭指針小于報(bào)文尾指針,若是,則執(zhí)行步驟350,否則,執(zhí)行步驟360。
步驟350:終端對調(diào)度頭指針進(jìn)行更新。
具體的,終端向調(diào)度頭指針指向的cell的下一個(gè)cell發(fā)起調(diào)度請求,并對調(diào)度頭指針進(jìn)行更新,指向下一個(gè)cell。
進(jìn)一步地,終端獲取更新后的調(diào)度頭指針指向的cell的第二描述信息,并基于第二描述信息,確定更新后的調(diào)度頭指針指向的cell為一個(gè)報(bào)文的第一個(gè)cell時(shí),將隊(duì)列的報(bào)文調(diào)度頭指針指向更新后的調(diào)度頭指針指向的cell,以及基于第二描述信息還包含的復(fù)制指示信息,確定復(fù)制指示信息表征對報(bào)文進(jìn)行復(fù)制時(shí),基于報(bào)文調(diào)度頭指針,對報(bào)文調(diào)度頭指針指向的cell對應(yīng)的報(bào)文進(jìn)行復(fù)制。
這樣,終端就可以確定報(bào)文需要復(fù)制時(shí),通過報(bào)文調(diào)度頭指針確定報(bào)文的第一個(gè)單元,從而對報(bào)文調(diào)度頭指針指向的報(bào)文進(jìn)行復(fù)制。
步驟360:終端確定出隊(duì)頭指針指向的cell的下一個(gè)cell調(diào)度完成時(shí),將出隊(duì)頭指針進(jìn)行更新。
步驟370:終端判斷更新后的調(diào)度頭指針與更新后的出隊(duì)頭指針的差值是否不為零,若是,則執(zhí)行步驟330,否則,執(zhí)行步驟380。
步驟380,終端停止調(diào)度。
這樣,終端就可以將出隊(duì)頭指針指向的cell至調(diào)度頭指針指向的cell之間的各個(gè)cell,依次進(jìn)行出隊(duì),完成調(diào)度。
下面采用一個(gè)具體的應(yīng)用場景,對上述實(shí)施例進(jìn)行進(jìn)一步具體說明。
參閱圖1b所示,隊(duì)列中已經(jīng)包含4個(gè)報(bào)文,每個(gè)報(bào)文包含3個(gè)cell,出隊(duì)頭指針指向第1個(gè)cell,報(bào)文調(diào)度頭指針指向第4個(gè)cell,調(diào)度頭指針指向第6個(gè)cell,報(bào)文尾指針指向第12個(gè)cell,尾指針指向第13個(gè)cell。
終端監(jiān)測隊(duì)列的入隊(duì)狀態(tài),確定入隊(duì)狀態(tài)表征報(bào)文正在入隊(duì),則終端基于最新入隊(duì)的cell,將隊(duì)列的尾指針指向第14個(gè)cell(隊(duì)列的最后一個(gè)cell)。
然后,終端基于獲取第14個(gè)cell的第一描述信息,確定第14個(gè)cell并不是一個(gè)報(bào)文的最后一個(gè)cell,因此,不對報(bào)文尾指針進(jìn)行更新。
接著,終端獲取隊(duì)列的調(diào)度頭指針與出隊(duì)頭指針,并計(jì)算隊(duì)列的調(diào)度頭指針與出隊(duì)頭指針的差值,獲得調(diào)度差值為5。
然后,終端獲取預(yù)設(shè)的預(yù)設(shè)門限值6,確定調(diào)度差值5<6,并且確定調(diào)度頭指針小于報(bào)文尾指針,則將調(diào)度頭指針指向第7個(gè)cell,并將出隊(duì)頭指針指向的第1個(gè)cell進(jìn)行調(diào)度,確定第1個(gè)cell調(diào)度完成完全出隊(duì)后,將出隊(duì)頭指針向后移動(dòng),指向第2個(gè)cell。
接著,終端獲取第7個(gè)cell的第二描述信息,并基于第二描述信息,確定第7個(gè)cell為一個(gè)報(bào)文的第一個(gè)cell,則將隊(duì)列的報(bào)文調(diào)度頭指針指向第7個(gè)cell。
然后,終端基于第二描述信息還包含的復(fù)制指示信息,確定復(fù)制指示信息表征對報(bào)文進(jìn)行復(fù)制,則基于報(bào)文調(diào)度頭指針,對第7個(gè)cell至第9個(gè)cell(隊(duì)列中的第3個(gè)報(bào)文)進(jìn)行復(fù)制。
進(jìn)一步地,終端基于更新后的調(diào)度頭指針和更新后的出隊(duì)頭指針,依次對隊(duì)列中的報(bào)文進(jìn)行調(diào)度,直至更新后的調(diào)度頭指針與更新后的出隊(duì)頭指針的差值為零時(shí),停止調(diào)度。
本申請實(shí)施例中,一種通信裝置,包括:一個(gè)或多個(gè)處理器;以及
一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),可讀介質(zhì)上存儲(chǔ)有用于報(bào)文的調(diào)度的程序,其中,程序被一個(gè)或多個(gè)處理器執(zhí)行時(shí),使得裝置可以執(zhí)行上述實(shí)施例中的各個(gè)步驟。
本申請實(shí)施例中,一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì),可讀介質(zhì)上存儲(chǔ)有用于報(bào)文的調(diào)度的程序,其中,程序被一個(gè)或多個(gè)處理器執(zhí)行時(shí),使得通信設(shè)備可以執(zhí)行上述實(shí)施例中的各個(gè)步驟。
基于上述實(shí)施例,參閱圖4所示,報(bào)文的調(diào)度裝置的結(jié)構(gòu)示意圖,本申請實(shí)施例中,報(bào)文的調(diào)度裝置具體包括:
入隊(duì)單元40,用于監(jiān)測隊(duì)列的入隊(duì)狀態(tài),確定入隊(duì)狀態(tài)表征報(bào)文入隊(duì)時(shí),對隊(duì)列的報(bào)文尾指針進(jìn)行更新,其中,報(bào)文尾指針用于指向隊(duì)列中最后一個(gè)完整報(bào)文的最后一個(gè)cell;
獲取單元41,用于計(jì)算隊(duì)列的調(diào)度頭指針與出隊(duì)頭指針的差值,獲得調(diào)度差值,其中,調(diào)度頭指針用于指向當(dāng)前請求調(diào)度的cell,出隊(duì)頭指針用于指向最后一個(gè)完成調(diào)度的cell;
調(diào)度單元42,用于確定調(diào)度差值低于預(yù)設(shè)門限值,并且調(diào)度頭指針小于報(bào)文尾指針時(shí),對隊(duì)列中的報(bào)文進(jìn)行調(diào)度。
較佳的,在確定入隊(duì)狀態(tài)表征報(bào)文入隊(duì)時(shí),對隊(duì)列的報(bào)文尾指針進(jìn)行更新時(shí),入隊(duì)單元40具體用于:
確定入隊(duì)狀態(tài)表征報(bào)文入隊(duì)時(shí),將隊(duì)列的尾指針進(jìn)行更新,其中,尾指針用于指向隊(duì)列中最后一個(gè)cell;
獲取尾指針指向的cell的第一描述信息;
基于第一描述信息,確定尾指針指向的cell為一個(gè)報(bào)文的最后一個(gè)cell時(shí),將報(bào)文尾指針指向尾指針指向的cell。
較佳的,在確定調(diào)度差值低于預(yù)設(shè)門限值,并且調(diào)度頭指針小于報(bào)文尾指針,對隊(duì)列中的報(bào)文進(jìn)行調(diào)度時(shí),調(diào)度單元42具體用于:
確定調(diào)度差值低于預(yù)設(shè)門限值,并且調(diào)度頭指針小于報(bào)文尾指針時(shí),基于調(diào)度頭指針,確定調(diào)度頭指針指向的cell,作為第一cell;
對第一cell的下一個(gè)cell發(fā)起調(diào)度請求,并將調(diào)度頭指針進(jìn)行更新,指向第一cell的下一個(gè)cell;
基于出隊(duì)頭指針,確定出隊(duì)頭指針指向的cell,作為第二cell;
確定第二cell的下一個(gè)cell完成調(diào)度時(shí),將出隊(duì)頭指針進(jìn)行更新,指向第二cell的下一個(gè)cell;
基于更新后的調(diào)度頭指針或/和更新后的出隊(duì)頭指針,對隊(duì)列中的報(bào)文進(jìn)行調(diào)度。
較佳的,在基于更新后的調(diào)度頭指針或/和更新后的出隊(duì)頭指針,對隊(duì)列中的報(bào)文進(jìn)行調(diào)度時(shí),調(diào)度單元42還用于:
基于更新后的調(diào)度頭指針或/和更新后的出隊(duì)頭指針,對隊(duì)列中的報(bào)文進(jìn)行調(diào)度,執(zhí)行以下操作,直到更新后的調(diào)度頭指針與更新后的出隊(duì)頭指針的差值為零:
判斷是否更新后的調(diào)度頭指針與更新后的出隊(duì)頭指針的差值低于預(yù)設(shè)門限值并且更新后的調(diào)度頭指針小于報(bào)文尾指針,若是,向更新后的調(diào)度頭指針指向的cell的下一個(gè)cell發(fā)起調(diào)度請求,并對調(diào)度頭指針進(jìn)行更新,以及確定更新后的出隊(duì)頭指針指向的cell的下一個(gè)cell調(diào)度完成時(shí),將出隊(duì)頭指針進(jìn)行更新;
否則,確定更新后的出隊(duì)頭指針指向的cell的下一個(gè)cell調(diào)度完成時(shí),將出隊(duì)頭指針進(jìn)行更新。
較佳的,調(diào)度單元42還用于:
獲取更新后的調(diào)度頭指針指向的cell的第二描述信息;
基于第二描述信息,確定更新后的調(diào)度頭指針指向的cell為一個(gè)報(bào)文的第一個(gè)cell時(shí),將隊(duì)列的報(bào)文調(diào)度頭指針指向更新后的調(diào)度頭指針指向的cell,其中,報(bào)文調(diào)度頭指針用于指向一個(gè)報(bào)文的第一個(gè)cell;
基于第二描述信息還包含的復(fù)制指示信息,確定復(fù)制指示信息表征對報(bào)文進(jìn)行復(fù)制時(shí),對報(bào)文調(diào)度頭指針指向的cell對應(yīng)的報(bào)文,進(jìn)行復(fù)制。
本申請實(shí)施例中,監(jiān)測隊(duì)列的入隊(duì)狀態(tài),確定入隊(duì)狀態(tài)表征報(bào)文入隊(duì)時(shí),對隊(duì)列的報(bào)文尾指針進(jìn)行更新,其中,報(bào)文尾指針用于指向隊(duì)列中最后一個(gè)完整報(bào)文的最后一個(gè)cell;計(jì)算隊(duì)列的調(diào)度頭指針與出隊(duì)頭指針的差值,獲得調(diào)度差值,其中,調(diào)度頭指針用于指向當(dāng)前請求調(diào)度的cell,出隊(duì)頭指針用于指向最后一個(gè)完成調(diào)度的cell;確定調(diào)度差值低于預(yù)設(shè)門限值,并且調(diào)度頭指針小于報(bào)文尾指針時(shí),對隊(duì)列中的報(bào)文進(jìn)行調(diào)度。這樣,通過報(bào)文尾指針確定最后一個(gè)完整報(bào)文,從而可以僅對完整報(bào)文進(jìn)行調(diào)度,保證了報(bào)文的連續(xù)性,通過隊(duì)列的調(diào)度頭指針與出隊(duì)頭指針的差值,可以精確控制已經(jīng)發(fā)起調(diào)度請求但還未完成實(shí)際出隊(duì)的cell的數(shù)量,從而降低了緩存資源的消耗。
進(jìn)一步地,在隊(duì)列中設(shè)置報(bào)文調(diào)度頭指針,并將報(bào)文調(diào)度頭指針指向隊(duì)列中最新調(diào)度的報(bào)文的第一個(gè)cell,這樣,在對上述報(bào)文進(jìn)行復(fù)制時(shí),就可以通過報(bào)文調(diào)度頭指針,確定上述一個(gè)報(bào)文的第一個(gè)cell,進(jìn)而基于上述第一個(gè)cell對整個(gè)報(bào)文的各個(gè)cell依次進(jìn)行復(fù)制,解決了無法確定上述第一個(gè)cell,進(jìn)而無法對相應(yīng)的報(bào)文進(jìn)行完整復(fù)制的問題。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本申請實(shí)施例中的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本申請實(shí)施例中可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請實(shí)施例中可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本申請實(shí)施例中是參照根據(jù)本申請實(shí)施例中實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
盡管已描述了本申請實(shí)施例中的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本申請實(shí)施例中范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對本申請實(shí)施例中實(shí)施例進(jìn)行各種改動(dòng)和變型而不脫離本申請實(shí)施例中實(shí)施例的精神和范圍。這樣,倘若本申請實(shí)施例中實(shí)施例的這些修改和變型屬于本申請實(shí)施例中權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本申請實(shí)施例中也意圖包含這些改動(dòng)和變型在內(nèi)。