论文部分内容阅读
内存管理是大型应用软件的一个重要考虑因素,它的成功与否将直接影响到应用的稳定性和效率。目前对内存管理的研究可分为3个层次,自底而上依次为:操作系统级内存管理、高级语言级内存管理和应用级内存管理。
内存管理子系统是操作系统中核心子系统之一,复杂度较高。它将软件和硬件有机结合起来,确保了进程的正确初始化以及顺利执行,同时它还负责缺页调度,内存对象管理等。好的内存管理子系统将大幅度提高应用程序的运行效率。
高级语言级内存管理的实现是由高级语言运行库和编译器协作提供的,构筑在操作系统内存管理子系统基础上,向程序员提供了简单易用的接口。利用这个接口,编程人员构筑了各式各样的应用。它的好坏直接影响了应用程序的灵活性和开发的效率。
尽管操作系统和高级语言级的内存管理为软件开发人员提供了强有力的支持,但是应用级内存管理仍有其存在的必要性。
随着开发规模的扩大和应用的深入,越来越多的问题也暴露了出来。首先是容易出错,以目前最为流行的C/C++开发来讲,相当的精力被投入到内存泄露的防止和修正上,内存访问冲突更将引发一场应用的灾难;其次,很多应用需要对内存进行更为高级和完全的控制,比如需要将相同性质的内存的分配集中到一起,这些要求在以上两个级别上没有得到强调。
软件的发展潮流是封装和易用,针对以上问题,有必要强调应用级别的内存管理概念。它的框架和逻辑有着自己独有的特点,本文中将阐述一个具有适用性的应用级内存管理器的设计及关键性实现。应用级内存管理的实现与应用,将使得开发人员获得一个可靠易用的高级内存管理平台,从而将主要精力投入到应用逻辑上,提高代码质量和开发效率。
本文首先说明了操作系统内存管理的工作原理及几个关键过程,这个层次的内存管理同理论的结合性最强,同时具有基础意义,其他层次的内存管理不能脱离它而单独存在。
然后本文将重点介绍一个应用级内存管理器的设计思路及关键实现。这些内容在基于基础框架的设计上,围绕应用级内存管理器各个主题进行展开。
最后本文将对该内存管理器进行一个小结,并对应用级内存管理器今后的发展作出展望。