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

一種緩沖區(qū)管理方法及系統(tǒng)的制作方法

文檔序號:6619144閱讀:280來源:國知局
專利名稱:一種緩沖區(qū)管理方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信、電子領(lǐng)域中的緩沖區(qū)管理系統(tǒng),尤其涉及一種具有老化功能的 可以防止緩沖區(qū)泄漏的緩沖區(qū)管理方法及系統(tǒng)。
背景技術(shù)
通信和計算機領(lǐng)域中,經(jīng)常需要用一大塊快速讀寫存儲器(memory)用來暫存接 收到的數(shù)據(jù)、等待處理的數(shù)據(jù)、以及等待發(fā)送出去的數(shù)據(jù)。這一大塊存儲器在邏輯上被分割 為很多小塊。這些小塊被稱為緩沖區(qū)(buffer)。對這些緩沖區(qū)進行有效地管理及具體實現(xiàn) 的實體,稱為緩沖區(qū)管理器(buffer manager)。緩沖區(qū)管理器完成的主要功能有外部有緩 沖區(qū)申請請求時,根據(jù)分配策略進行答復(fù),分配具體的緩沖區(qū)或者拒絕分配緩沖區(qū);外部有 緩沖區(qū)釋放請求時,響應(yīng)釋放請求,將待釋放的緩沖區(qū)列入空閑緩沖區(qū)池供以后分配使用。比較通用的緩沖區(qū)管理器有堆棧式(stack)管理器和先進先出式(First In First0ut,FIF0)管理器。和本發(fā)明相關(guān)的是堆棧式緩沖區(qū)管理器。堆棧式緩沖區(qū)管理器的實現(xiàn)如附圖1所示。包括控制邏輯實體101、堆棧指針102、 空閑緩沖區(qū)堆棧103三個部分。索引圖105是為了表示方便,物理上并不存在;大容量存 儲器104是緩沖區(qū)管理器所要管理的對象,將這一塊存儲器分成η個小塊緩沖區(qū),每個緩沖 區(qū)用一個索引(index)來尋址,索引和緩沖區(qū)一一對應(yīng)??臻e緩沖區(qū)堆棧中保存的是空閑 緩沖區(qū)的索引,初始狀態(tài)下,堆棧是滿的,所有的索引都在堆棧中,堆棧指針指向堆棧地址 addr0o工作原理為若外部有向控制邏輯實體申請緩沖區(qū)的請求,如果允許分配緩沖區(qū), 則控制邏輯實體將堆棧指針指向的索引分配給申請源,同時將堆棧指針下移一步(出棧操 作,POP);如果外部請求控制邏輯實體釋放緩沖區(qū),則控制邏輯實體將堆棧指針上移一步, 并將需要釋放的緩沖區(qū)索引寫入堆棧(入棧操作,PUSH)。經(jīng)過多次的出棧、入棧操作后,堆 棧中的索引排列是無序的,例如圖2中空閑緩沖區(qū)堆棧所示,這是正?,F(xiàn)象。緩沖區(qū)管理器 和緩沖區(qū)使用者的交互信號有緩沖區(qū)使用者分配緩沖區(qū)請求信號、緩沖區(qū)管理器分配應(yīng) 答信號、分配給緩沖區(qū)使用者的緩沖區(qū)索引、緩沖區(qū)使用者請求釋放緩沖區(qū)請求信號、緩沖 區(qū)使用者請求釋放的緩沖區(qū)索引、緩沖區(qū)管理器釋放應(yīng)答信號?,F(xiàn)有的堆棧式緩沖區(qū)管理器,分配緩沖區(qū)時直接執(zhí)行出棧操作,釋放緩沖區(qū)時執(zhí) 行入棧操作。外部緩沖區(qū)使用模塊必須維護自己使用的緩沖區(qū)索引。如果外部緩沖區(qū)使用 模塊維護緩沖區(qū)索引出錯,申請釋放緩沖區(qū)時,給出了錯誤的緩沖區(qū)索引,或者對同一緩沖 區(qū)索引連續(xù)釋放多次,就會引起空閑緩沖區(qū)堆棧內(nèi)的索引混亂。如附圖3所示假設(shè)堆棧指 針原本指向addr3,addr3中存放的索引是indeX3 (圖3中303);這時候如果有外部請求釋 放一個索引為index3的緩沖區(qū),執(zhí)行入棧操作,索引indeX3會被再次寫入堆棧,堆棧指針 指向addr2(圖3中304)。而根據(jù)上文所述,堆棧中的索引表示空閑緩沖區(qū),堆棧中存在重 復(fù)的索引,當(dāng)有外部模塊申請分配緩沖區(qū)時,緩沖區(qū)管理器就有可能把相同的一塊緩沖區(qū) indeX3同時分配給不同的外部模塊使用,造成沖突。這樣的后果是很嚴(yán)重的,如果用在數(shù)據(jù) 通信中,輕則會有丟包現(xiàn)象,重則數(shù)據(jù)轉(zhuǎn)發(fā)完全混亂,業(yè)務(wù)中斷。而緩沖區(qū)管理器無法檢測到這種情況的發(fā)生,也無法從這種混亂狀態(tài)中恢復(fù)正常。為了解決緩沖區(qū)堆棧內(nèi)的索引出現(xiàn)混亂,在緩沖區(qū)管理器中引入了緩沖區(qū)信息記 錄器,在分配緩沖區(qū)的時候向緩沖區(qū)信息記錄器寫入該緩沖區(qū)已經(jīng)被分配的標(biāo)識,在釋放 緩沖區(qū)的時候,首先通過讀取緩沖區(qū)信息記錄器中的緩沖區(qū)分配標(biāo)識判斷該緩沖區(qū)是否已 經(jīng)被分配出去,只釋放已經(jīng)被分配出去的緩沖區(qū),對于申請釋放未分配的緩沖區(qū)的操作不 執(zhí)行緩沖區(qū)索引壓入空閑緩沖區(qū)堆棧的操作,有效的避免了空閑緩沖區(qū)堆棧內(nèi)的索引出現(xiàn) 混亂情況的發(fā)生。但是,通過增加緩沖區(qū)信息記錄器,只能保證空閑緩沖區(qū)堆棧內(nèi)的索引不 會混亂。當(dāng)外部緩沖區(qū)使用模塊維護緩沖區(qū)索引出現(xiàn)錯誤時,已經(jīng)被分配的緩沖區(qū)就不能 被釋放,就會導(dǎo)致緩沖區(qū)泄漏情況發(fā)生。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種緩沖區(qū)管理方法,用于解決緩沖區(qū)泄 露的技術(shù)問題,為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的一種緩沖區(qū)管理方法,其特征在于,A、根據(jù)用戶請求分配緩沖區(qū)的請求為用戶分配緩沖區(qū),并記錄緩沖區(qū)分配的時 間;B、在緩沖區(qū)老化定時時間到時,依據(jù)所述緩沖區(qū)分配的時間逐一判斷已分配的緩 沖區(qū)是否達到老化要求,若是則回收該緩沖區(qū);C、根據(jù)用戶請求釋放緩沖區(qū)的請求,釋放標(biāo)識為已被分配的緩沖區(qū)。進一步地,步驟A具體為Al、接收到用戶請求分配緩沖區(qū)的請求后,獲取當(dāng)前堆棧指針指向的緩沖區(qū)索 引;A2、在緩沖區(qū)信息記錄器中標(biāo)識當(dāng)前堆棧指針指向的緩沖區(qū)索引對應(yīng)的緩沖區(qū)已 被分配、記錄該緩沖區(qū)被分配的時間、標(biāo)識緩沖區(qū)老化標(biāo)記為新分配狀態(tài);A3、執(zhí)行空閑緩沖區(qū)堆棧出棧操作并向用戶反饋分配結(jié)果。進一步地,步驟B中,判斷已分配的緩沖區(qū)是否達到老化要求以及回收該緩沖區(qū) 的步驟具體為Bi、根據(jù)緩沖區(qū)信息記錄器中記錄的緩沖區(qū)被分配的時刻判斷該緩沖區(qū)被分配的 時間是否超過了老化定時周期,若是則執(zhí)行步驟B2 ;否則對該緩沖區(qū)不做處理;B2、判斷該緩沖區(qū)的老化標(biāo)識是否為老化狀態(tài),若是釋放該緩沖區(qū);否則將該緩沖 區(qū)標(biāo)記為老化狀態(tài)。進一步地,步驟C具體為判斷用戶請求釋放的緩沖區(qū)是否為已被分配的緩沖區(qū),若是則將緩沖區(qū)信息記錄 器中該緩沖區(qū)的已分配標(biāo)識修改為未分配狀態(tài)并對該緩沖區(qū)執(zhí)行入棧操作,向用戶反饋緩 沖區(qū)釋放操作結(jié)果;若請求釋放的緩沖區(qū)為空閑狀態(tài)則直接向用戶反饋緩沖區(qū)釋放操作結(jié)果。本發(fā)明的另一目的在于提供一種緩沖區(qū)管理系統(tǒng),為達到上述目的,本發(fā)明的技 術(shù)方案是這樣實現(xiàn)的一種緩沖區(qū)管理系統(tǒng),包括控制邏輯實體、堆棧指針、空閑緩沖區(qū)堆棧、緩沖區(qū)信息記錄器及緩沖區(qū)老化模塊。緩沖區(qū)老化模塊,用于定時逐一判斷已被分配的緩沖區(qū)是否 長時間沒有釋放,若是則通知控制邏輯實體執(zhí)行回收操作;所述緩沖區(qū)信息記錄器中還包括已分配標(biāo)識、緩沖區(qū)被分配的時間及緩沖區(qū)老化 標(biāo)記,所述緩沖區(qū)老化模塊根據(jù)所述緩沖區(qū)被分配的時間及緩沖區(qū)老化標(biāo)記判斷已被分配 的緩沖區(qū)是否長時間沒有釋放。進一步地,在接收到用戶請求分配緩沖區(qū)的的請求后,由控制邏輯實體執(zhí)行緩沖 區(qū)的出棧操作,并在所述緩沖區(qū)信息記錄器中記錄當(dāng)前被分配的緩沖區(qū)的被分配時間、標(biāo) 識該緩沖區(qū)的老化標(biāo)識為新分配狀態(tài)、向用戶反饋緩沖區(qū)分配結(jié)果。進一步地,由控制邏輯實體根據(jù)緩沖區(qū)信息記錄器中記錄的緩沖區(qū)被分配的時刻 判斷該緩沖區(qū)被分配的時間是否超過了老化定時周期,若是則繼續(xù)判斷該緩沖區(qū)老化標(biāo)記 是否為老化狀態(tài),若為老化狀態(tài)則釋放該緩沖區(qū),否則將該緩沖區(qū)的老化標(biāo)記設(shè)置為老化 狀態(tài);若未超過老化定時時間,則不做處理。進一步地,控制邏輯實體接收到用戶的釋放請求后,根據(jù)緩沖區(qū)信息記錄器中的 已分配標(biāo)識判斷用戶請求釋放的緩沖區(qū)是否為已被分配的緩沖區(qū),若是則將緩沖區(qū)信息記 錄器中該緩沖區(qū)的已分配標(biāo)識修改為未分配狀態(tài)并控制堆棧指針及空閑緩沖區(qū)堆棧執(zhí)行 入棧操作;否則不執(zhí)行入棧操作;然后向用戶反饋緩沖區(qū)釋放操作結(jié)果。通過本發(fā)明公開的上述系統(tǒng)結(jié)構(gòu)和操作方法,在分配緩沖區(qū)的時候,在對應(yīng)的信 息記錄器條目中記錄下該緩沖區(qū)已經(jīng)被分配;在釋放緩沖區(qū)的時候,首先要查詢待釋放的 緩沖區(qū)的信息,如果該緩沖區(qū)是已經(jīng)被分配出去的緩沖區(qū),下一步可以釋放該緩沖區(qū),將該 緩沖區(qū)索引壓入空閑緩沖區(qū)堆棧。如果該緩沖區(qū)是空閑緩沖區(qū),說明外部出現(xiàn)了錯誤,給出 了錯誤的緩沖區(qū)索引或連續(xù)多次企圖釋放同一緩沖區(qū),為了避免空閑緩沖區(qū)堆棧中會存在 重復(fù)的索引,拒絕將這個緩沖區(qū)索引壓入空閑緩沖區(qū)堆棧,直接向緩沖區(qū)使用者給出釋放 緩沖區(qū)應(yīng)答信號。對于這些出錯的緩沖區(qū)索引,通過引入了緩沖區(qū)老化機制,避免了緩沖區(qū) 泄漏的發(fā)生,提高了緩沖區(qū)管理器的健壯性,可靠性。


