操作系统-第四章(4.1文件管理系统)

avatar
作者
猴君
阅读量:0

这一章要解决的问题:
计算机中存放了各种各样的文件,一个文件有哪些属性?
文件内部的数据应该怎么组织起来?

文件之间又应该怎么组织起来?

从下往上看,OS应提供哪些功能,才能方便用户、应用程序使用文件?

从上往下看,文件数据应该怎么存放在外存(磁盘)上?

1文件的基本概念

文件是以硬盘为载体的存储在计算机上的信息集合,文件可以是文本文档、图片、程序等。在系统运行时,计算机以进程为基本单位进行资源的调度和分配;而在用户进行的输入、输出中,则以文件为基本单位。

1.1文件的定义

文件是一组有意义的信息/数据集合

文件的结构:

1)数据项。是文件系统中最低级的数据组织形式,可分为:

  • 基本数据项。用于描述一个对象的某种属性的一个值,是数据中的最小逻辑单位。
  • 组合数据项。由多个基本数据项组成。

2)记录。是一组相关的数据项的集合,用于描述一个对象在某方面的属性。

3)文件。是指由创建者所定义的、具有文件名的一组相关元素的集合,可分为有结构文件和无结构的文件。

无结构文件:由一些二进制或字符流组成又称“流式文件”

有结构文件(如数据库表):由一组相似的记录组成,又称“记录式文件”

1.2文件的属性

  • 文件名:由创建文件的用户决定文件名,主要是为了方便用户找到文件,同一目录下不允许有重名文件。
  • 标识符:一个系统内的个文件标识符唯一,对用户来说毫无可读性。
  • 类型:被支持不同类型的文件系统所使用。
  • 记录:是一组相关数据项的集合。
  • 位置:指向设备和设备上文件的指针。
  • 大小:文件当前大小(用字节、字或块表示),也可包含文件允许的最大值。
  • 保护信息:对文件进行保护的访问信息。

1.3文件的组织

->问:文件应该怎么组织起来?

->问:系统应该向上提供哪些功能?

 ->从上往下看,文件应如何存放在外存?

 2文件的逻辑结构

->区分逻辑结构和物理结构

逻辑结构针对用户看,文件内部的数据应该是如何组织起来的。

物理结构针对操作系统看,文件的数据是如何存放在外存中的。

2.1有结构文件

无结构文件:文件内部的数据就是一系列二进制流或字符流组成。又称“流式文件”.txt文件

有结构文件:由一组相似的记录组成,又称“记录式文件”。每条记录由若干个数据项组成。如:数据库表文件。一般来说,每条记录有一个数据项可作为关键字

按记录的长度是否相等划分为定长记录和可变长记录。

定长记录:每条记录的长度都相同。各数据项都处在记录中相同的位置,具有相同的顺序和长度

可变长记录

2.2有结构的文件的逻辑结构

根据有结构文件中的各条记录在逻辑上如何组织,可以分为:顺序文件、索引文件、索引顺序文件

(1)顺序文件

定义:文件中的记录一个接一个地顺序排列(逻辑上),记录可以是定长也可以是可变长的。各个记录在物理上可以是顺序存储或链式存储

 顺序文件分为

顺序文件类似于数据结构中的线性结构(线性表),在物理上可以链式存储顺序存储

串结构:关键字排列无序,即无序线性表。顺序结构:关键字顺序排列,即有序线性表。

链式存储、顺序存储与定长记录、可变长记录与串结构、顺序结构。这三类限制理论上有八种组合。

重点关注

  • 只有顺序存储才有可能支持随机存取
  • 可变长记录不能随机存取,要查找第 m 条记录必须顺序地查找所有的前m-1条记录,从而获得相应记录的长度L,进而计算出第 m 条记录的首址。

  • 串结构即无序线性表只能顺序查找,顺序存储的定长顺序结构即有序顺序表支持折半查找。

 注:考试中默认顺序文件是指顺序存储的顺序文件。 

注:顺序文件指的是物理上顺序存储的顺序文件。

2.3索引文件

为解决可变长记录文件—查找时,必须先顺序查找i-7个记录,想要可以随机访问。

特点:索引表本身是定长记录的顺序文件支持随机访问)。

可以用不同的数据建立多个索引表。

同时可以将关键字作为索引号内容,按关键字顺序排列(顺序结构),那么索引表还可支持折半查找。

2.2.1索引顺序文件

索引顺序文件是索引文件和顺序文件思想的结合。索引顺序文件中,同样会为文件建立一张索引表,但不同的是:并不是每个记录对应一个索引表项,而是一组记录对应一个索引表项。 

争议点:

 索引顺序文件的索引表实质是定长记录串长的顺序文件

2.2.2多级索引顺序文件

以空间换时间,进一步提高检索效率

 

3文件的物理结构

定义

3.1连续分配

 连续分配方式要求每个文件在磁盘上占有一组连续的块。

  • 缺点:文件长度不宜动态增加,删除和插入记录麻烦;会产生外部碎片。
  • 优点:作业访问磁盘时需要的寻道数和寻道时间最小。

3.2链接分配

 链接分配是一种采用离散分配的方式。它消除了磁盘的外部碎片,对文件的插入、删除和修改操作也十分方便。  

3.3隐式链接

 只支持顺序访问,不支持随机访问。

可以将几个盘块组成簇(cluster),按簇而不按块来分配,这样做增加了内部碎片,减少了磁盘访问时间。

3.4显式链接

把用于链接文件各物理块的指针显式地存放在一张表中。即文件分配表(FAT,file allocation table) 

3.5索引分配

 索引分配允许文件离散地分配在3.5各个磁盘块中,系统会为每个文件建立一张索引表,索引表中记录了文件的各个逻辑块对应的物理块(索引表的功能类似页表)。索引表存放的磁盘块称为索引块。文件数据存放的磁盘块称为数据块。  

注意:显式链接分配中一个磁盘对应一个文件分配表FAT,索引分配中一个文件对应一个索引表。两者都不需要访问磁盘。

3.6大文件索引块的三种处理方案

原理同分页管理方式中页表太长这一问题。 

链接方案:将多个索引块链接起来存放。访问后面的索引块必须先读入前面的索引块。
多层索引:建立多层索引(原理类似于多级页表)。使第一层索引块指向第二层的索引块。还可根据文件大小的要求再建立第三层、第四层索引块。
混合索引:即下面1.6.4介绍的一种文件分配方式,也能解决大文件索引块过大的问题。

 

3.7混合索引分配

是多种索引分配方式的结合。例如,一个文件的顶级索引表中,既包含直接地址索引(直接指向数据块),又包含一级间接索引(指向单层索引表)、还包含两级间接索引(指向两层索引表) 

总结

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!