資料介紹
隨著硬件技術(shù)的發(fā)展和內(nèi)存容量的擴大,操作系統(tǒng)中內(nèi)存管理技術(shù)日趨完善。但是在嵌入式領(lǐng)域中,硬件性能和內(nèi)存容量遠遠落后于PC機,其內(nèi)存管理受到多種因素制約,若直接采用操作系統(tǒng)中的內(nèi)存管理技術(shù),不僅難以達到預期效果,而且會影響嵌入式系統(tǒng)的性能。
在嵌入式系統(tǒng)內(nèi)存管理設(shè)計過程中,發(fā)現(xiàn)操作系統(tǒng)中的slab分配器雖然在PC機上有良好的性能,但是在嵌入式系統(tǒng)中不但不能發(fā)揮其優(yōu)勢,還降低了系統(tǒng)的整體性能。本文通過分析,指出了slab分配器的不足,并給出相應(yīng)的解決方案。實驗結(jié)果表明,slab分配器經(jīng)過改進可適用于嵌入式系統(tǒng)。
1 slab分配器分析
操作系統(tǒng)內(nèi)核運行時會頻繁地為某些對象分配內(nèi)存空間,而這些對象往往只需要幾十或幾百KB的空間,如果直接采用頁面管理器進行內(nèi)存分配,將產(chǎn)生很多內(nèi)存碎片,造成嚴重的內(nèi)存浪費。slab分配器支持細粒度的內(nèi)存分配,較好地解決了此問題。由于性能優(yōu)越,slab被Linux、FreeBSD等操作系統(tǒng)采用,是目前應(yīng)用最廣的內(nèi)核內(nèi)存管理器之一[1]。
1.1 slab分配器設(shè)計思想
基于頁面分配器[2],將一頁或幾頁的內(nèi)存組織起來,劃分成一定數(shù)量的小塊內(nèi)存,這種連續(xù)的頁面稱之為slab。它為內(nèi)核中使用頻繁的對象建立專門的緩沖區(qū)(cache),每種類型的對象都有自己專用的cache[2]。一個cache管理著多個slab,每個slab又管理著多個對象。slab的大小與所管理對象的大小有關(guān)。根據(jù)slab管理對象的分配情況,可將每個cache中的slab分為3類[3-4]:(1)slab管理的對象已經(jīng)完全分配,沒有空閑的對象;(2)slab管理的對象部分分配,還有部分空閑對象;(3)slab中的對象都未分配,都是空閑對象。
不同的slab分別放入不同的隊列中,即每個cache管理3個slab隊列,cache與cache之間的關(guān)系如圖1虛框①內(nèi)所示,cache與slab的關(guān)系如圖1虛框②內(nèi)所示。

