文件管理(一)
目录
6.1 文件
- 文件概念和命名
- 文件类型和属性
- 文件存取方法
6.2 文件目录
- 文件控制块、文件目录与目录文件
- 层次目录结构
- 文件目录检索
6.3 文件组织与数据存储
- 文件逻辑结构
- 文件物理结构
6.1 文件
6.1.1 文件概念和命名
文件是由文件名字标识的一组信息的集合。可按照各种方法进行分类。
文件系统的优点:
- 用户使用方便
- 文件安全可靠
- 实现文件共享
文件是一个抽象机制,提供了把文件保存在磁盘上,用户不必了解信息存储细节且便于读取的方法,这一抽象机制中最重要的是文件命名。
文件名是字母或数字组成的字母数字串,它的格式和长度因系统而异。
6.1.2 文件类型和属性
操作系统支持不同类型文件:
- 普通文件
- 目录文件
- 特别文件
- 块设备文件
- 字符设备文件
- 管道文件
文件属性
6.1.3 文件存取方法
- 存取方法是操作系统为用户程序提供的使用文件的技术和手段
- 存取方法:
- 顺序存取
- 直接存取
- 索引存取
文件目录
6.2.1 文件控制块、文件目录与目录文件
文件系统的分层结构
- 文件管理层——实现文件的逻辑结构,为用户提供各种文件系统调用,以及文件访问权限的设置工作等。
- 目录管理层——负责查找文件描述符,进而找到需要访问的文件,及进行访问权限检查等工作;此外,还需完成目录的添加、删除、重排等操作。
- 磁盘管理层——将文件的逻辑地址转换成磁盘的物理地址,即由逻辑块号找到柱面号、磁道号和扇区号,具体的数据传输操作由设备管理实现。
文件控制块(PCB)是OS为每个文件建立的唯一数据结构,其中包含了全部文件属性,其目的是既便于用户的操作和使用,又便于操作系统对文件的管理和控制。
一个文件由两部分组成:
- FCB
- 文件体(文件信息)
有了FCB就可以实现文件的“按名存取”
6.2.2 层次目录结构
- 每一级目录可是是下一级子目录的说明,也可以是文件的说明,形成层次关系。
- 多级目录结构采用树形结构,是一棵倒向有根树,树根是根目录;从根向下,每个树枝是一个子目录,而树叶是文件。
- 树型多级目录优点
6.2.3 文件目录检索
文件组织与数据存储
6.3.1 文件的逻辑结构
1. 流式文件和记录式文件
文件组织指文件中信息的配置和构造方式,应该从文件的逻辑结构和组织及文件的物理结构和组织两方面考虑。
文件的逻辑结构和组织是从用户观点出发,研究用户概念中的信息组织方式,这是用户能观察到,可加以处理的数据集合。
文件逻辑结构分两种:
- 流式文件
流式文件指指文件内的数据不再组成记录,只是依次的一串信息集合,可以看成是只有一个记录的记录式文件。文件常按长度来读取所需信息,也可用插入特殊字符作为分界。 - 记录式文件
记录式文件包含若干逻辑记录,逻辑记录是文件中按信息在逻辑上独立含义划分的信息单位。包含若干逻辑记录,逻辑记录是文件中按信息在逻辑上的独立含义划分的信息单位。
分类: - 记录式顺序文件
- 记录式索引文件
2. 成组和分解
逻辑记录和块的关系:
逻辑记录是按信息在逻辑上的独立含义划分的单位,块是存储介质上连续信息所组成的区域。
逻辑记录被存放到文件存储器的存储介质上时,可能占用一块或多块,也可以一个物理块包含多个逻辑记录。
image.png
3. 记录格式和记录键
- 记录格式:
- 格式F:定长记录
- 格式V:变长记录
- 格式S:跨块记录
- 记录键
主键,次键
单键记录,多键记录
6.3.2 文件的物理结构
文件的物理结构和组织是指逻辑文件在物理存储空间中存放方法和组织关系。
文件的存储结构涉及:块的划分、记录的排列、索引的组织、信息的搜索,其优劣直接影响文件系统的性能。
构造文件物理结构的方法
- 第一类计算法
- 第二类指针法
-
顺序文件(连续文件)
文件中逻辑上连续的信息存放到存储介质的依次相邻的块上便形成顺序文件。
逻辑记录顺序和物理记录顺序完全一致的文件,通常,记录按出现的次序被读出或修改。
顺序文件变种:- 紧凑顺序文件
- 扩展顺序文件
- 连接顺序文件
- 划分顺序文件
-
连接文件(串联文件)
image.png
连接文件使用连接字,又叫指针来表示文件中各个记录之间的关系
引进指向其它数据的连接表示是计算机程序设计的一种重要手段,是表示复杂数据关系的一种重要方法。
连接结构的优缺点。 -
索引文件
索引结构是实现非连续存储的另一种方法,适用于数据记录保存有随机存取存储设备上的文件
使用索引表,每个表目包含一个记录的键及其记录数据的存储地址。
image.png
- 索引顺序文件
索引顺序文件是顺序文件的扩展,各记录本身在介质上也顺序排列,有直接处理和修改记录的能力。
索引顺序文件能象顺序文件一样进行快速顺序处理,既允许按物理存放次序(记录出现的次序);也允许按逻辑顺序(由记录主键决定的次序)进行处理。
二级索引。二级索引表的表项列出一级索引表每一块最后一个索引项的键值及该索引表区的地址,若干个记录的索引本身也是一种记录。查找时先查看二级索引表找到某键所在的索引表区地址,再搜索一级索引表找出数据记录。
- 直接文件(哈希文件)
记录的关键字与其地址间可通过某种方式建立对应关系,利用这种关系实现存取的文件叫直接文件。
hash技术要建立hash表。
步骤:
-
构造转换(hash)函数
-
建立目录文件
image.png -
查找文件
-
溢出处理