文件系统实现与恢复机制深度解析
1. 预读机制与缓存交互
在文件系统的操作中,预读机制是一项重要的优化策略。当请求一个页面时,之前的页面很可能不再被使用,从而浪费了缓存空间。而预读机制会将请求的页面以及后续的几个页面一起读取并缓存起来。因为在处理完当前页面后,这些后续页面很可能会被请求。通过一次传输从磁盘中获取这些数据并进行缓存,能够节省大量的时间。
虽然有人可能认为控制器上的磁道缓存可以消除多程序系统中预读的必要性,但实际上,由于从磁道缓存向主内存进行多次小数据传输会带来高延迟和高开销,因此预读仍然是有益的。
页面缓存、文件系统和磁盘驱动之间存在着有趣的交互。当数据写入磁盘文件时,页面会被缓存在缓存中,磁盘驱动会根据磁盘地址对其输出队列进行排序。这两个操作使得磁盘驱动能够最小化磁头寻道时间,并在磁盘旋转的最佳时机写入数据。除非需要同步写入,否则写入磁盘的进程只需将数据写入缓存,系统会在方便的时候异步地将数据写入磁盘,这使得用户进程能够体验到非常快速的写入操作。而在从磁盘文件读取数据时,块 I/O 系统会进行一些预读操作,但写入操作比读取操作更加接近异步。因此,通过文件系统向磁盘输出数据在大传输量时通常比输入数据更快,这与直觉相反。
2. 文件系统恢复的重要性
文件和目录同时存在于主内存和磁盘中,必须确保系统故障不会导致数据丢失或数据不一致。系统崩溃可能会导致磁盘上文件系统数据结构出现不一致,例如目录结构、空闲块指针和空闲文件控制块(FCB)指针等。许多文件系统会直接对这些结构进行更改,一个典型的操作(如创建文件)可能会涉及磁盘上文件系统内的许多结构更改,包括修改目录结构、分配 FCB、分配数据块以及减少所有这些块的空闲计数等。这些更改
超级会员免费看
订阅专栏 解锁全文
176万+

被折叠的 条评论
为什么被折叠?