圖1為傳統(tǒng)的堆棧式緩沖區(qū)管理器系統(tǒng)結(jié)構(gòu)示意圖;圖2為經(jīng)過一段時間的分配釋放后,傳統(tǒng)空閑緩沖區(qū)堆棧中的內(nèi)容;圖3為釋放出錯后,傳統(tǒng)空閑緩沖區(qū)堆棧中的內(nèi)容;圖4為本發(fā)明改進后的堆棧式緩沖區(qū)管理器系統(tǒng)結(jié)構(gòu)示意圖;圖5為本發(fā)明緩沖區(qū)分配流程圖;圖6為本發(fā)明緩沖區(qū)釋放流程圖;圖7為本發(fā)明緩沖區(qū)老化流程圖。
具體實施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,以下舉實施例并參照附圖,對 本發(fā)明進一步詳細說明。本發(fā)明公開的可靠的緩沖區(qū)管理器系統(tǒng)如附圖4中,包含五個組成部分控制邏 輯實體401、堆棧指針402、空閑緩沖區(qū)堆棧403、緩沖區(qū)信息記錄器404、緩沖區(qū)老化模塊407。存儲器405是被管理的對象,存儲器劃分成很多小塊緩沖區(qū),每個緩沖區(qū)用一個索引 index來表示。索引圖406物理上不存在,是為了理解方便,用來說明緩沖區(qū)索引和緩沖區(qū) 與緩沖區(qū)信息記錄器條目之間的一一對應(yīng)關(guān)系。在緩沖區(qū)信息記錄器中為每個索引創(chuàng)建一 個條目info,每個條目和索引——對應(yīng),如indexO對應(yīng)infoO、indexl對應(yīng)infol、index2 對應(yīng)info2、依次類推。本發(fā)明與傳統(tǒng)緩沖區(qū)管理器相比,增加了緩沖區(qū)老化模塊,并對緩沖區(qū)信息記錄 器記錄的信息進行了擴充,增加了緩沖區(qū)分配的時間信息以及老化標(biāo)記。緩沖區(qū)信息記錄 器的每一個記錄條目分別和一塊緩沖區(qū)一一對應(yīng)。緩沖區(qū)信息記錄器用來記錄每一塊緩沖 區(qū)的相關(guān)信息,包括該緩沖區(qū)是處于空閑狀態(tài)還是正在被使用中,該緩沖區(qū)被分配的時間, 該緩沖區(qū)是否被老化的標(biāo)記。為了防止緩沖區(qū)被錯誤老化,在緩沖區(qū)記錄器中設(shè)置了緩沖 區(qū)老化標(biāo)記,使用方法例如當(dāng)該標(biāo)記為表示新分配狀態(tài)值1時表示該緩沖區(qū)剛被分配,當(dāng) 該標(biāo)記為老化狀態(tài)值0時表示該緩沖區(qū)已經(jīng)長時間沒有被使用過。當(dāng)設(shè)置的用于定時執(zhí)行 緩沖區(qū)老化檢測的定時器的老化定時周期到時,控制邏輯實體就逐條掃描緩沖區(qū)信息記錄 器,判斷已經(jīng)被分配出去的緩沖區(qū)的分配時間是否超過老化定時周期,如果是就將緩沖區(qū) 老化標(biāo)記為新分配狀態(tài)1的置為老化狀態(tài)0,不進行緩沖區(qū)的回收;否則將緩沖區(qū)老化標(biāo)記 為老化狀態(tài)0的進行緩沖區(qū)的回收操作。圖5為本發(fā)明緩沖區(qū)分配步驟流程圖,具體步驟如下501,緩沖區(qū)管理器收到緩沖區(qū)使用者的分配請求后,由控制邏輯實體訪問堆棧指 針,查找當(dāng)前堆棧指針指向的緩沖區(qū)索引;502,控制邏輯實體從堆棧指針指向的空閑緩沖區(qū)堆棧記錄中讀取緩沖區(qū)索引,并 在緩沖區(qū)信息記錄器中該索引對應(yīng)的條目中記錄分配的相關(guān)信息;分配的相關(guān)信息包括該緩沖區(qū)被分配的狀態(tài)、緩沖區(qū)被分配的時刻、緩沖區(qū)使用 者、緩沖區(qū)老化標(biāo)記等信息,該步驟中將緩沖區(qū)老化標(biāo)記置為新分配狀態(tài)1,表示該緩沖區(qū) 為新分配的緩沖區(qū);503,在控制邏輯實體的控制下,空閑緩沖區(qū)堆棧執(zhí)行出棧操作,堆棧指針下移一

