operating system

计算机内存在断电情况下不能保存数据,且容量有限,因此现代系统都有配置外存。外存用来存放数据,为了方便用户使用文件,操作系统添加了文件管理功能,专门管理在外存上的文件,并把对文件的存取、共享和保护等手段提供给用户,这样不仅提高了文件的安全性,还可有效地提高系统资源的利用率。

1. 文件和文件系统

  1. 数据项

    分为基本数据项和组合数据项,类比数据库。例如学号就是一个基本数据项,而工资就是组合数据项(基本工资,工龄工资和奖励工资)。

    数据项包括数据类型和值,例如名字是字符类型,值就是一串字符。学号是数据类型,值是一个整数。相当于一个 key 对应一个 value 。

  2. 记录

    记录是一组相关数据项的组合,类比数据库,用于描述一个对象在某方面的属性。一个记录应包含哪些数据项,取决于需要描述对象的哪个方面。例如你的身份是学生,那么可以将(成绩、学号、性别、姓名)四个数据项作为一个记录。

    为了可以唯一标识一个记录,需要在一个记录的各个数据项中确认出一个或几个数据项,把它们的集合称为关键字(key),通常只需要一个数据项,例如学号。

  3. 文件

    文件是指由创建者所定义的、具有问价名的一组相关元素的集合,可分为有结构文件和无结构文件两种。在有结构的文件中,文件由若干项相关记录组成,而无结构文件则被看成是一个字符流。文件在文件系统中是一个最大的数据单位,它描述了一个对象集。例如,可以将一个班的学生记录作为一个文件。

    文件属性包括

    • 文件类型。可以从不同角度来规定文件的类型,例如源文件、目标文件以及可执行文件等。
    • 文件长度。文件长度指文件的当前长度吗,长度的单位可以是字节、字或块、也可能是最大允许的长度。
    • 文件的物理位置。该项属性通常用于指示文件所在设备及所在设备中地址的指针。
    • 文件的创建时间。这是指最后一次的修改时间等。

2. 文件名和类型

3. 外存分配算法

  1. 连续外存分配

  2. 链接分配

    显式链接:FAT 文件系统

  3. 索引分配

4. 索引分配

二级索引分配:参照二级页表

5. 目录管理

  1. 文件控制块(FCB)

    包括文件的各种属性。

有单级目录、二级目录。

最常用的是树型目录结构,linux 的根目录是 2

6. 文件存储空间的管理

  1. 空闲表法

    首次适应算法

    循环首次适应算法

    最佳适应算法

    最坏适应算法

  2. 位示图法

    一个位表示一个快。