其他分享
首页 > 其他分享> > 操作系统期末复习第五章 文件系统

操作系统期末复习第五章 文件系统

作者:互联网

第五章 文件系统

概述

文件是操作系统对底层的储存介质最典型的抽象之一。有了文件之后,人们总是考虑数据保存在哪一个文件中,而不是某个存储介质的具体位置。

文件

文件的概念

文件是一组或多组相关信息的集合。数据只有通过文件才能保存到存储介质中。
文件的中保存的单元一般是数值文本或者二进制的机器代码。有些文件没有特定的格式,如ASCII文本文件。有些则包含很复杂的格式,例如可执行程序文件。

文件系统的概念和目的:

文件系统指文件、管理文件的软件及数据结构的总体。
文件系统的主要目的:实现文件的按名存取

文件的属性

文件的操作:

文件的类型
在这里插入图片描述

文件的分类:

  1. 系统文件:系统软件构成的文件,直运行用户通过系统调用或系统提供的命令执行,不允许对其进行读写和修改。
  2. 库文件:运行用户对其进程读取和执行,不允许对其进行修改。如C语言的子程序库。
  3. 用户文件:用户通过操作系统保存到文件,由文件的所有者或被授权的人才能使用。

文件的访问

  1. 顺序访问:按照文件中存储的顺序来访问
  2. 随机访问:读/写指针可以随机指向任何文件的位置并读/写数据。
  3. 索引访问:由文件所包含的索引来加快文件的访问速度。

文件的逻辑结构
1.顺序文件:

  1. 定长记录:有读写指针指向下一次读写的地址。每一个记录的长度固定。
  2. 变长记录:每个记录的长度存记于记录前的单元中。

顺序文件对记录进行批量处理即一次读写大量记录时,效率最高。寻找和增加删除一个记录很难,要按顺序逐个查找。

2.索引文件:
在这里插入图片描述
直接文件和哈希文件
1.直接文件:可以直接根据给定的记录键值,直接获得指定记录的物理地址。组织直接文件的关键在于用什么方法进行从记录键值转化为物理地址。
2。哈希文件:在这里插入图片描述

文件保护

访问控制:基于用户和组的访问控制:
在这里插入图片描述访问控制表(Access Control List):给每个文件加一个访问控制列表信息,包含了哪些用户对这个文件有哪种类型的访问。这样系统打开这个文件之前,都有进行搜索文件访问控制列表来判断当前用户是允许执行相关操作。

文件目录

文件系统中主要的数据结构之一,通常通过文件目录实现文件的组织。
对目录管理的要求如下:

文件控制块(FCB)

文件除了数据本身还有很多属性信息,为了方便和实现,一般程文件的所有属性信息为文件控制块(File Control Block)在这里插入图片描述文件控制块是操作系统为了管理文件而设置的数据结构,存放为了管理文件所需要的相关信息。
文件控制块是文件存在的标志

文件控制块的内容

文件目录

把所有FCB组织在一起,就构成了文件目录,文件目录即为文件控制块的有序集合。
目录项:就是FCB。
目录文件:为了实现对文件目录的管理,通常将文件目录以文件的形式保存在外存,这个文件就叫做目录文件。

索引节点

索引结点的引入
文件目录放在外存上,当检索一个文件时需要启动磁盘,将不同的磁盘块中的目录项逐一调入内存。设目录文件占用N块盘。则查找目录项平均调入盘块数为(N+1)/2。

改进:在查找目录时,目录项中只有文件名是必要的。所以可以采用文件名和其他文件描述信息分开储存的办法。文件描述信息单独形成一个被称为索引结点的数据结构,简称i结点。目录项的内容变成文件名和指向该文件所对应的i结点的指针所构成。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解:
每块磁盘装的目录项:

计算所有目录项所占的磁盘块数:

查找一个文件的平均访存次数:

目录的分级结构:

1.单极目录结构:

