一、文件和文件系统
1.1.基本概念
- 文件是指具有文件名的若干相干元素的集合
- 现代OS中通过文件系统来组织和管理计算机中存储的数据
- 文件系统包括两方面:
- 负责管理文件的系统软件
- 被管理的对象--文件
1.2.文件结构
- 文件的逻辑结构。从用户观点出发所观察到的文件组织形式,是用户可以直接处理的数据及其结构,它独立于文件的物理特性,又称为文件组织
- 文件的物理结构。又称为文件的存储结构,是指文件在外村上的存储组织形式。与存储介质的存储性能和采用的外存分配方式有关
二、文件的逻辑结构
2.1.分类:
- 有结构文件,是指由一个以上的记录构成的文件,又把它称为记录式文件;根据记录的长度可分为定长记录文件,不定长记录文件
- 无结构文件,是指由字符流构成的文件,故又称为流式文件
2.2.有结构文件
- 顺序文件。由一系列记录按某种顺序排列所形成的文件。通常是定长记录
- 索引文件。当记录可变长时,通常为之建立一张索引表,并为每个记录设置一个表项以加快对记录检索的速度
- 索引顺序文件。上述两种方式的结合。为文件建立一张索引表,为每一组记录中的第一个记录设置一个表项
- 直接文件
2.3.无结构文件
- 如果说大量的数据结构和数据库,是采用有结构的文件形式的话,则大量的源程序、可执行文件、库函数等,所采用的就是无结构的文件形式,即流式文件。其长度以字节为单位。对流式文件的访问,则是采用读写指针来指出下一个要访问的字符
- UNIX系统中,所有的文件都被看作是流式文件
三、文件的物理结构
3.1.外存分配方法
- 连续分配
- 连接分配
- 索引分配
3.2.连续分配
- 连续分配要求为每一个文件分配一组相邻的盘块。在采用该方式时,可把逻辑文件中的记录顺序的存储到邻接的各物理块中,这样所形成的文件结构称为顺序文件结构,此时的物理文件称为顺序文件。这种分配方式保证了逻辑文件中的记录顺序与存储器中文件占用盘块的顺序的一致性
- 随着文件的建立与删除不断进行,将产生很多外村的碎片,利用紧凑方法也可消除碎片
3.3.链接分配
- 采用链接分配方式时,可通过在每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表,把这样形成的文件称为链接文件
3.4.索引分配
-
解决了连续分配方式所存在的问题,但又出现了另外两个问题:
- 不能支持高效的直接存取。要对一个文件进行直接存取,需首先在FAT中顺序的查找许多盘块号
- FAT需占用较大的内存空间。当磁盘容量较大时,FAT可能要占用数MB以上的内存空间
-
索引分配方式:
- 单级索引方式
- 多级索引方式
- 混合索引方式
-
索引分配方式的问题:
- 可能要花费较多的内存空间。每当建立一个文件时,便需为之分配一个索引块,将分配给该文件的所有盘块号记录于其中
四、存储空间的管理
4.1.分类
- 空闲表法和空闲链表法
- 位示图法
- 成组链接法
4.2.位示图
- 顺序扫描位示图,以找到一个或一组其值为“0”的二进制位