文件系统的实现(一)
1. 文件系统布局
文件系统存放在磁盘上。多数磁盘划分为一个或多个分区,每个分区中有一个独立的文件系统。磁盘的0号扇区称为主引导记录(Master Boot Record,MBR),用来引导计算机。在MBR的结尾是分区表。该表给出了每个分区的起始和结束地址。表中的一个分区被标记为活动分区。在计算机被引导时,BIOS读入并执行MBR。MBR首先确定活动分区,读入第一个块,称为引导块并且执行。引导块中的程序将装载该分区中的操作系统。为统一起见,每个分区都从一个启动块开始。
除了从引导块开始,磁盘分区的布局是随着文件系统的不同而变化的。通常文件系统中都包含一个超级块,
超级块:包含文件系统的所有关键参数,在计算机启动时,或者在该文件系统首次使用时,把超级块读入内存。超级块中包含:确定文件系统类型的魔数、文件系统中数据块的数量以及其他重要管理信息
还有文件系统中的空闲空间管理,说明文件信息的i节点,根目录等。
2. 文件的实现
文件存储的实现的关键问题是记录各个文件分别用到哪些磁盘块。
连续分配
最简单的分配方案是把每个文件作为一连串连续数据块存储在磁盘上。所以,在块大小为1KB的磁盘上,50KB的文件要分配50个连续的块。块大小为2KB的磁盘,要分配25个连续的块。
在这个方法中,每个文件都从一个新的块开始,所以每个文件的最后一块可能会浪费一些空间。
优点:

本文介绍了文件系统的实现,包括文件系统布局、文件的实现(连续分配、链表分配、显式链接、i节点分配)、目录的实现以及如何实现可变长度文件名。讨论了各种分配方式的优缺点,并探讨了加快文件查找的策略,如散列表和高速缓存。
最低0.47元/天 解锁文章
372

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



