1. 主页
  2. 自己动手从0到1学写FAT32文件系统
  3. 第6章 缓冲区管理
  4. 修复连续读写扇区的缓存管理

修复连续读写扇区的缓存管理

内容纲要

本课时修改两个bug,一个xfile_read,一个xfile_write。

主要内容

总结来讲,无论是xfile_read还是xfile_write,其Bug出现的原因都是相同的:在连续多扇区读写时,越过了缓冲池直接读写存储设备。

xfile_read

在读取时,直接越过缓冲池读取,可能读取的部分数据为存储设备中老数据,而非缓存池中的最新数据。

最简单的解决方法:直接回写指定扇区范围内的脏数据至磁盘。

xfile_write

在写入时,直接越过缓冲池写,导致写入存储设备中的数据为新数据,而缓存池中的数据却未更新。

最简单的解决方法:写存储设备之后,将缓存池中的相应地址范围内的数据丢弃。

可以考虑另一种方案,即写存储设备时,同时将缓存池中相应范围内的数据缓存进行更新。有兴趣可自行实现。

重点难点

注意事项

常见问题

这篇文章对您有用吗?

我们要如何帮助您?

发表评论

电子邮件地址不会被公开。 必填项已用*标注