Fast File System Review


今天读了 A Fast File System for UNIX 1984年
这篇文章可以说是File System 里面最经典的文章之一。现在Unix File System 也是FFS的延伸
作者发现了Old Unix System 的许多问题。做出了改进。
首先以前的FS,由于硬件的限制,把block size 设计的很小,只有512KB
对于大文件的读取overhead 很大。以读取一个2MB 的文件为例,需要四次读取。
FFS的block size 增加到2MB, 大大减小了overhead, 2MB的文件只需要一次disk access.
但是大的block size 也带来了问题,如果整个系统的文件都很小,比如只有512KB,那么会浪费空间。
解决方法是把block 分为几个fragments, 如果一个文件只占用了block的一部分,其它文件还可以继续使用。不浪费空间。

其次作者观察到以前的FS,随着时间的推移,disk access time 会变得越来越大。
原因是一开始系统有一个list of free space, 随着使用越来越多,删除,添加,更新文件。这个free list 变成了一个random list. 一个文件可能被放在相隔很远的cylinder, 或者sector 里面,读取一个block 之后,disk head move 到下一个block 需要花费很长时间。
Old FS also 把inode 信息和data 分离开
FFS的解决方案是:
给出Global 和 local layout policy, 对文件或者文件夹位置的安排进行优化,尽量缩短 seek 的时间。但是也有缺点:当硬盘使用率非常高的时候,这个优化的时间会变得非常高,因此效率会大幅下降。

评论

此博客中的热门博文

Embedded System interview Question

MicroKernel & Exokernel 操作系统未来可能的发展

中国城市房地产分析