摘要 | 第3-4页 |
ABSTRACT | 第4页 |
第一章 绪论 | 第10-13页 |
1.1 研究背景与意义 | 第10-11页 |
1.2 FATTY 简介和设计目标 | 第11页 |
1.3 论文的主要贡献 | 第11-12页 |
1.4 本文的组织结构 | 第12-13页 |
第二章 FAT 文件系统简介 | 第13-24页 |
2.1 存储设备与文件系统 | 第13-18页 |
2.1.1 块设备 | 第13-15页 |
2.1.2 文件系统 | 第15-17页 |
2.1.3 文件系统基本构成 | 第17-18页 |
2.2 FAT 文件系统简介 | 第18-23页 |
2.2.1 BIOS 信息块 | 第19-20页 |
2.2.2 文件分配表 | 第20-21页 |
2.2.3 目录项 | 第21-22页 |
2.2.4 FAT 文件系统的限制与约定 | 第22-23页 |
2.3 本章小结 | 第23-24页 |
第三章 FATTY 整体设计 | 第24-37页 |
3.1 FATTY 整体架构 | 第24-25页 |
3.2 平台抽象层设计 | 第25-27页 |
3.2.1 设计原则 | 第25页 |
3.2.2 块设备驱动接口 | 第25-26页 |
3.2.3 操作系统服务接口 | 第26-27页 |
3.2.4 FATTY 的移植 | 第27页 |
3.3 缓存的设计 | 第27-32页 |
3.3.1 Linux 虚拟文件系统缓存架构 | 第27-28页 |
3.3.2 FATTY 块设备缓存 | 第28-31页 |
3.3.3 FATTY 目录项缓存 | 第31-32页 |
3.4 FAT 层设计 | 第32-33页 |
3.5 应用程序接口设计 | 第33-34页 |
3.6 相关工作 | 第34-36页 |
3.6.1 Linux VFAT | 第34-35页 |
3.6.2 Mtools | 第35页 |
3.6.3 libFAT | 第35页 |
3.6.4 FatFuse | 第35页 |
3.6.5 FATTY 与其他开源FAT 文件系统的比较 | 第35-36页 |
3.7 本章小结 | 第36-37页 |
第四章 FATTY 文件系统的可靠性优化 | 第37-53页 |
4.1 可靠性概述 | 第37-38页 |
4.1.1 可靠性的定义 | 第37页 |
4.1.2 文件系统的可靠性 | 第37-38页 |
4.2 相关工作 | 第38-43页 |
4.2.1 事后补救 | 第38-39页 |
4.2.2 严格保序 | 第39-41页 |
4.2.3 日志方式 | 第41-42页 |
4.2.4 非易失缓存 | 第42页 |
4.2.5 其它方案 | 第42-43页 |
4.2.6 各类方案的比较 | 第43页 |
4.3 FAT 文件系统的可靠性问题 | 第43-44页 |
4.4 FATTY 采用的方案 | 第44-50页 |
4.4.1 元数据更新顺序 | 第44-45页 |
4.4.2 写缓冲区 | 第45-46页 |
4.4.3 写缓冲区合并 | 第46-47页 |
4.4.4 缓存合并算法A | 第47-49页 |
4.4.5 缓存合并算法B | 第49-50页 |
4.4.6 写缓冲区的清空 | 第50页 |
4.5 测试与分析 | 第50-52页 |
4.5.1 测试环境 | 第50页 |
4.5.2 用例设计 | 第50-51页 |
4.5.3 测试结果与分析 | 第51-52页 |
4.6 本章小结 | 第52-53页 |
第五章 FATTY 文件系统的实时性优化 | 第53-61页 |
5.1 实时性概述 | 第53-55页 |
5.1.1 实时性的定义 | 第53页 |
5.1.2 实时操作系统 | 第53-54页 |
5.1.3 文件系统的实时性 | 第54-55页 |
5.2 相关工作 | 第55-56页 |
5.2.1 预读技术 | 第55页 |
5.2.2 预分配技术 | 第55-56页 |
5.3 FAT 文件系统的实时性问题 | 第56-57页 |
5.4 压缩FAT 表缓存 | 第57-59页 |
5.5 空闲簇索引 | 第59页 |
5.6 测试与分析 | 第59-60页 |
5.7 本章小结 | 第60-61页 |
第六章 结论 | 第61-63页 |
6.1 全文总结 | 第61页 |
6.2 未来工作 | 第61-63页 |
参考文献 | 第63-65页 |
致谢 | 第65-66页 |
攻读硕士学位期间已发表学术论文 | 第66-68页 |