为所有目录建立一个目录文件。
但是查找速度慢,不允许重名,不便于实现文件共享。

2.二级目录结构:

为了解决命名冲突,一级为主文件目录,给出用户名和用户子目录所在的地理位置;二级为用户文件目录,给出该用户所有文件的FCB。在这里插入图片描述
优点:解决了文件的重名问题和文件共享问题,提高了搜索速度,查找时间降低。
缺点:不适合大量用和大量文件的大系统,增大开销。

3.多级目录结构

也成为树型目录,产生于UNIX,现在广泛应用,目录和文件放在一起,目录也被做成文件。
在这里插入图片描述
优点:层析结构清晰,便于管理和保护;有利于文件分类;解决重名问题;提高文件检索速度;能进行存取权限的控制。
缺点:查找一个文件按路径逐层查找,要多次访问磁盘,影响速度。

路径名:

在树型目录结构中,从根目录到任何数据文件,都只有一条唯一的路径。用/连接起来。如上图中用户B访问N路径名为:/B/F/N。

当前目录:

为了提高文件检索速度,文件系统向用户提供了一个当前正在使用的目录。查找一个文件可以从当前目录开始,使用部分路径名。

当前目录一般放在内存中。

相对地址。而根据根目录得出的地址叫绝对地址

文件系统的实现:

文件系统的结构:

在这里插入图片描述

目录实现:

目录可以看成是一个表,基本的实现问题是如何组织这张表才能获得最好的效率和性能。
目前最强用的两种方式是线性表和哈希表(目录项组织成哈希结构,文件名作为哈希函数的输入值)。

文件的分配方法

1.连续分配:为内阁文件分配一组相邻的盘块。一组盘块的地址定义了盘块上的一段线性地址。一个文件说明里要有第一个记录的物理块号和文件的长度(盘块数)。

优点:是顺序访问容易,访问速度快。
缺点:会产生碎片问题,还必须知道文件长度。

2.链接分配:一个文件的信息存放在若干个不连续的物理块中,各块之间通过指针链接,前一个物理块指向下一个物理块。

优点:提高磁盘空间利用率,不存在外部碎片问题,有利于文件的插入和删除,有利于文件的动态扩充
缺点:存取速度慢,不适于随机存取,可靠性差,要更多的寻道次数和寻道时间,链接指针占用一定空间
分为显示链接和隐式链接

  1. 隐式链接:文件目录含有第一个记录的指针和最后一个记录的指针。每个盘块含有指向下一个盘块的指针。
    但是只适合顺序访问,因为盘块含有下个一盘块的指针,所以必须启动磁盘,访问一次就要启动一次磁盘,速度很慢。解决方法是“簇”,但改进小,且会增大碎片。在这里插入图片描述
  2. 显式链接:把链接各物理块的指针显示村啊放在内存的一张链接表中(FAT),整个磁盘只设置一张。表的序号是物理盘块号。每个表项放链表指针。文件的首个盘块号存放在相应文件的FCB中。
    好处:FAT(File Allocation Table)在内存中,提高检索速度。
    问题是可能FAT占用太大内存。在这里插入图片描述

关于FAT表尺寸的计算

在这里插入图片描述

盘快数:500M/2K = 250K
250K需要18位来表示
每个盘块号要占用0.5字节,所以需要20位,即2.5字节来描述盘块号
所以FAT的尺寸:250K*2.5=625K

3.索引分配
因为链接的问题:

解决:不将整个FAT调入内存,将每个文件对于的盘块号,存入文件的索引块,该索引块就是一个含有许多盘块号的数组。

问题:花费较多外存,小文件索引块利用率低。

索引分配分为单级,多级和混合。文件大就用多级。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

点击☞成组链接法来管理空闲盘块

标签:文件,链接,文件目录,操作系统,记录,文件系统,盘块,目录,复习
来源: https://blog.csdn.net/weixin_44157794/article/details/118055363