跳至主要內容

3.文件系统


文件系统结构

参考国外教材:

image.png
image.png

参考国内教材:

image.png
image.png

文件系统布局

提示

新考点

文件系统在磁盘中的结构

文件系统存放在磁盘上,多数磁盘划分为一个或多个分区,每个分区这种有一个独立的文件系统。

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

系统文件在内存中的结构

image.png
image.png

外存空闲空间管理

空闲表法

空闲表法属于连续分配方式,为每个文件分配一块连续的,类似于内存的动态分配。系统为外存上的所有空闲区建立一张空闲表,每个空闲区对应一个空闲表项,其中包括表项序号、该空闲区的第一个盘块号、该区的空闲盘块数等信息

空闲链表法

  1. 空闲盘块法:将磁盘上的所有空闲空间以盘块为单位拉成一条链。
  2. 空闲盘区链。将磁盘上的所有空闲盘区(每个盘区可包含若干个盘块)拉成一条链。每个盘区除含有用于指示下一个空闲盘区的指针外,还应有能指明本盘区大小(盘块数)的信息。

提示

不适合大型文件系统,会使空闲表或空闲链表太大

位示图法

image.png
image.png

注意

注意:本书如无特别提示,所使用的位示图法中行和列都从1开始编号。特别注意,若题目中指明从0开始编号,则上述计算方法要进行相应调整

盘块分配:

  1. 顺序扫描位示图,找出一个或一组值为"0"的二进制
  2. 将找到的转换成对应的盘块号,i行j列b=n(i1)+jb=n(i-1)+j,n为每行位数
  3. 修改位示图,map[i,j]=1map[i,j]=1

盘块回收:

  1. 转换行列$$i=\frac{b-1}{n}+1,j=(b-1)%n+1$$
  2. 修改map[i,j]=0map[i,j]=0

成组链接法

UNIX系统中采用的,结合空闲表和空闲链表法

image.png
image.png

虚拟文件系统