第七章文件

一、文件和文件系统

1、基本概念

u数据项:描述对象某种属性的字符集;是数据组织中可以命名的最小逻辑数据单位。

u记录:一组相关数据项集合,描述对象某方面的属性;

u关键字:一个记录中的一个或几个数据项的集合,用于唯一的标识一个记录。

u文件:由创建者定义的、具有文件名的一组相关元素的集合。

2、文件类型

u按用途:系统、用户、库文件

u按数据形式:源文件、目标文件、可执行文件

u按存取控制属性:只执行、只读、读写

u按组织和处理方式:普通文件、目录文件、特殊(设备)文件

3、文件系统模型

二、文件的逻辑结构

1、

1)有结构文件(记录式)

①定长记录

②变长记录

如何组织记录:

l顺序文件。系统需按该类型记录“长度”,通常定长。

l索引文件。系统需为文件建立索引表。

l索引顺序文件。建索引表,记录每组记录的第一个记录位置。

2)无结构文件(字符流式)

字节为单位,利用读写指针依次访问。

系统对该类文件不需格式处理。

2、顺序文件

1)两种记录排列方式

串结构:按记录形成的时间顺序串行排序。记录顺序与关键字无关;

顺序结构:按关键字排序。

2)检索方法:

从头检索,顺序查找要找的记录,定长的计算相对快。

顺序结构,可用折半查找、插值查找、跳步查找等算法提高效率

3)顺序文件的优缺点:

不方便随机存取某条记录,但适用批量存取的场合。

适合磁带等特殊介质。

单记录的查找、修改等交互性差;增减不方便

3、索引文件

1)折半检索过程举例

1.给出用户关键字

2.检索索引表(设有n条记录,设一个索引表项占x字节),则索引表的x*n/2字节处记录着n/2号记录的地址

3.根据第2步的地址,读一条记录,若记录中关键字不匹配,再判断找第n/4还是第n/2+n/4条记录

2)索引文件的优缺点

适用于变长记录,可提高检索速度,实现直接存取

索引表增加了存储开销

4、索引顺序文件

1)将顺序文件的所有记录分组

2)还是建立索引表,但每个表项记录的是每组第1条记录的键值和地址。

3)组内记录仍按顺序方式检索和使用。

5、直接文件

1)给定键值(如学号)不需顺序检索直接得到记录的物理地址

2)用户对文件的操作由操作系统按文件结构分析执行

3)而操作归根到底要到外存中进行实质操作。

三、外存分配方式

1、连续分配

1)为每一个文件分配一组相邻的盘块。

2)逻辑文件中的记录顺序与存储器中文件占用盘块的顺序一致。

3)优点:顺序访问容易,读写速度快

2、链接分配

1)隐式链接

2)显式链接

【例题】一个1.2M的磁盘,盘块512B大小;若文件系统采用FAT格式,则FAT表大小如何?

答:表项个数  =  盘块个数 =  容量/ 盘块大小= 1.2 *220/ 29 = 1.2 *211 个

表项大小,决定于盘块数量编号需要的位数=12 位;

FAT表大小= 表项个数 * 表项大小= 1.2 *2^11 * 12 bit= 1.2*2^11 * 1.5B = 3.6KB

以半字节(0.5B=4b)为基本单位,表项需12位(1.5B)

3、索引分配

1)单级索引分配

2)多级索引

3)混合组织索引

四、存储空间管理

1、空闲表和空闲链表法

1)空闲表法:常用于连续分配管理方式

2)空闲链表法:将所有空闲盘区拉成一条空闲链

2、位示图法:

1)利用二进制的一位来表示一个盘块的使用情况

2)根据位示图进行盘块分配:

1)顺序扫描位示图。找到为0的二进制位。

2)将所找到的一个或一组二进制位,转换成与之对应的盘块号。进行分配操作。

盘块号计算公式为:盘块号=列总数*(i-1)+ j;(注意下标i,j从1开始)

3)修改位示图。

3、组成链接法

链表长度上限固定

组内的盘块借助一个系统栈可快速处理,且分配回收比较简单。

支持离散分配回收。

五、目录管理

1、目录管理的要求:

o实现“按名存取”;(最基本功能)

o提高对目录的检索速度;

o文件共享;

o允许文件重名。

2、目录结构

1)单级目录

2)两级目录

3)多级目录

3、两级目录特点

1.提高了检索目录的速度。

2.在不同的目录中可重名。

3.不同用户还可以使用相同/不同的文件名来访问系统中的同一个共享文件。

4、目录查询技术

1)线索检索法

2)Hash方法

六、文件共享与保护

1、文件共享方法

1)索引结点法

2)符号链法

你可能感兴趣的:(第七章文件)