OS复习——文件系统

OS复习——文件系统

1. 文件的基本概念:具有文件名的一组相关信息的集合

  • 文件:文件是数组的一种组织形式,是具有符号名的一组相关数据信息的集合,或者说文件是一组带标识的、在逻辑上有完整意义的信息项的序列。
  • 文件名:文件的符号名。当一个文件被创建时,必须给它指定一个名字,用户通过文件名来访问文件。命名规则:
  • 文件分类
    • 文件用途分类:
      • 系统文件:由与操作系统本身密切相关的一些程序或数据所组成的文件;
      • 库文件:由系统提供的可供用户调用的各种标准过程、函数和应用程序等所组成的文件;
      • 用户文件:由用户的程序或数据所组成的文件。
    • 文件中的数据分类:
      • 源文件:从终端或其他输入设备输入的源程序和数据文件,以及作为处理结果的输出数据文件;
      • 相对地址目标文件:源程序文件通过各种语言编译程序编译后所输出的相对地址形式的目标程序文件;
      • 可执行程序文件:相对地址目标文件通过链接装配程序链接后所生成的、可在计算机中运行的程序文件。
    • 文件保护方式分类:
      • 只读文件:仅允许对其进行读操作的文件;
      • 读写文件:有控制地允许不同用户对其进行读或写操作的文件;
      • 不保护文件:没有任何存取限制的文件。
    • 文件保存时间分类:
      • 临时文件:在批处理中从作业开始运行到作业结束,或是在分时处理中从会话开始到会话终止期间所保存的临时性文件。一旦这些作业终止,其相应的临时文件也被系统自动撤销。
      • 永久文件:在用户没有发出撤销该文件的命令前,一直需要在系统中保存的文件。

2. 文件系统

​ 文件系统是操作系统中统一管理信息资源的一种软件,管理文件的存储、检索、更新,提供安全可靠的共享和保护手段,并且方便用户使用。

​ 文件系统要完成的任务:

  1. 统一管理磁盘空间,实现磁盘空间的分配与回收;
  2. 实现文件按名存取:名字空间–映射–>磁盘空间;
  3. 实现文件信息共享,并提供文件的保护、保密手段;
  4. 向用户提供一个方便使用、易于维护的接口,并向用户提供有关统计信息;
  5. 提高文件系统的性能;
  6. 提供与IO系统的统一接口。

3. 文件的组织

3.1 逻辑结构

​ 从用户角度所观察到的文件组织形式(记录式、流式)。文件管理系统必须具有执行这种映射功能的模块,把用户请求中的逻辑字节串地址变换成物理字节串地址。可以提高检索效率,便于修改,降低文件存储代价。

3.2 物理组织

​ 文件的存储结构,即文件在外存上的存储组织形式,表示了一个文件在文件存储介质上的位置、链接和编目的方法。主要结构有:

3.2.1 连续结构

​ 把一个逻辑上连续的记录分配到连续的物理块中,即用物理上的顺序存储来实现的逻辑次序,物理顺序和逻辑顺序是一致的。适合于变化不大的文件。

  • 优点:结构简单,实现容易,不需要额外的空间开销;顺序存取和随机存取的效率高;
  • 缺点:文件长度一经固定便不易改变;不利于文件的动态增加和修改。

在这里插入图片描述

3.2.2 索引结构

​ 一个文件的信息存放在若干个不连续物理块中,系统为每个文件建立一个专用数据结构:索引表,并将这些物理块的块号存放在该索引中。索引表就是磁盘块地址数组,其中第i个条目指向文件的第i块。

​ 因为每个文件的索引表长度是不一样的,所以索引表不能存放在FCB中,FCB中只记录索引表的地址。系统为每个文件建立逻辑块号与物理块号的对照表,称为文件的索引表。文件由数据文件和索引表构成,这种文件称为索引文件。

在这里插入图片描述

在这里插入图片描述

​ 索引文件在存储区中占两个区:索引区数据区。索引区存放索引表,数据区存放数据文件本身。访问索引文件需要两步操作:读取文件索引区,由逻辑块号查得物理块号;访问物理块号而获得所需信息。

重点举例:读取Linux下/tmp/hello的过程(假定根目录索引表已在内存中,也就意味着获得了根目录目录项所在的物理块号)

  1. 读取根目录内容,获得tmp目录的索引表所在的物理块号;
  2. 读取tmp的索引表信息,获得tmp目录项所在的物理块号;
  3. 读取tmp目录内容,获得hello的索引表所在的物理块号;
  4. 读取hello的索引表信息,获得hello的物理块号;
  5. 读取hello的数据。

索引文件的特点:

  • 优点:保持了链接结构的优点,又避免了其缺点。既能顺序存取,又能随机存取;满足了文检动态增长、插入删除的要求;能充分利用外存空间。
  • 缺点:索引表本身带来了系统开销,如内外存空间,存取时间等。

