3.文件系统
大约 3 分钟
文件系统结构
参考国外教材:

参考国内教材:

文件系统布局
提示
新考点
文件系统在磁盘中的结构
文件系统存放在磁盘上,多数磁盘划分为一个或多个分区,每个分区这种有一个独立的文件系统。

- 主引导记录(Master Boot Record,MBR),位于磁盘的0号扇区,用来引导计算机,MBR后面是分区表,该表给出每个分区的起始和结束地址。表中的一个分区被标记为活动分区,当计算机启动时,BIOS读入并执行MBR。MBR做的第一件事是确定活动分区,读入它的第一块,即引导块。
- 引导块(boot block),MBR执行引导块中的程序后,该程序负责启动该分区中的操作系统。为统一起见,每个分区都从一个引导块开始,即使它不含有一个可启动的操作系统,也不排除以后会在该分区安装一个操作系统。
- 超级块(super block),包含文件系统的所有关键信息,在计算机启动时,或者在该文件系统首次使用时,超级块会被读入内存。超级块中的典型信息包括分区的块的数量、块的大小、空闲块的数量和指针、空闲的FCB数量和FCB指针等。
- 空闲空间管理
系统文件在内存中的结构

外存空闲空间管理
空闲表法
空闲表法属于连续分配方式,为每个文件分配一块连续的,类似于内存的动态分配。系统为外存上的所有空闲区建立一张空闲表,每个空闲区对应一个空闲表项,其中包括表项序号、该空闲区的第一个盘块号、该区的空闲盘块数等信息
空闲链表法
- 空闲盘块法:将磁盘上的所有空闲空间以盘块为单位拉成一条链。
- 空闲盘区链。将磁盘上的所有空闲盘区(每个盘区可包含若干个盘块)拉成一条链。每个盘区除含有用于指示下一个空闲盘区的指针外,还应有能指明本盘区大小(盘块数)的信息。
提示
不适合大型文件系统,会使空闲表或空闲链表太大
位示图法

注意
注意:本书如无特别提示,所使用的位示图法中行和列都从1开始编号。特别注意,若题目中指明从0开始编号,则上述计算方法要进行相应调整
盘块分配:
- 顺序扫描位示图,找出一个或一组值为"0"的二进制
- 将找到的转换成对应的盘块号,i行j列,n为每行位数
- 修改位示图,
盘块回收:
- 转换行列$$i=\frac{b-1}{n}+1,j=(b-1)%n+1$$
- 修改
成组链接法
UNIX系统中采用的,结合空闲表和空闲链表法

