论文部分内容阅读
内存交换技术几乎应用于所有的计算机系统,交换操作中频繁的外存访问是制约程序运行性能的一个重要因素。近年来,随着新型存储介质闪存的快速发展,越来越多的研究关注于使用闪存固态盘作为交换区,以便有效降低内存交换系统中I/O访问延迟,提高程序运行性能。本文针对闪存固态盘的自身特性,分别从内存交换区删冗和内存交换区空间分配两个角度探索内存交换技术。在内存交换区删冗方面,本文提出一种结合重复数据删除技术的内存交换机制MSDD(Memory Swap with Data Deduplication),通过删除交换页面中的重复页面减少交换进程的换出操作,进而减少作为内存交换区的闪存固态盘的数据写入负载,延长闪存固态盘的使用寿命。针对交换操作延迟敏感和内存紧缺的特点,MSDD机制采用了改进的MD5算法计算页面的数字指纹以限制其计算时延,同时通过哈希表存储删冗元数据以在内存空间占用率与删冗元数据的检索速率两方面取得权衡。在内存交换区的空间分配方面,本文提出一种带有语义感知的交换区空间分配方案。使用闪存固态盘作为内存交换区,闪存固态盘无法感知交换区中的无效数据,交换系统需要发送带有语义传递功能的Trim命令通知闪存固态盘无效数据的位置,以便闪存固态盘回收无效数据页面,但同时Trim命令为交换系统引入了一定的时间开销。针对闪存固态盘语义缺失特性,本文提出的交换区空间分配方案带有语义分析,减少内存交换系统中Trim命令的使用次数,进而减少内存交换系统中的时间开销,进一步提高程序运行的性能。在四种典型应用程序上的实验测试结果表明,使用闪存固态盘作为交换区可有效地提高程序运行性能,本文提出的MSDD机制从内存交换区删冗角度引入重复数据删除技术,减少闪存固态盘的写操作,延长了闪存固态盘使用寿命,且MSDD机制时间和空间代价均在可接受范围之内;本文提出的带有语意感知的交换区空间分配方案,通过合并Trim命令和尽量减少Trim命令的使用次数,节约了内存交换系统交换区空间分配的时间开销,进一步提高了程序运行性能.