當slab分配器接收到內(nèi)存申請時,根據(jù)所申請內(nèi)存的大小找到合適的cache,從cache管理的第二類slab中分配對象,若失敗則從第三類slab中分配對象,若還不成功則說明cache中沒有空閑對象,須為cache創(chuàng)建一個新的slab,從新的slab中分配空閑對象。
對象釋放過程中,不僅要清空對象占用的空間,而且還要調(diào)整對象所屬slab的狀態(tài),判斷是否改變此slab在cache中的位置。
slab分配器采用著色機制將不同slab中的對象放入不同的偏移處,利用硬件高速緩存的映射機制,將頁的不同偏移映射到硬件緩存的不同地址。而每個slab的開始部分訪問頻率最高,只要slab中起始對象的偏移不同則映射到硬件高速緩存的位置就不同,從而降低了頻繁換入換出的性能損失[4-5]。
1.2 slab分配器在嵌入式系統(tǒng)中的缺陷
slab分配器雖然能解決系統(tǒng)對小塊內(nèi)存的頻繁需求,但是管理結(jié)構(gòu)復雜,內(nèi)存分配策略開銷較大。在內(nèi)存受限的嵌入式系統(tǒng)中,slab的缺陷大大影響了系統(tǒng)的整體性能??傊?,slab分配器存在以下三方面的缺陷:
在嵌入式系統(tǒng)內(nèi)存管理設(shè)計過程中,發(fā)現(xiàn)操作系統(tǒng)中的slab分配器雖然在PC機上有良好的性能,但是在嵌入式系統(tǒng)中不但不能發(fā)揮其優(yōu)勢,還降低了系統(tǒng)的整體性能。本文通過分析,指出了slab分配器的不足,并給出相應(yīng)的解決方案。實驗結(jié)果表明,slab分配器經(jīng)過改進可適用于嵌入式系統(tǒng)。
1 slab分配器分析
操作系統(tǒng)內(nèi)核運行時會頻繁地為某些對象分配內(nèi)存空間,而這些對象往往只需要幾十或幾百KB的空間,如果直接采用頁面管理器進行內(nèi)存分配,將產(chǎn)生很多內(nèi)存碎片,造成嚴重的內(nèi)存浪費。slab分配器支持細粒度的內(nèi)存分配,較好地解決了此問題。由于性能優(yōu)越,slab被Linux、FreeBSD等操作系統(tǒng)采用,是目前應(yīng)用最廣的內(nèi)核內(nèi)存管理器之一[1]。
1.1 slab分配器設(shè)計思想
基于頁面分配器[2],將一頁或幾頁的內(nèi)存組織起來,劃分成一定數(shù)量的小塊內(nèi)存,這種連續(xù)的頁面稱之為slab。它為內(nèi)核中使用頻繁的對象建立專門的緩沖區(qū)(cache),每種類型的對象都有自己專用的cache[2]。一個cache管理著多個slab,每個slab又管理著多個對象。slab的大小與所管理對象的大小有關(guān)。根據(jù)slab管理對象的分配情況,可將每個cache中的slab分為3類[3-4]:(1)slab管理的對象已經(jīng)完全分配,沒有空閑的對象;(2)slab管理的對象部分分配,還有部分空閑對象;(3)slab中的對象都未分配,都是空閑對象。
不同的slab分別放入不同的隊列中,即每個cache管理3個slab隊列,cache與cache之間的關(guān)系如圖1虛框①內(nèi)所示,cache與slab的關(guān)系如圖1虛框②內(nèi)所示。

