《操作系统设计与实现》(第三版)第五章 文件系统 重要概念汇总

第五章 文件系统

1. 文件

  一组具有文件名的一组相关信息的集合

2. 文件系统

  对文件进行操纵和管理的软件集合

3. 目录

文件管理主要是通过文件目录实现的。文件目录也是一种数据结构,用于标识系统中的文件及其物理地址,供检索时使用。目录实现的基本方法有线性表和Hash表

功能:

①实现“按名存取”

②提高对目录的检索速度

③文件共享

④允许文件重名

4. 文件控制块(FCB)

用于描述和控制文件的数据结构,便于对文件施以各种操作。文件与控制块一一对应,文件控制块的有序集合称为文件目录,即一个文件控制块就是一个文件目录项。一个文件目录也被看作一个文件,称为目录文件。

在文件控制块中,通常包含以下三类信息:

①基本信息:文件名、文件物理位置、文件逻辑结构、文件物理结构

②存取控制信息类:文件的存取权限、核准用户的存取权限以及一般用户的存取权限

③使用信息类:文件的建立日期和时间、文件上一次修改的日期和时间以及当前使用信息等

5. 路径

5.1绝对路径(absolute path name)                                                          

  绝对路径是指文件在硬盘上真正存在的路径。它由从根目录开始一直到该文件的路径组成,并且是唯一的。Windows和Unix同一个路径名的写法不同,但只要路径名的第一个字符是分隔符,那么这个路径名就是绝对路径

5.2相对路径(relative path name)                                    

常与工作目录(working directory,也称当前目录,current directory)的概念一起使用。用户可以制定一个目录作为当前的工作目录。这时,所有的路径名,如果不是从根目录开始,那么都是相对于这个工作目录的

5.3工作路径                                                         

系统中每个进程都有自己的工作目录 

6. i节点

i节点不仅包含了文件数据存储区的地址,还包含了很多信息,比如数据大小,等等文件信息。但是i节点是不保存文件名的。文件名是保存在一个目录项中。每一个目录项中都包含了文件名和i节点。

                     

 

inode  UNIX 操作系统中的一种数据结构,其本质是结构体,它包含了与文件系统中各个文件相关的一些重要信息。在 UNIX 中创建文件系统时,同时将会创建大量的 inode 。通常,文件系统磁盘空间中大约百分之一空间分配给了 inode 表。

有时,人们使用了一些不同的术语,如 inode 索引编号 (inumber)。这两个术语非常相似,并且相互关联,但它们所指的并不是同样的概念。inode 指的是数据结构;而索引编号实际上是 inode 的标识编号,因此也称其为inode 编号 或者索引编号。索引编号只是文件相关信息中一项重要的内容。下一个部分将介绍 inode 中的其他一些属性。

inode 表包含一份清单,其中列出了对应文件系统的所有 inode 编号。当用户搜索或者访问一个文件时,UNIX 系统通过 inode 表查找正确的 inode 编号。在找到 inode 编号之后,相关的命令才可以访问该 inode ,并对其进行适当的更改。

例如,使用 vi 来编辑一个文件。当您键入 vi <filename> 时,在 inode 表中找到 inode 编号之后,才允许您打开该 inode 。在 vi 的编辑会话期间,更改了该 inode 中的某些属性,当您完成操作并键入 :wq 时,将关闭并释放该 inode 。通过这种方式,如果两个用户试图对同一个文件进行编辑, inode 已经在第一个编辑会话期间分配给了另一个用户 ID (UID),因此第二个编辑任务就必须等待,直到该 inode 释放为止。

7. FAT(文件分配表)

特点:

  1.  每个分区的开始部分用于存储该FAT
  2. 每个磁盘块在FAT中有一个表项,该表可以通过盘块号来索引,其使用与链表相似
  3. 目录项中含有文件首个盘块的盘块号,根据盘块号索引的FAT表项包含文件下一个盘块号。这种链接一直到最后一个盘块,文件最后一个盘块对应FAT表项的值为文件结束值。未使用的盘块用0值表示
  4. 为文件分配一个新得盘块只需简单地找到第一个值为0的FAT表项,用新盘块的地址替换前面文件的结束值,用文件结束值替代0
  5. 如果不对FAT采用缓存,FAT分配方案可能导致大量的磁头寻到时间,但通过读入FAT信息,磁盘能找到任何盘块的位置,从而实现随机访问

9. 存取

9.1顺序存取                                                         

顺序存取是按其在文件中的逻辑顺序依次存取的,只能从头往下读

9.2随机存取                                                              

随机存取文件是将记录散列在存取介质上的,可以自己定位想要读的文件内容的指针位置。

10. 连续文件与链接文件

10.1顺序文件                                                         

采用连续分配方式,把逻辑文件中的记录顺序地存储到邻接的各物理盘快中所形成的文件结构称为顺序文件结构

10.1.1应用场合                                                      

顺序文件通常用于批处理中,即每次要读/写一大批记录的应用中。顺序文件组织是唯一可以很容易地存储在磁盘和磁带上的文件组织

10.1.2优缺点                                                         

优点:简单,顺序访问文件容易,所需的寻道时间最少

缺点:要求有连续的存储空间,为新文件找空间比较困难,必须事先知道文件的长度,不适合文件的增长

10.2链接文件                                                         

采用链接分配方式,把逻辑文件中的记录放在不连续的各物理盘块中,每个物理块通过指针链接起来所形成的文件结构称为链接文件结构

10.2.1链接分配                                                      

10.2.1.1隐式链接                                                    

在文件目录的每个目录项中,都必须含有指向链接文件第一个盘快和最后一个盘块的指针 

10.2.1.2显示链接                                                     

把用于链接文件各物理块的指针,显示地存放在内存的一张链接表中。该表在整个磁盘仅设置一张

10.2.2应用场合                                                               

10.2.3优缺点                                                        

优点:点单,文件创建与增长容易

缺电:不能随机访问盘块,块与块之间的链接指针需要占用空间,存在可靠性问题     

11. 打开文件

11.1概念                                                            

是指系统将指名文件的属性从外存拷贝到内存打开文件目录表的一个表目中,并将该表目的编号返回给用户。以后用户再要求对该文件进行相应的操作时,便可利用系统所返回的索引号向系统提出操作请求。系统这时便可直接利用该索引号到打开文件表中去查找。

12. 成组链接分配与回收

12.1分配                                                            

①首先检测空闲盘块号栈是否上锁:

否:从栈顶取出一空闲盘块号,将与之对应的盘块分配给用户,然后将栈顶指针下移一格

(若该盘块号已是栈底,这是当前栈中最后一个可分配的盘块号,由于在该盘块号所对应的盘块中记有下一组可用的盘块号,因此,需调用磁盘读过程,将栈底盘块号所对应盘块的内容读入栈中,作为新的盘块号的内容,并把原栈底对应的盘块分配出去。)

②然后再分配一组相应的缓冲区(作为该盘块的缓冲区)。

③把栈中的空闲盘块数-1并返回

12.2回收                                                           

在系统回收空闲盘块时,需调用盘块回收过程进行回收。它是将回收盘块的盘块号计入空闲盘块号栈的顶部,并执行空闲盘块数+1操作。当空闲盘块块号数目已达100时,表示栈已满,便将现有栈中的100个盘块号计入新回收的盘块中,再将其盘块号作为新栈底。

发布了50 篇原创文章 · 获赞 46 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_41949328/article/details/104308379