少;504,控制邏輯實體將該緩沖區(qū)索引通知給發(fā)起本次請求的緩沖區(qū)使用者,并給出 緩沖區(qū)分配應(yīng)答信號,分配緩沖區(qū)操作結(jié)束。圖6為本發(fā)明緩沖區(qū)釋放緩步驟流程圖,具體步驟如下601,控制邏輯實體收到緩沖區(qū)使用者的釋放請求后,記錄下該使用者企圖釋放的 緩沖區(qū)索引;602,查找緩沖區(qū)信息記錄器中該緩沖區(qū)索引對應(yīng)的條目,讀取條目中記錄的緩沖 區(qū)信息;603,控制邏輯實體根據(jù)讀取到的緩沖區(qū)信息進行判斷;該緩沖區(qū)是否為空閑緩沖 區(qū),若是則執(zhí)行步驟605 ;否則執(zhí)行步驟604 ;604,如果緩沖區(qū)信息表明此緩沖區(qū)是非空閑緩沖區(qū),及被分配出去的緩沖區(qū),則 改寫緩沖區(qū)信息,將該緩沖區(qū)的已分配標(biāo)識設(shè)置為未分配狀態(tài),以及將緩沖區(qū)被分配的時 間、老化標(biāo)記都置空,表明該緩沖區(qū)已經(jīng)被釋放,控制邏輯實體將緩沖區(qū)索引壓入空閑緩沖 區(qū)堆棧,執(zhí)行入棧操作,堆棧指針上移一步;轉(zhuǎn)到606 ;
605,如果緩沖區(qū)信息表明此緩沖區(qū)是空閑緩沖區(qū),沒有被使用,則一定是外部使 用者維護索引出錯了,控制邏輯實體不進行壓棧操作,堆棧指針也不變;606,控制邏輯實體向使用者反饋緩沖區(qū)釋放操作結(jié)果,釋放緩沖區(qū)操作結(jié)束。圖7為本發(fā)明緩沖區(qū)老化處理流程圖,具體步驟如下701,緩沖區(qū)老化模塊從緩沖區(qū)信息記錄器中讀取一條為處理的條目;緩沖區(qū)老化模塊啟動一老化定時器,該定時器的定時周期設(shè)置為老化定時周期, 當(dāng)緩沖區(qū)老化定時周期到時,緩沖區(qū)老化模塊開始逐一讀取緩沖區(qū)信息記錄器中的條目, 需要說明的是,緩沖區(qū)老化模塊只讀取已經(jīng)被分配出去的緩沖區(qū)對應(yīng)的條目,對未被分配 的條目不做處理,緩沖區(qū)老化模塊將根據(jù)讀取的條目信息判斷對應(yīng)的緩沖區(qū)是否達到老化 要求,然后對于已經(jīng)老化,達到回收時間條件的緩沖區(qū)執(zhí)行回收操作。702,根據(jù)讀取到的緩沖區(qū)信息進行判斷,判斷分配出去的時間是否超過了老化定 時周期,如果是則執(zhí)行步驟703 ;否則執(zhí)行步驟701 ;如果未超過老化定時周期,則不對該條目對應(yīng)的緩沖區(qū)進行處理,返回處理下一 條目。703,在超過老化定時周期的情況下,判斷對應(yīng)緩沖區(qū)老化標(biāo)記是否為老化狀態(tài)0 ; 若是則執(zhí)行步驟704 ;否則執(zhí)行步驟705 ;704,將該條目對應(yīng)的緩沖區(qū)釋放;然后執(zhí)行步驟706 ;705,將該條目中的緩沖區(qū)老化標(biāo)記修改為老化狀態(tài)0,并重新寫入緩沖區(qū)信息記 錄器中;706,判斷是否處理完緩沖區(qū)信息記錄器中的所有條目,若是則結(jié)束該輪操作,等 待下一個老化定時周期到達;否則執(zhí)行步驟701。緩沖區(qū)管理器可以服務(wù)多個緩沖區(qū)使用者,使用者需要使用緩沖區(qū)時向緩沖區(qū)管 理器申請分配,使用完緩沖區(qū)后向緩沖區(qū)管理器申請釋放該緩沖區(qū),回收供以后使用。控制 邏輯實體部分根據(jù)外部的分配或者釋放請求,根據(jù)優(yōu)先級策略仲裁,選擇處理某一個申請 源的請求,然后訪問堆棧指針、空閑緩沖區(qū)堆棧、緩沖區(qū)信息記錄器,根據(jù)本發(fā)明公開的方 法步驟進行處理,以下給出一實施例來模擬實際的運行過程Cl,初始時,堆棧指針指向addrO,外部緩沖區(qū)使用者申請分配緩沖區(qū)時,地址 addrO中的索引是indexO,indexO對應(yīng)的緩沖區(qū)信息記錄器條目是infoO,往infoO寫入標(biāo) 志1,表示indexO緩沖區(qū)已經(jīng)被分配使用,并記錄該緩沖區(qū)分配的時間信息,堆棧指針下移 一步,指向addrl,然后把indexO及緩沖區(qū)分配應(yīng)答信號一起送給緩沖區(qū)使用者,分配緩沖 區(qū)結(jié)束;C2,緩沖區(qū)使用者申請分配緩沖區(qū),addrl中的索引是indexl,indexl對應(yīng)的緩沖 區(qū)信息記錄器條目是infol Jiinfol寫入標(biāo)志1,并記錄該緩沖區(qū)分配的時間信息,堆棧指 針下移一步,指向addr2,然后把indexl及緩沖區(qū)分配應(yīng)答信號一起送給緩沖區(qū)使用者,分 配緩沖區(qū)結(jié)束;C3,緩沖區(qū)使用者請求釋放緩沖區(qū)indexO,讀取緩沖區(qū)信息記錄器infoO中的標(biāo) 志,標(biāo)志是1,表明該緩沖區(qū)已經(jīng)被分配使用,可以釋放,改寫標(biāo)志,將標(biāo)志寫為0,表明該緩 沖區(qū)將被釋放,轉(zhuǎn)為空閑狀態(tài)。將堆棧指針上移一步,指向addrl,將indexO寫入堆棧中 addrl處,給出釋放緩沖區(qū)應(yīng)答信號,釋放緩沖區(qū)結(jié)束;
C4,緩沖區(qū)使用者請求釋放緩沖區(qū)indexO,讀取緩沖區(qū)信息記錄器infoO條目。由 于C3步驟時,infoO已經(jīng)被寫為0,表示該緩沖區(qū)已經(jīng)是空閑緩沖區(qū),企圖釋放一個空閑緩 沖區(qū)是錯誤的,不把緩沖區(qū)索引入棧,堆棧指針不變。直接給出釋放緩沖區(qū)應(yīng)答信號,釋放 緩沖區(qū)結(jié)束。C5,老化定時時間到,掃描緩沖區(qū)信息記錄器,緩沖區(qū)信息記錄器中記錄的時間信 息進行判斷,對于已經(jīng)被分配出去的緩沖區(qū),如果緩沖區(qū)被分配的時間超過了老化定時周 期,即達到了老化要求,則判斷緩沖區(qū)老化標(biāo)記,如果為1,將其置0重新寫入該條緩沖區(qū)信 息記錄器,如果為0,則將該緩沖區(qū)釋放。如果未達到老化要求或者該緩沖區(qū)未分配出去,則 不對該條緩沖區(qū)信息記錄器進行操作在C4步驟中,可以成功地檢測到了外部釋放緩沖區(qū)操作的錯誤,拒絕執(zhí)行會引起 空閑緩沖區(qū)堆?;靵y的操作,直接給出釋放應(yīng)答信號;步驟C5采用本發(fā)明的緩沖區(qū)管理器 可以將錯誤分配的緩沖區(qū)再利用,避免了緩沖區(qū)泄漏,大大提高了緩沖區(qū)管理器的健壯性、
可靠性。以上所述,僅為本發(fā)明的較佳實施例而已,并非用于限定本發(fā)明的保護范圍。
權(quán)利要求
一種緩沖區(qū)管理方法,其特征在于,包括A、根據(jù)用戶請求分配緩沖區(qū)的請求為用戶分配緩沖區(qū),并記錄緩沖區(qū)分配的時間;B、在緩沖區(qū)老化定時時間到時,依據(jù)所述緩沖區(qū)分配的時間逐一判斷已分配的緩沖區(qū)是否達到老化要求,若是則回收該緩沖區(qū);C、根據(jù)用戶請求釋放緩沖區(qū)的請求,釋放標(biāo)識為已被分配的緩沖區(qū)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟A具體為Al、接收到用戶請求分配緩沖區(qū)的請求后,獲取當(dāng)前堆棧指針指向的緩沖區(qū)索引;A2、在緩沖區(qū)信息記錄器中標(biāo)識當(dāng)前堆棧指針指向的緩沖區(qū)索引對應(yīng)的緩沖區(qū)已被分 配、記錄該緩沖區(qū)被分配的時間、標(biāo)識緩沖區(qū)老化標(biāo)記為新分配狀態(tài);A3、執(zhí)行空閑緩沖區(qū)堆棧出棧操作并向用戶反饋分配結(jié)果。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,步驟B中,判斷已分配的緩沖區(qū)是否達到 老化要求以及回收該緩沖區(qū)的步驟具體為Bi、根據(jù)緩沖區(qū)信息記錄器中記錄的緩沖區(qū)被分配的時刻判斷該緩沖區(qū)被分配的時間 是否超過了老化定時周期,若是則執(zhí)行步驟B2 ;否則對該緩沖區(qū)不做處理;B2、判斷該緩沖區(qū)的老化標(biāo)識是否為老化狀態(tài),若是釋放該緩沖區(qū);否則將該緩沖區(qū)標(biāo) 記為老化狀態(tài)。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,步驟C具體為判斷用戶請求釋放的緩沖區(qū)是否為已被分配的緩沖區(qū),若是則將緩沖區(qū)信息記錄器中 該緩沖區(qū)的已分配標(biāo)識修改為未分配狀態(tài)并對該緩沖區(qū)執(zhí)行入棧操作,向用戶反饋緩沖區(qū) 釋放操作結(jié)果;若請求釋放的緩沖區(qū)為空閑狀態(tài)則直接向用戶反饋緩沖區(qū)釋放操作結(jié)果。
5.一種緩沖區(qū)管理系統(tǒng),包括控制邏輯實體、堆棧指針、空閑緩沖區(qū)堆棧、緩沖區(qū)信息 記錄器,其特征在于,還包括緩沖區(qū)老化模塊,用于定時逐一判斷已被分配的緩沖區(qū)是否長時間沒有釋放,若是則 通知控制邏輯實體執(zhí)行回收操作;所述緩沖區(qū)信息記錄器中還包括已分配標(biāo)識、緩沖區(qū)被分配的時間及緩沖區(qū)老化標(biāo) 記,所述緩沖區(qū)老化模塊根據(jù)所述緩沖區(qū)被分配的時間及緩沖區(qū)老化標(biāo)記判斷已被分配的 緩沖區(qū)是否長時間沒有釋放。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,在接收到用戶請求分配緩沖區(qū)的的請求 后,由控制邏輯實體執(zhí)行緩沖區(qū)的出棧操作,并在所述緩沖區(qū)信息記錄器中記錄當(dāng)前被分 配的緩沖區(qū)的被分配時間、標(biāo)識該緩沖區(qū)的老化標(biāo)識為新分配狀態(tài)、向用戶反饋緩沖區(qū)分 配結(jié)果。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,由控制邏輯實體根據(jù)緩沖區(qū)信息記錄器 中記錄的緩沖區(qū)被分配的時刻判斷該緩沖區(qū)被分配的時間是否超過了老化定時周期,若是 則繼續(xù)判斷該緩沖區(qū)老化標(biāo)記是否為老化狀態(tài),若為老化狀態(tài)則釋放該緩沖區(qū),否則將該 緩沖區(qū)的老化標(biāo)記設(shè)置為老化狀態(tài);若未超過老化定時時間,則不做處理。
8.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,控制邏輯實體接收到用戶的釋放請求后, 根據(jù)緩沖區(qū)信息記錄器中的已分配標(biāo)識判斷用戶請求釋放的緩沖區(qū)是否為已被分配的緩 沖區(qū),若是則將緩沖區(qū)信息記錄器中該緩沖區(qū)的已分配標(biāo)識修改為未分配狀態(tài)并控制堆棧 指針及空閑緩沖區(qū)堆棧執(zhí)行入棧操作;否則不執(zhí)行入棧操作;然后向用戶反饋緩沖區(qū)釋放操作結(jié)果。
全文摘要
本發(fā)明公開了一種緩沖區(qū)管理方法及系統(tǒng),用于解決緩沖區(qū)泄露的技術(shù)問題。本發(fā)明定時檢測緩沖區(qū)分配出去的時間,對于長時間沒有釋放的緩沖區(qū)進行老化,自動將長時間沒有釋放的緩沖區(qū)執(zhí)行壓入空閑緩沖區(qū)堆棧的操作,完成緩沖區(qū)的回收,避免緩沖區(qū)泄漏的發(fā)生,從而提高了緩沖區(qū)管理器的健壯性和可靠性。
文檔編號G06F12/08GK101923517SQ20091008706
公開日2010年12月22日 申請日期2009年6月17日 優(yōu)先權(quán)日2009年6月17日
發(fā)明者吳春華, 婁本剛 申請人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
资源县| 开鲁县| 彰化县| 正阳县| 通州市| 富川| 夏津县| 华容县| 政和县| 永州市| 金山区| 高陵县| 天水市| 晋宁县| 武鸣县| 垣曲县| 靖江市| 神池县| 延长县| 本溪| 乌什县| 保德县| 轮台县| 延津县| 长子县| 昆明市| 舞阳县| 宁远县| 若羌县| 丹东市| 双牌县| 安化县| 瓮安县| 莎车县| 连州市| 漠河县| 宁陵县| 新余市| 芦溪县| 华阴市| 东乌珠穆沁旗|