當slab分配器接收到內(nèi)存申請時,根據(jù)所申請內(nèi)存的大小找到合適的cache,從cache管理的第二類slab中分配對象,若失敗則從第三類slab中分配對象,若還不成功則說明cache中沒有空閑對象,須為cache創(chuàng)建一個新的slab,從新的slab中分配空閑對象。
對象釋放過程中,不僅要清空對象占用的空間,而且還要調(diào)整對象所屬slab的狀態(tài),判斷是否改變此slab在cache中的位置。
slab分配器采用著色機制將不同slab中的對象放入不同的偏移處,利用硬件高速緩存的映射機制,將頁的不同偏移映射到硬件緩存的不同地址。而每個slab的開始部分訪問頻率最高,只要slab中起始對象的偏移不同則映射到硬件高速緩存的位置就不同,從而降低了頻繁換入換出的性能損失[4-5]。
1.2 slab分配器在嵌入式系統(tǒng)中的缺陷
slab分配器雖然能解決系統(tǒng)對小塊內(nèi)存的頻繁需求,但是管理結(jié)構(gòu)復雜,內(nèi)存分配策略開銷較大。在內(nèi)存受限的嵌入式系統(tǒng)中,slab的缺陷大大影響了系統(tǒng)的整體性能??傊?,slab分配器存在以下三方面的缺陷:
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- POL全光醫(yī)院解決方案 光纖到病房解決方案 光纖到診室解決方案(最新版)
- POL全光校園解決方案 光纖到教室解決方案 光纖到宿舍解決方案(最新版)
- 智慧水務(wù)解決方案
- 智慧消防解決方案2020
- 探究在線修復立磨搖臂軸承室磨損的解決方案 2次下載
- 探究USB協(xié)議架構(gòu)及驅(qū)動架構(gòu) 1次下載
- 探究LRC產(chǎn)品在智能手機中的應(yīng)用.pdf 13次下載
- 探究機械工程物聯(lián)網(wǎng)系統(tǒng)遠程解決方案 15次下載
- 探究快速維修壓榨輥軸承位磨損的解決方案 2次下載
- N76E003的EEPROM問題解決方案:使用Data Flash模擬EEPROM
- 汽車解決方案概述 21次下載
- 擴容后CPRI帶寬不足解決案例資料下載
- ESD解決方案資料下載
- winbond電動車的解決方案詳細資料說明 30次下載
- 關(guān)于SMT回流焊中出現(xiàn)的缺陷及其解決方案資料下載 30次下載
- IP67氣密測試儀壓力不足怎么解決 177次閱讀
- Linux內(nèi)核內(nèi)存管理之slab分配器 1307次閱讀
- ARK(方舟微)DMZ6005E在PD快充方案中的應(yīng)用說明 1343次閱讀
- 基于PyTorch AMD的解決方案 945次閱讀
- ADM3055E/ADM3057E收發(fā)器CAN FD端口上IEC 61000-4-5浪涌保護的解決方案 1010次閱讀
- 深入剖析SLUB分配器和SLAB分配器的區(qū)別 1119次閱讀
- linux內(nèi)存管理中的SLAB分配器詳解 2217次閱讀
- 復合放大器實現(xiàn)高精度的高輸出驅(qū)動能力 獲得最佳的性能 1712次閱讀
- 電源功率不足會怎么樣_電腦電源功率不足的表現(xiàn) 3.7w次閱讀
- E523.52—高集成度電機控制芯片 1.1w次閱讀
- 多核心Linux的slab系統(tǒng)的內(nèi)核優(yōu)化方面 2690次閱讀
- 智慧醫(yī)療解決方案有哪些_智慧醫(yī)療解決方案供應(yīng)商推薦 1.7w次閱讀
- 用純硬件解決方案加速部分重配置進程 1748次閱讀
- 賽靈思關(guān)于Spartan-3E的低成本顯示器解決方案 1242次閱讀
- Cadence PCB設(shè)計解決方案 2295次閱讀
下載排行
本周
- 1EMC電路設(shè)計工程師必備的EMC基礎(chǔ)
- 0.42 MB | 4次下載 | 2 積分
- 2AU3116 2×60W模擬輸入雙通道Class-D 音頻功率放大器數(shù)據(jù)手冊
- 1.19 MB | 1次下載 | 免費
- 3低壓降肖特基整流管SR340L數(shù)據(jù)手冊
- 0.78 MB | 1次下載 | 免費
- 4ZX8002E 觸摸調(diào)光LED集成IC數(shù)據(jù)手冊
- 2.27 MB | 次下載 | 免費
- 5SOD-323塑料封裝ESD保護二極管SD05T系列規(guī)格書
- 1.07 MB | 次下載 | 免費
- 6SOT-23塑料封裝ESD保護二極管SMxx Series系列規(guī)格書
- 0.93 MB | 次下載 | 免費
- 7高效率整流二極管HER151 THRU HER158數(shù)據(jù)手冊
- 0.54 MB | 次下載 | 免費
- 8低壓降肖特基整流管SL22 THRU SL210數(shù)據(jù)手冊
- 1.03 MB | 次下載 | 免費
本月
- 1三相逆變主電路的原理圖和PCB資料合集免費下載
- 27.35 MB | 111次下載 | 1 積分
- 2運算放大器基本電路中文資料
- 1.30 MB | 16次下載 | 免費
- 3蘋果iphone 11電路原理圖
- 4.98 MB | 11次下載 | 5 積分
- 4TL494工業(yè)用開關(guān)電源原理圖資料
- 0.22 MB | 10次下載 | 1 積分
- 5常用電子元器件介紹
- 3.21 MB | 8次下載 | 免費
- 6QW2893應(yīng)急燈專用檢測芯片
- 590.40 KB | 4次下載 | 免費
- 7相關(guān)協(xié)議信號總結(jié)
- 0.94 MB | 4次下載 | 免費
- 8EMC電路設(shè)計工程師必備的EMC基礎(chǔ)
- 0.42 MB | 4次下載 | 2 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935130次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191390次下載 | 10 積分
- 5十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183344次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81591次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73815次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65989次下載 | 10 積分
評論