论文部分内容阅读
为了加速对外围存储设备的访问速度,操作系统通常将设备中的部分数据暂存在内存中供需要时使用,这部分存放外存储设备数据的内存就叫做Buffer 在操作系统中,Buffer Cache是影响系统整体性能的一个重要因素.Buffer Cache管理机制的研究是操作系统领域中一个非常重要的研究方向,一直是近几年来研究的一个热点.但传统通用操作系统往往采用单一固定的Buffer Cache管理策略,使得系统在满足一部分应用程序需求的同时损害了另一部分应用程序的性能.随着应用程序种类越来越多,数据访问模式越来越丰富,问题变得更加严重.
为了解决这个问题,本文研究了在传统操作系统基础上提供可根据应用程序特征重构Buffer Cache管理策略的技术,并实现了一个原型系统.
本文首先研究Buffer Cache管理和可重构系统的各种相关工作,在此基础上归纳出按需重构Buffer Cache管理系统需要解决的各种关键问题:重构机制、重构点发掘、隔离仲裁机制、用户接口及容错机制.然后研究了在传统通用操作系统的基础上,实现按需重构Buffer Cache管理系统各个关键问题的具体机制,并通过实验证实了这些机制的可行性.
具体而言,本文的主要研究成果和创新贡献如下:
1 在Linux操作系统环境下,提出并设计实现了一种可按需重构的BufferCache管理机制.该机制在Linux内核Buffer Cache管理的关键路径上插入HOOK,并通过可装卸模块来提供HOOK中跳转函数的具体实现,从而实现策略可装卸.同时,通过一套隔离仲裁机制来分离各个策略模块,使得共存于系统中的多种策略模块不会引起冲突.
2 本文充分发掘了Buffer Cache管理中的各种重构点,包括:Cache替换、Cache预读、Cache映射和双层Cache.其中,Cache映射和双层Cache是本文首次提出,Cache映射能够提高应用程序以memory map方式访问Bufrer Cache的性能;双层Cache则提高了共享内存多处理器系统中Buffer Cache访问的数据局部性,降低了访问延迟和总线竞争.
3 分析了一些典型应用程序和Benchmark的文件访问特征,据此提出并实现了一些新的Buffer Cache管理策略,如Stride-Aware Cache预读算法、cc-NUMA上的Cache复制迁移算法、Superpage方式的Cache映射策略等.
4 在司重构Buffer Cache管理系统的基础上,采用针对性的策略对一些典型应用程序和Benchmark进行了优化,对其中某些应用程序和Benchmark的性能有很大提升.测试结果表明应用程序的性能最多能提升80﹪,而额外开销很小,至多使性能降低0.6﹪.