久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 模擬技術 > 設計應用 > R TOS動態分區內存管理機制的優化設計

R TOS動態分區內存管理機制的優化設計

作者: 時間:2009-10-13 來源:網絡 收藏
假設小塊內存最小為1字節,并以2的指數遞增,最大為512字節。這也就意味著當系統需要分配或釋放小于或等于512字節的內存時,會執行小塊內存操作。圖5和圖6分別是小塊內存的分配和回收流程(圖中j代表需操作的小塊內存對應的緩存號,若申請120字節則j對應為8;min代表小塊內存最大的緩存號,如圖中min=9)。

本文引用地址:http://cqxgywz.com/article/188571.htm

圖7是對小塊內存操作算法的簡單模擬。小塊內存緩存區從上到下依次緩存512~64字節的內存塊。有4個操作過程:分配64字節→分配128字節→回收64字節→回收128字節。

①分配64字節。初始狀態小塊內存緩存區為空,此時將會執行大塊內存分配操作并將1 KB內存分割緩存到小塊內存緩存區。在分配64字節內存時,系統自動探測到了128字節、256字節和512字節處的緩存區已經處于饑餓狀態,因此也將會分配其緩存區1塊內存。
②分配128字節。由于系統存在該大小的緩存,因此直接獲取并返回。
③回收64字節。由于釋放后,系統中64字節大小的內存塊可以合并,因此合并后鏈入上一級緩存區。
④回收128字節。內存塊再次進行合并操作,最終調用大塊內存釋放操作,從而回到原始態。
圖7所示的內存操作只是一個非常簡單的模擬,實際系統內存的分配和回收是非常復雜和不確定的,而小塊內存緩存分配機制的性能在這種情況下表現得尤為突出??傮w而言其具有以下幾點優勢:
①快速性。因為使用了緩存機制,所以在大部分情況下,小塊內存釋放后依舊在緩存區中,當系統再次分配該大小的內存塊時就極為快速。
②自適應性。在分配小塊內存的過程中,算法能檢測出處于饑餓狀態的內存塊大小,并依次為它們所在的緩存區分配1塊相應大小的內存塊。
性。在小塊內存的回收過程中,該算法將對內存塊進行合并重組。假若某時刻先前從大塊內存中分配的1 KB內存塊全部被小內存塊釋放,其經過重組后必定能重新添加到大內存塊存儲區。

3 優化后的系統機制
圖8和圖9分別是優化后系統分配和回收內存的算法,圖中的max代表的是小塊內存的最大值。當不能得到所需的小塊內存,或者釋放小塊內存最終合并成大塊內存時,分別調用大塊內存分配和釋放操作,從而保證小塊內存和大塊內存操作能很好地協作,增強了系統的穩定性。

結 語
盡管在引入小塊內存緩存分配機制后,系統在分配小塊內存時會存在一定的內存內部碎片,但由于小塊內存本身很小以及大塊內存的動態管理機制,很好地降低了系統中由于存在內存碎片而帶來的風險。在實際模擬測驗1中,經優化過的動態機制能在一定程度上提高系統的實時性及可靠性,在嵌入式R的設計中具有實際的意義。


上一頁 1 2 下一頁

評論


相關推薦

技術專區

關閉