第七章、文件管理 第八章、磁盘存储器的管理

7.1文件和文件系统

1.基本概念
(1)数据项:基本数据项和组合数据项
(2)记录
(3)关键字
(4)文件:有结构和无结构

2.文件名和类型
(1)文件类型:
①按用途:系统、用户、库文件
②按数据形式:源文件、目标文件、可执行文件
③按存取控制属性:只执行、只读、读写
④按组织和处理方式:普通文件、目录文件、特殊(设备)文件

3.文件系统层次结构
(1)对象及其属性(文件、目录、磁盘空间)
(2)操纵、管理对象的软件集合(文件管理内核程序)
①文件目录的管理
②文件共享和保护等
③文件存储空间的管理
④文件逻辑地址转换
⑤文件读写管理

一般把与文件系统有关的软件分为四个层次:
④逻辑文件系统
③基本I/O管理程序
②基本文件系统层
①I/O控制层

4.文件操作

(1)最基本的操作
①创建/删除文件:分空间,形成FCB及目录(名,地址)
②读、写:按名检索目录,找到文件地址,开始读、写
③设置文件读写位置,实现随机存取(尤其适用于记录文件)

(2)“打开”与“关闭”:
文件读/写操作 = 检索 + 读/写
被记录下位置的文件就是“打开”文件;

(3)其他操作:改名、改所属用户、改访问权限等属性的操作。

7.2文件的逻辑结构

文件系统设计的关键要素:
如何构成一个文件,以及如何存储在外存。
文件结构:
文件的逻辑结构:按用户观点如何组织数据;又称文件组织
基本要求:检索速度高、方便修改、降低存储空间费用(不连续)
文件的物理结构:根据外存上的物理块的分配机制,记录文件外存的存储结构。用户感知不到

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

(2)按文件的组织方式分类:
①顺序文件。系统需按该类型记录“长度”,通常定长。
②索引文件。系统需为文件建立索引表。
③索引顺序文件。建索引表,记录每组记录的第一个记录位置。

2.顺序文件

(1)两种记录排列方式
Ⅰ串结构:按记录形成的时间顺序串行排序。记录顺序与关键字无关;
Ⅱ顺序结构:按关键字排序
(2)检索方法:
从头检索,顺序查找要找的记录,定长的计算相对快。
顺序结构,可用折半查找、插值查找、跳步查找等算法提高效率
(3)顺序文件的优缺点:
不方便随机存取某条记录,但适用批量存取的场合。
适合磁带等特殊介质。
单记录的查找、修改等交互性差;增减不方便(改进办法:把增删改的记录登记在一个事务文件中,在某段时间间隔后再与原文件合并更新)。

3.索引文件
为了方便单个记录的随机存取,为文件建立一个索引表,记录每项记录在文件的逻辑地址及记录长度;该索引表按关键字排序,。
(1)索引表内容:
索引号、长度、记录地址指针
(2)检索效率
索引表本身即是个按记录键排序的定长顺序文件,所以能利用算法提高索引表检索速度
(3)一个索引文件可以有多个索引表
为方便用户根据不同记录属性检索记录,为顺序文件建立多个索引表,每种能成为检索条件的域都配备一张索引表。
(4)索引文件的优缺点
适用于变长记录,可提高检索速度,实现直接存取
索引表增加了存储开销

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

5.直接文件和哈希文件
给定键值(如学号)不需顺序检索直接得到记录的物理地址
哈希函数映射

8.1外存的组织形式

目标:有效利用外存空间,提高文件访问速度
常用的外存组织三种方式:
连续分配
链接分配(不连续)
索引分配
通常一个系统中仅采用一种方式
采用的磁盘分配方式决定了文件的“物理结构”:
顺序结构;链接式结构;索引式结构。

1.连续组织方式
为每一个文件分配一组相邻的盘块。
逻辑文件中的记录顺序与存储器中文件占用盘块的顺序一致。
优点:顺序访问容易,读写速度快
缺点:会产生外存碎片。可紧凑法弥补,但需要额外的空间,和内存紧凑相比更花时间。
创建文件时要给出文件大小;存储空间利用率不高,不利于文件的动态增加和修改;
适用于变化不大顺序访问的文件,在流行的UNIX系统中仍保留了连续文件结构。如对换区

2.链接分配
可以为每一个文件分配一组不相邻的盘块。
设置链接指针,将同属于一个文件的多个离散盘块链接成一个链表,这样形成的文件称为链接文件。会有链接成本。

(1)优点:
离散分配,消除外部碎片,提高利用率
同时适用于文件的动态增长;修改容易

(2)链接有两种形式:
①隐式链接
链接信息隐含记录在盘块数据中;记录中只有开始盘块号和结束盘块号
每个盘块拿出若干字节,记录指向下一盘块号的指针。(减少了每一块存储的字节数)
问题:只能顺着盘块读取,可靠性低(花费的时间长)
②显式链接(FAT–file allocationtable)
链接信息以信息表的形式显示存放
属于一个文件的盘块通过链接成为一体,每个链条的首地址作为文件地址记录在相应文件的FCB(文件控制块)的“物理地址”字段中。
记录盘块链接的指针显示地记录为一张链接表
所有已分配的盘块号都记录在其中,称文件分配表(FAT)
为了提高文件系统访问速度,FAT一般常驻内存
(根据FAT可知外存大小)

链接的不足
顺序检索的时间成本:不能支持高效的盘块直接存取。要对一个文件进行直接存取,仍需在FAT中顺序的查找许多盘块号。
链接信息的空间成本:FAT需占用较大的内存空间。当磁盘容量较大时,FAT可能要占用数MB以上的内存空间。这是令人难以忍受的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值