Please enable JavaScript.
Coggle requires JavaScript to display documents.
4.2文件分配方式, 文件存储空间管理, 连续分配 - Coggle Diagram
4.2文件分配方式
索引分配
索引块
将每个文件对应的盘块号放在一起,建立索引块(表),是磁盘地址块的数组
访问方式
直接访问
目的
只把文件占用的盘块编号调入内存,不必调入整个FAT
目录
文件目录FCB
file/索引块(指针)
索引块
数组
优
支持随机访问,没有外部碎片,文件较大时明显优于链接方式
缺
无论文件大小都需要分配一索引块,索引块利用率低,增加系统存储空间开销
大文件
多层索引
K层索引且
顶级页表未调入内存
,K+1次启动磁盘
混合索引
链接方案
链接分配
隐式链接
创建
目录中增加新条目,每个目录项都有一个指向文件首块的指针,初始化为NULL时表示空文件
写
通过
空闲空间管理系统
找到空闲块,该块链接到文件尾部,以便写入
每个文件对应一个磁盘块的链表;
每个盘块都有指向下一个盘块的指针,指针对用户透明;
目录包括文件第一块的指针和最后一块的指针
读
通过块到块的指针顺序读块
缺点
无法直接访问盘块,只能通过指针
顺序访问
,多次启动磁盘
盘块指针消耗一定储存空间
稳定性,链表中的指针丢失或损坏,会导致文件数据的丢失
访问方式
顺序访问
目录
file/start/end
为了提高检索速度和减小指针所占用的存储空间,可以将几个盘块组成一个簇;
盘块分配时
以簇为单位
,增大了内部碎片,改进有限
显示链接
目录
FAT
盘块号/下一块
FAT的表项与全部磁盘块
一一对应
-1表示文件的最后一块,文件的
第一个盘块号记录在目录中
-2表示磁盘块是空闲的,(分配磁盘块时找-2)
(不仅记录先后链接关系,同时标记空闲的磁盘块)
FAT表项在物理上连续存储,且表项长度相同,盘块号可隐含
文件目录FCB
文件名/
起始块号
(物理地址)
文件的第一个盘块号记录在目录中
文件分配表
FAT
把链接文件各物理块的
指针
,从每个物理块的块末尾提取出来,显示的
放在
内存的一张
链表
中
整个磁盘块中只设置
一张
FAT表在系统启动时就
读入内存
,查找过程在内存中进行
提高检索速度,减少磁盘访问次数
逻→物
不启动磁盘
访问方式
顺序访问/随机访问
物理文件称为
链接文件
采用离散分配的方式
优
插入、删除、修改容易
能适应文件动态增长,无须事先知道文件大小
消除磁盘外部碎片,提高外存利用率
缺
链接分配不支持直接访问(FAT除外),大文件需在FAT中顺序查找许多盘块号
FAT占用内存空间大,需整个调入
连续分配
优
顺序访问速度快、容易
盘块通常位于一条磁道上,读写时不必移动磁头
访问磁盘时需要的寻道数和寻道时间最小
缺
必须事先知道文件长度,不宜动态增加,只适用于长度固定的文件
不能灵活的插入和删除记录
增删产生大量外部碎片,存储空间利用率低
每个文件在磁盘上占有一组
连续
的块
物理文件称为
顺序文件
目录
file/start/length
访问方式
顺序访问和直接访问
对应文件的物理结构,对磁盘非空闲块的管理
磁盘块的大小与
内存块
、
页面
的大小相同,每次读写一块
文件存储空间管理
管理
空闲表法
连续分配方式
空闲盘块表
第一个空闲盘块号/空闲盘块数
起始盘块号递增排列
相邻接合并
优
分配速度块,I/O次数少
应用
对换空间、文件较小、多媒体文件(减少寻道)
空闲链表法
空闲盘块链
空闲分配,系统从链首摘适当数目的块;
删除文件释放空间,回收盘块插入链末尾
优和缺
分配和回收简单;
分配时可能重复多次操作
空闲盘区链
不仅有下个空闲盘区的指针,还有本盘曲大小(盘块数)的信息
空闲链,系统保留链头和链尾指针
管理块
文件存储设备分成许多大小相同的物理块,以块为单位交换信息
位示图法
盘块分配
行列转换成盘块号,i行、j列,注意从0还是从1
改0为1
顺序扫描位示图,找出一组0
盘块回收
盘块号转换成行列
改1为0
键盘上所有盘块都有一个二进制位与之对应
0空闲,1分配
连续、离散都行
成组链接法
UNIX采用的策略,适合大型文件系统
详情看书
划分与初始化
文件储存在
文件卷
中,文件卷是物理盘一部分/一个或多个物理盘
文件卷
目录区
存放FCB
文件区
连续分配
链接分配
索引分配
解决了
链接分配
不支持直接访问(FAT除外)的问题
解决了
连续分配
的外部碎片和文件大小管理的问题