4.1 文件系统基础
4.1.1 文件的基本概念
文件是以硬盘为载体的存储在计算机上的信息集合。
UNIX 操作系统中,所有设备被视为特殊的文件,因为 UNIX 操作系统控制和访问外部设备的方式和访问一个文件的方式是相同的。
操作系统给文件分配空间是以块为单位的。
文件的结构
- 数据项。每一列
- 记录。每一行
- 文件
4.1.2 文件控制块和索引结点
为了实现“按名存取”,在文件系统中为每个文件设置用于描述和控制文件的数据结构,称为文件控制块(FCB)。
1.文件的属性
- 名称
- 类型
- 创建时间
2.文件控制块(FCB)
FCB
文件系统在创建一个文件时,为它建立一个文件目录项,也就是一个 FCB。
文件时间 |
---|
文件权限(创建,访问,写) |
文件所有者 |
文件大小 |
文件数据块 |
文件目录结构
文件名 | 索引结点编号 |
---|---|
文件名 1 | |
文件名 2 |
3.索引结点
索引结点又是文件的低级名称,是一个数字。
因为文件目录通常存放在磁盘上,当文件很多时,文件目录会占用大量的盘块。在查找目录的过程中,要先将存放目录文件的第一个盘块中的目录调入内存,然后用给定的文件名逐一比较。
文件控制块(FCB)包含文件名和索引结点指针(也叫 i 结点)。
FCB 或索引结点相当于图书馆中图书的索书号。
索引结点号相同本质上为同一个文件。
4.1.3 文件的操作
1.文件的基本操作
(1)创建文件。为新文件分配必要的外存空间,在目录中创建一个目录项。
(2)写文件。
(3)读文件。
(2)删除文件。释放空间,删除目录项。
4.1.4 文件保护
4.1.5 文件的逻辑结构
1.无结构文件
以字节为单位
2.有结构文件
(1)顺序文件
记录是定长或不定长的
串结构(顺序查找):记录之间顺序与关键字无关
顺序结构(顺序查找或折半查找):记录之间顺序与关键字有关
(2)索引文件(顺序查找)
添加索引表将变长记录文件的顺序检索变为随机检索,每个索引表项对应一个记录。
索引文件支持随机访问,对文件的修改也比较方便。
(3)索引顺序文件(分块查找)
索引顺序文件就是一本新华字典,索引文件就是字典前面的拼音对应的页码。顺序文件就是后面的内容。
平均要找$\sqrt{n}$次。
(4)散列文件
4.1.6 文件的物理结构
对磁盘非空闲块的管理
1.连续分配
每个文件在磁盘上占有一组连续的块
使作业访问磁盘时需要的寻道数和寻道时间最小
2.链接分配
(1)隐式链接
目录项含有文件第一块和最后一块的指针,只能顺序访问。
(2)显式链接
用于链接文件各物理块的指针显式地放在一张表中。
3.索引分配
每个文件对应一张索引表,是一个磁盘块地址的数组。
支持文件长度可变、随机访问。