首页> 中文学位 >一个内存分配器的设计和实现
【6h】

一个内存分配器的设计和实现

代理获取

目录

文摘

英文文摘

第一章 绪论

1.1 研究背景

1.2 论文章节安排

第二章 内存管理研究基础

2.1 操作系统的内存管理

2.1.1 Windows内存管理

2.1.2 Linux内存管理

2.2 内存管理常出现的问题

2.3 内存管理理论

2.4 内存管理算法

2.5 小结

第三章 HLP的设计

3.1 设计要求和分析

3.2 架构设计

3.2.1 传统分配器架构

3.2.2 HLP的架构

3.3 用户接口

3.4 辅助组件

3.5 三层设计

3.5.1 第一层

3.5.2 第二层

3.5.3 第三层

3.6 虚拟内存管理器接口

3.7 小结

第四章 HLP的实现

4.1 算法

4.2 各层实现

4.2.1 第一层

4.2.2 第二层

4.2.3 第三层

4.3 其他实现

4.3.1 用户接口

4.3.2 对齐堆

4.3.3 多线程安全

4.3.4 门槛堆

4.4 小结

第五章 HLP的应用

5.1 HLP在C语言中的应用

5.2 HLP在C++语言中的应用

5.3 小结

第六章 HLP的测试

6.1 速度测试

6.1.1 时间

6.1.2 内存分配速率

6.2 碎片

6.2.1 峰值内存占用

6.2.2 碎片率

6.3 页面错误

6.4 小结

第七章 总结与展望

7.1 工作总结

7.1.1 论文主要工作

7.1.2 工作中的不足

7.2 未来工作

参考文献

致谢

展开▼

摘要

大部分C/C++开发工具自带的动态内存分配器或动态内存管理函数不仅运行速度慢,而且页面性能比较差,不适合用于内存频繁分配和释放的场合,而一般专用的内存分配器虽然性能好,但是通用性差,而且技术保密。
   本论文论述了设计和开发一个可移植性非常好的堆内存分配器,取名HLP,可以运行在Windows,Linux,Unix,甚至某些嵌入式系统上。HLP的开发过程没有使用单一的理论,而是尝试了把堆层次和池式内存管理相结合。出于可扩充性和易于理解的需要,设计并实现了一个全新的架构,该架构具有良好的可维护性。
   结合实际情况,HLP的实现中巧妙地改进了三个基本算法,位图、边界标记和分割列表。改进后的位图和边界标记算法消除了额外空间开销。分割列表算法改进后变成了桶,大幅度降低了内部碎片。
   HLP提供了统一符合习惯的用户接口,这样,程序员无需了解HLP复杂的内部细节就可以很方便地使用它了。
   测试发现,HLP不仅运行速度上有了质的飞越,而且页面性能也有很大改善,一般而言,HLP比malloc/free快3~130倍,页面错误比malloc/free低7%~37%。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号