论文部分内容阅读
在Linux操作系统中,内存管理单元负责管理整个系统的物理地址空间和虚地址空间,进行虚实地址之间的转换以及页面的换入换出等操作。它是系统内核中最重要的组成部分之一,是整个系统得以存在和运行的基础。拥有一个强大和完备的内存管理子系统是构建一个具有高可靠性以及可伸缩性系统的必备条件。随着Linux内核的发展和成熟,更多的用户期待着Linux可以运行非常大的系统来处理科学分析应用程序或者甚至海量数据库。Linux 2.6内核于2004年发布, Linux2.6内核使用了许多技术来改进对内存的使用,提高内存管理子系统的工作效率。本论文针对Linux内存管理部分开展研究,主要分析了Linux操作系统的请求式分页虚拟存储管理方法以及内存映射和管理机制,重点研究了Linux2.6内核正式加入的反向映射技术,从最初提出的基于页的反向映射到各种改进方式的可行性。第二章主要探讨研究Linux内存管理减少外部分片和内部分片所采取的Buddy算法、分配器的技术以及在伙伴算法中增加的vmalloc函数。Linux在这块管理方面的性能在经过用户的测试具有比较高的效率,目前很多嵌入式操作系统没有统一的内存分配管理标准,很多时候都是在参考Linux内存分配管理方式。第三章主要研究虚拟地址到物理地址的转化以及保证各个进程公平有效的分享物理内存的虚拟内存管理方式。同时介绍Linux2.6内核加入的新技术:使用更大的内存页、页表条目存储在高端内存中以及基于页的反向映射技术。第四章重点分析研究Linux2.6内核加入的反向映射技术,也是本论文介绍的重点。反向映射技术改善了查找映射到指定物理页对应的虚拟页的内存管理的瓶颈。本章主要研究最初的基于页的反向映射技术及P直接法的改进方式,从而为加入基于对象的反向映射的方法及可行性增加理论依据。第五章正是根据对前面Linux虚拟内存的管理管理方式以及映射关系进行分析后得出的基于对象反向映射的可行性。以及针对缺页调用时提出加入基于对象反向映射的实现方式。