可控动态内存分配器的研究与开发
发布时间:2023-04-09 03:37
动态内存分配器是操作系统最基本的组成部分,在进程的执行过程中为进程提供动态的内存区域。进程能够根据需要向动态内存分配器申请新的内存区域或者是释放已经分配了的内存区域。动态内存分配器也在高级语言程序设计中占有重要作用,其设计优劣直接关系到进程的速度和内存空间使用效率。 本文设计了一个基于类UNIX操作系统的用户态下具有可控性的动态内存分配器———ztmalloc。Ztmalloc根据用户进程所申请的内存空间大小使用三种不同的分配模式实现,即小型、中型和大型模式。 小型模式下,ztmalloc对内存块进行两次划分,第一次划分成为大小相等的内存行,第二次将行划分成大小相等的内存区域,然后选择空闲区域分配给用户进程。 中型模式下,ztmalloc使用伙伴内存系统,对内存块进行划分,然后选择合适的区域进行分配。 大型模式下,ztmalloc取所需内存空间大小向上向内存块大小的整数倍取整的结果作为用户进程所需的内存区域。 为了提高性能,ztmalloc还使用了包括多线程优化、快速缓冲存储器优化、虚拟内存系统优化在内的诸多优化方式。 本文对于ztmalloc的性能进行了分析和测试,测试结果表明,zt...
【文章页数】:61 页
【学位级别】:硕士
【文章目录】:
摘要
ABSTRACT
目录
第一章 绪论
1.1 课题来源和意义
1.2 现有分配器实现
1.3 课题研究内容
1.4 论文结构安排
第二章 动态内存分配的原理与技术
2.1 进程的虚拟地址空间
2.1.1 UNIX类操作系统的虚拟地址空间
2.1.2 Windows操作系统的虚拟地址空间
2.1.3 动态内存分配的原理
2.2 高级语言中的动态内存分配
2.3 设计目标
2.4 面临的问题
2.4.1 内存碎片
2.4.2 数据对齐和内存访问颗粒度
2.4.3 多线程
2.4.4 内存区域之间的依存与局部性
2.5 计算机体系结构的影响
2.5.1 存储空间的访问方式增强了局部性
2.5.2 内存访问的一致性
2.5.3 CPU与内存之间的速度差距
2.5.4 内存发展趋势
2.6 操作系统的影响
2.7 本章小结
第三章 内存分配器的设计
3.1 接口
3.2 内存的分配模式
3.3 内存分配
3.3.1 小型模式及其分配
3.3.2 中型模式及其分配
3.3.3 大型模式及其分配
3.4 内存释放
3.4.1 小型模式下的内存释放
3.4.2 中型模式下的内存释放
3.4.3 大型模式下的内存释放
3.5 内存区域大小的改变
3.6 本章小结
第四章 实际应用和性能测试
4.1 C语言和C++语言环境中的使用
4.2 优化
4.2.1 多线程的优化
4.2.2 空间分配时的内存地址对齐
4.2.3 快速缓冲存储器的优化
4.2.4 虚拟内存系统的优化
4.2.5 安全性
4.3 内存空间生存周期控制
4.4 内存占用率分析
4.5 性能测试
4.5.1 速度测试
4.5.2 不同线程数目下的速度测试
4.5.3 内存利用率测试
4.6 内存布局图
4.7 本章小结
第五章 总结与展望
5.1 总结
5.2 展望
参考文献
致谢
攻读学位期间主要的研究成果
本文编号:3786993
【文章页数】:61 页
【学位级别】:硕士
【文章目录】:
摘要
ABSTRACT
目录
第一章 绪论
1.1 课题来源和意义
1.2 现有分配器实现
1.3 课题研究内容
1.4 论文结构安排
第二章 动态内存分配的原理与技术
2.1 进程的虚拟地址空间
2.1.1 UNIX类操作系统的虚拟地址空间
2.1.2 Windows操作系统的虚拟地址空间
2.1.3 动态内存分配的原理
2.2 高级语言中的动态内存分配
2.3 设计目标
2.4 面临的问题
2.4.1 内存碎片
2.4.2 数据对齐和内存访问颗粒度
2.4.3 多线程
2.4.4 内存区域之间的依存与局部性
2.5 计算机体系结构的影响
2.5.1 存储空间的访问方式增强了局部性
2.5.2 内存访问的一致性
2.5.3 CPU与内存之间的速度差距
2.5.4 内存发展趋势
2.6 操作系统的影响
2.7 本章小结
第三章 内存分配器的设计
3.1 接口
3.2 内存的分配模式
3.3 内存分配
3.3.1 小型模式及其分配
3.3.2 中型模式及其分配
3.3.3 大型模式及其分配
3.4 内存释放
3.4.1 小型模式下的内存释放
3.4.2 中型模式下的内存释放
3.4.3 大型模式下的内存释放
3.5 内存区域大小的改变
3.6 本章小结
第四章 实际应用和性能测试
4.1 C语言和C++语言环境中的使用
4.2 优化
4.2.1 多线程的优化
4.2.2 空间分配时的内存地址对齐
4.2.3 快速缓冲存储器的优化
4.2.4 虚拟内存系统的优化
4.2.5 安全性
4.3 内存空间生存周期控制
4.4 内存占用率分析
4.5 性能测试
4.5.1 速度测试
4.5.2 不同线程数目下的速度测试
4.5.3 内存利用率测试
4.6 内存布局图
4.7 本章小结
第五章 总结与展望
5.1 总结
5.2 展望
参考文献
致谢
攻读学位期间主要的研究成果
本文编号:3786993
本文链接:https://www.wllwen.com/kejilunwen/jisuanjikexuelunwen/3786993.html