文件管理、磁盘管理

文件和文件系统
文件管理:把所管理的程序和数据组织成一系列的文件,并能进行合理的存储、使用等操作。
文件系统模型

文件读/写操作 = 检索 + 读/写。

文件的逻辑结构
有结构文件(记录式)
①定长记录
②变长记录
无结构文件(字符流式)
字节为单位,利用读写指针依次访问。
系统对该类文件不需格式处理。

顺序文件
两种记录排列方式
串结构:按记录形成的时间顺序串行排序。记录顺序与关键字无关;
顺序结构:按关键字排序。

顺序文件的优缺点:
不方便随机存取某条记录,但适用批量存取的场合。
适合磁带等特殊介质。
单记录的查找、修改等交互性差;增减不方便(改进办法:把增删改的记录登记在一个事务文件中,在某段时间间隔后再与原文件合并更新)。

索引文件
一个索引文件可以有多个索引表

索引顺序文件
既要方便,又要降低开销
本方式是最常见的一种逻辑文件形式。
将顺序文件的所有记录分组
还是建立索引表,但每个表项记录的是每组第1条记录的键值和地址。
组内记录仍按顺序方式检索和使用。
检索一条记录的过程:
先计算记录是在第几组,然后再检索索引确定组在哪里后,在组内顺序查找。
可利用多级索引,进一步提高检索效率。

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

FAT表的相关计算
表项个数 = 盘块个数= 容量 / 盘块大小
表项大小,决定于盘块数量编号需要的位数
FAT表大小 = 表项个数 * 表项大小
以半字节(0.5B=4b)为基本单位

单级索引分配
多级索引
混合组织索引

存储空间的管理
1)空闲表和空闲链表法
空闲表法
常用于连续分配管理方式
数据结构
系统为外存上的所有空闲区建立一张空闲表
每个空闲区对应一个空闲表项
(表项包括序号、空闲区的第一个盘块号、空闲盘块数等。)
将所有空闲区按其起始盘块号递增的次序排列
存储空间的分配与回收操作
与内存的动态分配类似,同样可采用首次适应算法、循环首次适应算法等。
回收主要解决对数据结构的数据修改。

空闲链表法
将所有空闲盘区拉成一条空闲链。
数据结构:链根据构成链所用基本元素的不同,可把链表分成两种形式:
空闲盘块链
空闲盘区链
将磁盘上的所有空闲空间,以盘块为单位拉成一条链。
因创建文件而请求分配空间时,系统从链首依次摘下适当数目的空闲盘块分配给用户。
因删除文件而释放存储空间时,系统将回收的盘块依次插入空闲盘块链的末尾。

2)位示图法
利用二进制的一位来表示一个盘块的使用情况。
值为0表示对应的盘块空闲,为1表示已分配。有的系统则相反。
磁盘上的所有盘块都有一个二进制位与之对应,这样由所有盘块所对应的位构成一个集合,称为位示图。

3)成组链接法
所有盘块按规定大小划分为组;
组间建立链接;
组内的盘块借助一个系统栈可快速处理,且支持离散分配回收。

目录管理
对文件实施有效的管理,必须对它们加以妥善组织,主要是两大操作:
基本信息记录(FCB,目录项)
方便检索、管理(目录操作)

posted @ 2018-12-07 21:15  panda~  阅读(241)  评论(0编辑  收藏  举报