操作系统:12、操作系统的文件管理

  • 文件的逻辑结构
  • 辅存的存储空间分配
  • 辅存的分配方式
  • 辅存的存储空间管理
  • 目录管理


文件的逻辑结构

逻辑结构的文件类型: 逻辑结构的文件主要分为有结构文件和无结构文件。

NTFS标准索引项 区分文件和目录_链表


有结构文件:

文件内容由定长记录和可变长记录组成;
定长记录存储文件格式、文件描述等结构化数据项;
可边长记录存储文件具体内容;

具体有结构文件例子,如下图的png图片:

NTFS标准索引项 区分文件和目录_存储文件_02


无结构文件:

无结构文件也称为流式文件;
文件内容长度以字节为单位;
比如常见的exe文件、dll文件、so文件

顺序文件:

按顺序存放在存储介质中的文件;
磁带的存储特性使得磁带只能按照存储顺序文件;
顺序文件是所有逻辑文件中存储效率最高的;

索引文件:

可变长文件不适合使用顺序文件格式存储;
索引文件是为了解决可变长文件存储而发明的一种文件格式;
索引文件需要配合索引表完成存储操作;

NTFS标准索引项 区分文件和目录_存储文件_03

辅存的存储空间分配

辅存的分配方式

NTFS标准索引项 区分文件和目录_存储文件_04


连续分配:

要求文件存储在连续的扇区来存储文件;
顺序读取文件内容非常容易,速度很快;
对存储要求高,要求满足容量的连续存储空间;

链接分配

将文件存储在离散的盘块中;
需要额外的存储空间来存储文件盘块链接顺序;
根据额外存储空间的不同,把链接分配分成隐式链接和显式链接。

隐式链接:

NTFS标准索引项 区分文件和目录_存储文件_05


显式链接:

NTFS标准索引项 区分文件和目录_存储空间_06


索引分配:

使用一个额外盘块来存储这个文件所有的盘块;
把文件的所有盘块集中存储(索引);
读取某个文件时,将文件索引读取进内存即可;

索引分配每一个文件都拥有一个索引块,记录所有盘块信息;
索引分配方式支持直接访问盘块;
文件较大时,索引分配具有明显优势,因此主流文件系统都是使用索引分配来进行磁盘分配;

NTFS标准索引项 区分文件和目录_存储空间_07

辅存的存储空间管理

NTFS标准索引项 区分文件和目录_NTFS标准索引项 区分文件和目录_08


空闲表

NTFS标准索引项 区分文件和目录_链表_09


空闲链表

空闲链表法把所有空闲盘区组成一个空闲链表;
每个链表节点存储空闲盘块和空闲的数目;(使用方式与内存存储管理时,使用空闲链表是一样的。)

位示图

位示图维护成本很低;
可以非常容易找到空闲盘块;
使用0/1比特位,占用空间很小;
实际辅存分配方式也是用位示图来管理;

NTFS标准索引项 区分文件和目录_存储空间_10

目录管理

目录树

因为有了目录树使得每一个文件或者目录都有唯一路径;

NTFS标准索引项 区分文件和目录_链表_11