索引表的组织:

  • 链接模式:一个盘块一个索引表,多个索引表链接起来;
  • 多级索引(间接索引):将一个大文件的所有索引表(二级索引)的地址放在另一个索引表(一级索引)中;
  • 综合模式:直接索引方式与间接索引方式结合。

3.2.3 串联结构

​ 串联文件结构是按顺序由串联的块组成的,即文件的信息按存储介质的物理特性存于若干块中。每个物理块的最末一个字(或第一个字)作为链接字,它指向后继块的物理地址。链首指针存放在该文件目录中。文件的结尾块的指针为“^”,表示文件至本块结束。

  • 优点:空间利用率高,能较好地利用外存空间;文件动态扩充和修改容易;顺序存取效率高。
  • 缺点:随机存取效率太低,如果访问文件的最后的内容,实际上是要访问整个文件;可靠性问题,如指针出错;链接指针占用一定的空间。

在这里插入图片描述

4. 目录的作用、内容、结构

4.1 目录的作用

​ 目录能够把不同的文件按照某种属性进行分组,用户只需向系统提供所需访问文件的名字,就能迅速定位一个文件。

4.2 目录的内容

  • 目录是文件属性信息,部分是用户可获取的;
  • 基本信息:
    • 文件名:字符串,通常不同系统允许不同的最大长度,可修改。有些系统允许同一文件有多个别名。
    • 别名的数目.
  • 文件类型:
    • 有/无结构(记录文件、流式文件);
    • 内容(二进制、文本);
    • 用途(源代码、目标代码、可执行文件、数据);
    • 属性attribute(如系统、隐含等);
    • 文件组织(如顺序、索引等);
  • 地址信息:
    • 存放位置:哪个设备或文件卷,及各存储块位置;
    • 文件长度(当前和上限):以字节、字或存储块为单位;
  • 访问控制信息:
    • 文件所有者(属主):通常是创建文件的用户,也可改变;
    • 访问权限(用户访问方式):读、写、执行等;
  • 使用信息:
    • 创建信息;
    • 最后一次读访问的时间和用户;
    • 最后一次写访问的时间和用户。

4.3 目录分类

4.3.1 单级目录结构

​ 文件目录的每个表目应包含:文件的符号名文件所在物理地址文件结构信息访问控制信息管理信息

​ 特点:结构简单;文件多时,目标检索时间长;有命名冲突:如多个文件有相同的文件名(不同用户的相同作用的文件)或一个文件有多个不同的文件名(不同用户对同一文件的命名);不便于实现共享。

在这里插入图片描述

4.3.2 两级目录结构

​ 在根目录下,每个用户对应一个第二级目录,在用户目录下是该用户的文件,而不再有下级目录。适用于多用户系统,各用户可有自己的专用目录。

在这里插入图片描述

4.3.3 多级目录结构

​ 在较高的目录级,其目录表目下一级目录名以及一个指向其目录的指针。在最后一级目录,这个指针指向文件的物理结构。几乎所有现代文件系统都采用这种方案。

在这里插入图片描述

多级目录特点:

  • 层次清楚
    • 不同性质、不同用户的文件可以构成不同子树,便于管理;
    • 不同用户的文件可以被赋予不同的存取权限,有利于文件的保护;
    • 数目较多时,便于系统和用户将文件分散管理,使得文件和目录的层次结构较为清晰。适用于文件数量较多的文件系统管理;
  • 可解决文件重名问题:文件在系统中的搜索路径时从根开始到文件名为止的各文件名组成,只要在同一目录下的文件名不发生重复就不会由文件重名而引发混乱;
  • 查找速度快:可为每类文件建立一个子目录,由于对多级目录的查找每次只查找目录的一个子集,所以搜索速度快于一级和二级目录;
  • 目录级别太多时,会增加路径检索时间

5. 文件的实现方法

5.1 文件控制块

  • 基本信息:
    • 文件名:字符串,通常在不同系统中允许不同的最大长度,可修改;
    • 物理位置
    • 文件逻辑结构:有/无结构(记录文件,流式文件);
    • 文件物理结构:(如顺序,索引等)
  • 访问控制信息:
    • 文件所有者(属主):通常是创建文件的用户,或者改变已有文件的属主;
    • 访问权限(控制各用户可使用的访问方式):如读、写、执行、删除等;
  • 使用信息:
    • 创建时间上一次修改时间,当前使用信息等。
  • 实例:DOS中的文件控制块FCB,Unix中的inode。

在这里插入图片描述

6. 文件的共享、保护、保密

以上部分内容引自课件和《操作系统使用教程(第三版)》,如有侵权,请及时联系我删除!

猜你喜欢

转载自blog.csdn.net/NickHan_cs/article/details/106556429