文件控制块–FCB
为了能对一个文件进行正确的存取,必须为文件设置用于描述和控制文件的数据结构,称之为“文件控制块”(FCB)
- 文件与文件控制块一一对应
- 记录文件名及其存放地址、文件说明和控制信息(具体指明是哪个文件?在哪里?有什么权利)
- 文件管理程序借助于文件控制块中的信息对文件施以各种操作
把文件控制块的有序集合称为文件目录,一个文件控制块就是一个目录项,通常一个文件目录也被看做是一个文件,称为目录文件。
文件控制块中包含的信息:
1.基本信息类(文件名,文件物理位置,文件逻辑结构,文件的物理结构)
2.存取控制信息类(文件的存取权限)
3.使用信息类(建立日期和时间、文件上次修改的日期和时间;当前使用信息)
文件FCB组成的“目录”文件存放于磁盘,需要时要从磁盘将目录内容调入内存进行检索和使用。
位示图:
位示图是利用二进制的一位来表示磁盘中的一个盘块的使用情况。当其值为“0”时,表示对应的盘块空闲;为“1”时,表示已经分配。有的系统把"0"作为盘块已分配的标记,把“1”作为空闲标志。(它们的本质上是相同的,都是用一位的两种状态标志空闲和已分配两种情况。)磁盘上的所有盘块都有一个二进制位与之对应,这样,由所有盘块所对应的位构成一个集合,称为位示图。
要点问答
- 操作系统中对信息进行管理的部分叫文件系统
- 文件系统是文件、管理文件的软件及数据结构的总体
- 从用户角度看,文件系统的主要目的是实现对文件的按名存取
- 按文件的逻辑结构将文件分为两大类:记录式文件和流式文件
- 为了解决不同用户的文件“命名冲突”问题,通常在文件系统中采用:多级目录结构
- 按物理结构划分,文件主要有三类:顺序文件、链接文件、索引文件
- 操作系统实现按名存取的关键在于:解决文件名与文件存储地址的转换
文件和文件系统
文件管理:把管理的程序和数据组织成一系列的文件,并能进行合理的存储、使用等操作
基本概念:
数据项:描述对象某种属性的字符集;是数据组织中可以命名的最小逻辑数据单位
记录:一组相关数据项集合,描述对象某方面的属性
关键字:一个记录中的一个或几个数据项的集合,用于唯一标识一个记录
文件:由创建者定义的、具有文件名的一组相关元素的集合
文件结构
逻辑结构:按用户观点如何组织数据又称文件组织file organization
基本要求,检索速度高、方便修改、降低存储空间费用(不连续)
文件的物理结构:根据外存上的物理块的分配机制,记录文件外存的存储结构(用户感知不到)
1.文件逻辑结构类型
- 有结构文件(记录式)
定长记录
变长记录
如何组织记录:
顺序文件(系统需按该类型记录“长度”,通常定长)。
索引文件(系统需为文件建立索引表)。
索引顺序文件(建索引表,记录每组记录的第一个记录位置) - 无结构文件
字节为单位,利用读写指针依次访问
系统对该类文件不需要格式处理
2.
顺序文件
两种记录方式:串结构、顺序结构
检索方法:从头检索,顺序查找要找的记录,定长的计算相对快;顺序结构,可利用折半查找等来提高效率。
具体过程:
第i条记录地址(定长)读写指针+记录长度:ptr+i*L
第i条记录地址(变长)扫描或读取前面0~i-1条记录
索引文件
为了方便单个记录的随机存取,为文件建立一个索引表,记录每项记录在文件的逻辑地址及记录长度(该索引表按关键字排序)
索引表内容:索引号、长度、记录地址指针
一个索引文件可以有多个索引表
优缺点:适用于变长记录,可提高检索速度,实现直接存取;索引表增加了存储开销
索引顺序文件
将顺序文件的所有记录分组,建立索引表,每个表项记录的是每组第一条记录的键值和地址,组内记录仍按顺序方式检索和使用
检索一条记录的过程:
先计算记录是在第几组,然后再检索索引,确定组在哪里后,在组内顺序查找
直接文件
给定键值不需要顺序检索直接得到记录的物理地址
3.外存分配方式
目标:有效利用外存空间,提高文件访问速度
常用三种方式:连续分配、链接分配、索引分配(通常一个系统中仅采取一种方式)
采用磁盘分配方式决定了文件的“物理结构”
缺点:
会产生外存碎片。可紧凑法弥补,但需要额外的空间,和内存紧凑相比更花时间。
创建文件时要给出文件大小;存储空间利用率不高,不利于文件的动态增加和修改
链接分配
可以为文件分配一组不相邻的盘块,设置链接指针,将同属于一个文件的多个离散盘块链接成一个链表
优点:离散分配,消除外部碎片,提高利用率,适用于文件的动态增长,修改容易
磁盘组织:以簇为单位分配回收,但不规定盘块大小
索引分配
索引文件在顺序访问或随机访问中都比较灵活,是一种比较 好的文件物理结构,但也是需要一定的用于索引表的空间开销和检索文件索引的时间开销的。