一、文件系统
1.1文件与文件系统
1、文件
1)数据项
在文件系统中,数据项是最低级的数据组织形式。分为两种类型:
- 基本数据项。描述一个对象某种属性的字符集,是数据组织中可以命名的最小逻辑数据单位,又称字段。除了数据名还有数据类型
- 组合数据项。由若干基本数据项组成
数据项的名字和类型共同定义了数据项的“型”,表征一个实体在数据项上的数据称为“值”
2)记录
记录是一组相关数据项的集合,用于描述一个对象在某方面的属性
一个记录应包含哪些数据项取决于需要描述对象的哪个方面
唯一标识一个记录的一个或多个数据项称为关键字
3)文件
文件是具有文件名的一组相关元素的集合,可分为有结构文件和无结构文件
有结构文件由若干个相关记录组成,无结构文件看成是一个字符流
文件是文件系统中最大的数据单位
文件属性包括:文件类型、文件长度、文件的物理地址、文件的建立时间
2、文件系统
1)定义
文件系统是操作系统用于明确磁盘或分区上的文件的方法和数据结构,即在磁盘上组织文件的方法;也指用于存储文件的磁盘或分区,或文件系统种类
操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统
文件系统由三部分组成:与文件管理有关软件、被管理文件以及实施文件管理所需数据结构
从系统角度来看,文件系统是对文件存储器空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等
2)文件系统的层次结构
文件系统的模型可分为三个层次:最底层是对象及其属性,中间层是对对象进行操纵和管理的软件集合,最高层是文件系统提供给用户的接口
文件系统管理的对象:文件、目录、磁盘存储空间
与文件系统有关的软件分为四个层次:
- I/O控制层。文件系统的最底层,主要由磁盘驱动程序组成
- 基本文件系统层。处理内存与磁盘之间数据块的交换
- 基本 I/O管理程序。完成与磁盘 I/O有关的事务
- 逻辑文件系统。处理与文件和记录相关的操作
文件系统的接口:命令接口,程序接口
1.2文件的逻辑结构
用户看到的文件称为逻辑文件,它由一系列逻辑记录组成。从用户角度看,文件的逻辑记录是能被存取的基本单位
1、顺序文件
排列方式:
- 串结构:按存入时间的先后排序。对串结构文件进行检索时,每次都必须从头开始,逐个查找
- 顺序结构:按关键字排序。检索时可利用有效的查找算法,如折半查找、跳步查找等
优点:
- 最佳应用场合是对文件中的记录进行批量存取
- 所有逻辑文件中顺序文件的存取效率最高
- 顺序存储设备(如磁带)只能存储顺序存储文件
缺点:
- 用户查找或修改单个记录需要在记录中逐个查找
- 增删一个记录很困难
2、索引文件
出现原因:变长记录文件查找一个记录必须从第一个记录查起,耗时很长
为变长记录文件建立一张索引表,主文件中的每个记录在索引表中设置一个表项,包括指向记录的指针和记录的长度
索引表按关键字排序,其本身也是一个定长记录的顺序文件。这样就把对变长记录顺序文件的顺序检索变为对定长记录索引文件的随机检索
优点:
- 将需要顺序查找的文件改造成可随即查找的文件,提高了查找速度
- 记录的插入、删除非常方便
缺点:除了主文件,还需配置一张索引表,每个记录都要有一个索引项,增加了存储开销
3、索引顺序文件
基本克服了边长记录顺序文件不能随机访问,以及不便于记录插入、删除的缺点,但记录仍按关键字排序
增加了两个新特征:
- 引入文件索引表,通过该表能实现对顺序文件的随机访问
- 增加溢出文件,记录增加的、删除的、修改的记录
1)一级索引顺序文件
首先将变长记录顺序文件的所有记录分为若干组(如50个一组),然后为顺序文件建立一张索引表,并为每组的第一个记录在索引表中建立一个索引项,包括该记录的关键字和指向该记录的指针
对索引顺序文件进行检索时,先利用用户提供的关键字和某种查找算法检索索引表,找到该记录所在组;然后利用顺序查找法查找主文件,直到找到记录
2)两级索引顺序文件
先为文件建立一张低级索引表,若干记录一组;再为低级索引表建立一张高级索引表,若干低级索引表一组。每个表项存放的是低级索引表每组第一个表项的关键字以及指向该表项的指针
1.3文件目录
对目录管理的要求:
- 实现”按名存取“
- 提高对目录的检索速度
- 文件共享
- 允许文件重名
1、文件控制块和索引节点
1)文件控制块
文件控制块中应包括三类信息:基本信息,存取控制信息,使用信息
基本信息包括:文件名,文件物理位置,文件逻辑结构,文件物理结构
存取控制信息包括:文件主、核准用户、一般用户的存取权限
使用信息包括:文件的建立日期和时间,文件上次修改的日期和时间,当前使用信息
2)索引结点
在检索目录文件的过程中只用到了文件名,仅当其中的文件名和指定查找的文件名匹配时,才从该目录文件中读取文件的物理地址
为使检索更高效,系统把文件名和文件描述信息分开,将文件描述信息单独形成一个称为索引结点的数据结构
- 磁盘索引结点:存放在磁盘上的索引结点。每个文件有唯一的磁盘索引结点
- 内存索引结点:存放在内存中的索引结点。当文件被打开时,要将磁盘索引结点拷贝到内存索引结点中
2、单级文件目录和两级文件目录
1)单级文件目录
整个文件系统只建立一张目录表,每个文件占一个目录项,每个目录项含文件名、文件扩展名、文件长度、文件类型、文件物理地址及其他文件属性。此外还设置一个状态位表示文件是否空闲
建立新文件时,先检索所有的目录项以保证新文件名在目录中唯一。然后从目录表中找出一个空白目录项,填入新文件的信息并置状态位为 1。删除文件时,先从目录中找到该文件的目录项,回收文件所占存储空间,再清除目录项
优点:简单