| 摘要 | 第1-7页 |
| Abstract | 第7-12页 |
| 插图 | 第12-15页 |
| 表格 | 第15-16页 |
| 第一章 绪论 | 第16-48页 |
| ·选题的背景与意义 | 第16-40页 |
| ·磁盘的演进趋势与挑战 | 第16-23页 |
| ·存储设备的I/O特性 | 第23-37页 |
| ·I/O性能优化方法 | 第37页 |
| ·预取及其作用 | 第37-40页 |
| ·相关工作 | 第40-42页 |
| ·问题与挑战 | 第42-45页 |
| ·研究内容 | 第45-47页 |
| ·论文结构 | 第47-48页 |
| 第二章 Linux的缓存和预读机制 | 第48-62页 |
| ·内存分区(memory zones) | 第48-50页 |
| ·页面分配(allocating pages) | 第50-51页 |
| ·页面回收(reclaiming pages) | 第51-52页 |
| ·同步页面老化(balanced page aging) | 第52-53页 |
| ·页面缓存(page cache) | 第53-56页 |
| ·页面缓存的预读 | 第56-58页 |
| ·read-ahead与read-around | 第58-60页 |
| ·预读API | 第60-62页 |
| 第三章 按需预取算法框架 | 第62-88页 |
| ·Linux预读算法的历史 | 第62-63页 |
| ·系统分析 | 第63-66页 |
| ·数据结构 | 第66-68页 |
| ·预读窗口和流水线预读 | 第68-69页 |
| ·算法框架 | 第69-74页 |
| ·预取触发条件 | 第74-75页 |
| ·自适应预取大小和提前量 | 第75-78页 |
| ·预读缓存命中 | 第78-80页 |
| ·非对齐读和重试读 | 第80-82页 |
| ·预读抖动 | 第82-87页 |
| ·平凡负载中的开销 | 第87-88页 |
| 第四章 顺序流的预取算法 | 第88-122页 |
| ·传统检测算法 | 第88-89页 |
| ·被动检测算法 | 第89-92页 |
| ·空间连续访问 | 第89-90页 |
| ·并发流的识别 | 第90-91页 |
| ·预读状态的恢复 | 第91-92页 |
| ·主动检测算法 | 第92-98页 |
| ·交织流的识别 | 第92-93页 |
| ·自适应预读大小 | 第93-97页 |
| ·基于页面缓存上下文的预读算法 | 第97-98页 |
| ·交织的顺序流 | 第98-99页 |
| ·矩阵的列向扫描 | 第99-102页 |
| ·随机+顺序并发访问 | 第102-103页 |
| ·稀疏的顺序读 | 第103-104页 |
| ·局部随机的顺序读 | 第104-106页 |
| ·高密度的随机读 | 第106-113页 |
| ·实验与评价 | 第113-122页 |
| ·实验环境 | 第113-114页 |
| ·随机干扰 | 第114页 |
| ·并发流 | 第114-117页 |
| ·运行时开销 | 第117-122页 |
| 第五章 结束语 | 第122-124页 |
| 参考文献 | 第124-130页 |
| 致谢 | 第130-132页 |
| 在读期间的主要工作 | 第132-133页 |