4.1 逻辑层面

4.1.1 文件的基本概念和基本操作

  1. 文件是用户输入、输出的基本单位,是存储在磁盘上的信息的集合;文件的属性信息被目录所保存于外存上,需要时才提至内存
  2. 文件在使用前就需要被显式的打开,通过OPEN操作查询目录中的文件名,并将文件的信息从外存复制到内存的打开文件表中(包括文件的物理地址),当用户需要使用该文件时,用户的进程打开表中增加一个条目,条目内容指向打开文件表的索引编号fd(在OPEN操作完成后就不再使用文件名了),并将文件打开计数器(count)+1,当count的值为0时,就将文件打开表中的条目删除(即关闭文件)

    4.1.2 文件的逻辑结构

    文件的内部是如何组织的

  3. 无结构文件(流式文件)

    1. 文件中的内容没有结构,就是字符的无规则累积,操作简单,但查找只能穷举搜索
  4. 有结构文件

    1. image.png

      4.1.3 目录的逻辑结构

      多个文件是如何组织起来的
  5. 文件的信息都存在FCB中,而FCB的有序集合就是文件目录

  6. 在检索文件时只用到文件名,而其他信息并不使用,因此在有些系统中文件目录项只由文件名和索引结点编号组成,这样在查找时只需要调入很少的内容进入内存即可;一个文件对应一个磁盘索引结点,在打开文件时磁盘索引结点被复制到内存的索引结点中便于使用
  7. 目录的逻辑结构:

    1. 单级目录结构:不允许有重名文件
    2. 两级目录结构:在不同层下可以不同名,但是不能对文件分类
    3. 树形目录结构:无法共享文件
    4. 无环图目录结构:现在使用的目录结构

      4.1.4 文件的共享和保护

  8. 文件共享:image.png

  9. 文件保护:image.png
  10. https://blog.csdn.net/lv8549510/article/details/80253184

4.2 物理层面

4.2.1 文件的实现

文件的块在硬盘中如何组织起来

  1. image.png

    4.2.2 目录的实现

    目录的结构在硬盘中如何实现

  2. 线性列表:实现简单,只是增加或者删除时不太方便

  3. 哈希表:查找迅速,增删时都简单,就是哈希函数的选择容易产生冲突,而且表长固定

    4.2.3 磁盘的空间管理

    磁盘被分为许多的物理块,对磁盘的管理就是对空闲物理块的管理

  4. image.png

    4.2.4 磁盘的结构与调度算法

    磁盘的物理实现和管理调度

  5. 磁盘的结构:image.png

  6. 存取时间与调度算法:
    1. image.png
    2. image.png
  7. 磁盘的管理:image.png
    1. 超级块指的是文件系统的第一个块,存放文件系统本身的结构信息描述文件系统整体信息的数据结构,主要描述文件系统的目录和文件的静态分布情况,以及描述文件系统的各种组成结构的尺寸、数量等。是对一个文件系统的描述。
    2. 超级块