一、文件的相关概念
1、为什么要有文件管理?
文件系统主要是为了方面用户访问外部存储器信息,而不去关注内部存储的机制,只需要根据文件名就可以高效的存取信息。
2、文件的定义
文件是这一组具有符号名、在逻辑上具有完整意义的一组相关信息项的集合。比如一个文本文件、一个电影等。
信息项是构成文件内容的基本单位,可以是一个字符、一个记录。
文件的组成:文件名、文件内部标识、文件类型、文件存储地址、文件长度、访问限制、创建时间、访问时间等。
文件是一种抽象机制,它隐藏了硬件和实现细节,提供了将信息保存在磁盘上方便以后读取的手段。
3、什么是文件系统?
定义:操作系统中实现文件统一管理的一组软件和相关数据的集合,专门负责管理和存取文件信息的软件机构。
文件系统功能:按文件名存取、针对不同设备提供文件的统一访问接口、实现并发访问和控制、优化文件性能(提高文件存储效率、提高读写性能、差错恢复等)。
4、文件类型
按照文件性质和用途分类:系统文件、库文件、用户文件。
按照信息保存期限:临时文件、永久文件、档案文件。
文件保护方式:只读文件、读写文件、可执行文件、普通(不受保护)文件。
Unix系统:普通文件、目录文件、设备文件。
文件系统类型:FAT、FAT32、NTFS、E系统、HPFS等。
二、文件的结构和组织
文件的结构是指文件的组织形式。主要有逻辑结构、物理结构。
1、文件的逻辑结构
文件的逻辑结构分为两大类:
结构式记录式文件:由一个以上的记录构成的文件。
无结构式流式文件:由一串顺序字符流构成的文件。
1.1 有结构的记录式文件
记录式文件,所有的记录通常都是描述一个实体集的,有着相同或者不同数组的数据项,记录的长度分为定长和不定长。
定长记录:指文件中所以记录的长度相同。特点:处理方便、开销小。是一种常见的记录格式,广泛用于数据处理中,
变长记录:指文件中各记录的长度不相同。因为很多情况下一个记录所包含的数据项数组可能不同,比如文字的标题、内容等。
1.2 无结构的流式文件
流式文件的文件体是字节流,不划分记录。无结构的流式文件通常采用顺序访问的方式,并且每次读写访问可以指定任意长度,以字节为单位。
2、文件的物理结构
文件的物理结构:指文件内部的组织形式,也就是文件在物理设备上的存放方法。文件的物理结构决定了文件在存储设备上的存放位置,文件的逻辑块号到物理块号的转换也是由文件的物理结构决定的。
1、连续结构
也称为顺序结构,它将逻辑上连续的文件信息依次存放在连续编号的物理块上。针对文件记录的批量存取时,连续结构存取效率最高。如果针对交互应用场合连续结构的性能就会很差。如果文件很大的情况效率会更低。
连续结构的另外一个缺点是不便于记录的增加和删除操作。
2、链式结构
也称为串联结构,它是将逻辑上连续的文件信息存放在不连续的物理块上,每个物理块设有下一个指针指向下一个物理块。如果知道第一个物理块号就可以查找整个文件。
3、索引结构
将逻辑上连续的文件存放在不连续的物理块上,系统为每一个文件建立一张索引表。索引表会记录文件信息所在逻辑块号对应的物理块号。
4、多个物理块的索引表
索引表右文件创建时系统自动创建,并且和文件一起存放在同一个文件卷上。多块索引表组织形式:链式文件、多重索引文件。
UNIX文件系统采用三级索引结构,inode是文件系统的基本构成单位,表示文件系统树形结构的节点。
UNIX文件索引表项寻址方式:直接寻址、一级间接寻址、二级间接寻址、三级间接寻址。
三、文件目录
文件控制块(FCB):包含文件名和存放文件物理地址的数据结构。
文件目录:文件控制块的有序集合。
1、文件控制块
文件控制块包含基本信息、存储控制信息、使用信息类。
基本信息类:文件名、文件物理地址、文件长度、文件块数。
存储控制信息类:文件存取权限,常见的RWX权限。
使用信息类:文件创建日期、最后一次修改日期、最后一次访问日期、当前使用的信息(打开文件的进程数、在文件上的等待队列等)。
2、目录结构
常见的目录结构有一级目录结构、二级目录结构、多级目录结构
1、一级目录结构
整个目录组织是一个线性结构,整个系统中只需建立一张目录表,系统给每个文件分配一个目录项。
特点:结构简单、查找速度慢,不能重名、不方便实现文件共享,适合当用户环境中。
2、二级目录结构、多级目录结构
二级目录结构由主文件目录(MFD)、用户目录(UFD)组成。在主文件目录中,每个用户文件目录都占有一个目录项,器目录项中包括用户名和指向该用户目录文件的指针。用户目录是由用户所有文件的目录项组成的。
特点:提高了检索目录的速度、较好地解决了重名问题;用户隔离不方便文件的共享。
3、多级目录结构
目前多道程序设计系统常采用多级目录结构,这种目录结构像一棵倒置的有根树,也称为树形目录结构每一个节点是目录,叶子节点是文件。