可控動態(tài)內(nèi)存分配器的研究與開發(fā)
發(fā)布時間:2023-04-09 03:37
動態(tài)內(nèi)存分配器是操作系統(tǒng)最基本的組成部分,在進程的執(zhí)行過程中為進程提供動態(tài)的內(nèi)存區(qū)域。進程能夠根據(jù)需要向動態(tài)內(nèi)存分配器申請新的內(nèi)存區(qū)域或者是釋放已經(jīng)分配了的內(nèi)存區(qū)域。動態(tài)內(nèi)存分配器也在高級語言程序設(shè)計中占有重要作用,其設(shè)計優(yōu)劣直接關(guān)系到進程的速度和內(nèi)存空間使用效率。 本文設(shè)計了一個基于類UNIX操作系統(tǒng)的用戶態(tài)下具有可控性的動態(tài)內(nèi)存分配器———ztmalloc。Ztmalloc根據(jù)用戶進程所申請的內(nèi)存空間大小使用三種不同的分配模式實現(xiàn),即小型、中型和大型模式。 小型模式下,ztmalloc對內(nèi)存塊進行兩次劃分,第一次劃分成為大小相等的內(nèi)存行,第二次將行劃分成大小相等的內(nèi)存區(qū)域,然后選擇空閑區(qū)域分配給用戶進程。 中型模式下,ztmalloc使用伙伴內(nèi)存系統(tǒng),對內(nèi)存塊進行劃分,然后選擇合適的區(qū)域進行分配。 大型模式下,ztmalloc取所需內(nèi)存空間大小向上向內(nèi)存塊大小的整數(shù)倍取整的結(jié)果作為用戶進程所需的內(nèi)存區(qū)域。 為了提高性能,ztmalloc還使用了包括多線程優(yōu)化、快速緩沖存儲器優(yōu)化、虛擬內(nèi)存系統(tǒng)優(yōu)化在內(nèi)的諸多優(yōu)化方式。 本文對于ztmalloc的性能進行了分析和測試,測試結(jié)果表明,zt...
【文章頁數(shù)】:61 頁
【學位級別】:碩士
【文章目錄】:
摘要
ABSTRACT
目錄
第一章 緒論
1.1 課題來源和意義
1.2 現(xiàn)有分配器實現(xiàn)
1.3 課題研究內(nèi)容
1.4 論文結(jié)構(gòu)安排
第二章 動態(tài)內(nèi)存分配的原理與技術(shù)
2.1 進程的虛擬地址空間
2.1.1 UNIX類操作系統(tǒng)的虛擬地址空間
2.1.2 Windows操作系統(tǒng)的虛擬地址空間
2.1.3 動態(tài)內(nèi)存分配的原理
2.2 高級語言中的動態(tài)內(nèi)存分配
2.3 設(shè)計目標
2.4 面臨的問題
2.4.1 內(nèi)存碎片
2.4.2 數(shù)據(jù)對齊和內(nèi)存訪問顆粒度
2.4.3 多線程
2.4.4 內(nèi)存區(qū)域之間的依存與局部性
2.5 計算機體系結(jié)構(gòu)的影響
2.5.1 存儲空間的訪問方式增強了局部性
2.5.2 內(nèi)存訪問的一致性
2.5.3 CPU與內(nèi)存之間的速度差距
2.5.4 內(nèi)存發(fā)展趨勢
2.6 操作系統(tǒng)的影響
2.7 本章小結(jié)
第三章 內(nèi)存分配器的設(shè)計
3.1 接口
3.2 內(nèi)存的分配模式
3.3 內(nèi)存分配
3.3.1 小型模式及其分配
3.3.2 中型模式及其分配
3.3.3 大型模式及其分配
3.4 內(nèi)存釋放
3.4.1 小型模式下的內(nèi)存釋放
3.4.2 中型模式下的內(nèi)存釋放
3.4.3 大型模式下的內(nèi)存釋放
3.5 內(nèi)存區(qū)域大小的改變
3.6 本章小結(jié)
第四章 實際應(yīng)用和性能測試
4.1 C語言和C++語言環(huán)境中的使用
4.2 優(yōu)化
4.2.1 多線程的優(yōu)化
4.2.2 空間分配時的內(nèi)存地址對齊
4.2.3 快速緩沖存儲器的優(yōu)化
4.2.4 虛擬內(nèi)存系統(tǒng)的優(yōu)化
4.2.5 安全性
4.3 內(nèi)存空間生存周期控制
4.4 內(nèi)存占用率分析
4.5 性能測試
4.5.1 速度測試
4.5.2 不同線程數(shù)目下的速度測試
4.5.3 內(nèi)存利用率測試
4.6 內(nèi)存布局圖
4.7 本章小結(jié)
第五章 總結(jié)與展望
5.1 總結(jié)
5.2 展望
參考文獻
致謝
攻讀學位期間主要的研究成果
本文編號:3786993
【文章頁數(shù)】:61 頁
【學位級別】:碩士
【文章目錄】:
摘要
ABSTRACT
目錄
第一章 緒論
1.1 課題來源和意義
1.2 現(xiàn)有分配器實現(xiàn)
1.3 課題研究內(nèi)容
1.4 論文結(jié)構(gòu)安排
第二章 動態(tài)內(nèi)存分配的原理與技術(shù)
2.1 進程的虛擬地址空間
2.1.1 UNIX類操作系統(tǒng)的虛擬地址空間
2.1.2 Windows操作系統(tǒng)的虛擬地址空間
2.1.3 動態(tài)內(nèi)存分配的原理
2.2 高級語言中的動態(tài)內(nèi)存分配
2.3 設(shè)計目標
2.4 面臨的問題
2.4.1 內(nèi)存碎片
2.4.2 數(shù)據(jù)對齊和內(nèi)存訪問顆粒度
2.4.3 多線程
2.4.4 內(nèi)存區(qū)域之間的依存與局部性
2.5 計算機體系結(jié)構(gòu)的影響
2.5.1 存儲空間的訪問方式增強了局部性
2.5.2 內(nèi)存訪問的一致性
2.5.3 CPU與內(nèi)存之間的速度差距
2.5.4 內(nèi)存發(fā)展趨勢
2.6 操作系統(tǒng)的影響
2.7 本章小結(jié)
第三章 內(nèi)存分配器的設(shè)計
3.1 接口
3.2 內(nèi)存的分配模式
3.3 內(nèi)存分配
3.3.1 小型模式及其分配
3.3.2 中型模式及其分配
3.3.3 大型模式及其分配
3.4 內(nèi)存釋放
3.4.1 小型模式下的內(nèi)存釋放
3.4.2 中型模式下的內(nèi)存釋放
3.4.3 大型模式下的內(nèi)存釋放
3.5 內(nèi)存區(qū)域大小的改變
3.6 本章小結(jié)
第四章 實際應(yīng)用和性能測試
4.1 C語言和C++語言環(huán)境中的使用
4.2 優(yōu)化
4.2.1 多線程的優(yōu)化
4.2.2 空間分配時的內(nèi)存地址對齊
4.2.3 快速緩沖存儲器的優(yōu)化
4.2.4 虛擬內(nèi)存系統(tǒng)的優(yōu)化
4.2.5 安全性
4.3 內(nèi)存空間生存周期控制
4.4 內(nèi)存占用率分析
4.5 性能測試
4.5.1 速度測試
4.5.2 不同線程數(shù)目下的速度測試
4.5.3 內(nèi)存利用率測試
4.6 內(nèi)存布局圖
4.7 本章小結(jié)
第五章 總結(jié)與展望
5.1 總結(jié)
5.2 展望
參考文獻
致謝
攻讀學位期間主要的研究成果
本文編號:3786993
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/3786993.html
最近更新
教材專著