第八章、外存(接上一节)

3.索引分配

系统运行时只涉及部分文件,FAT表无需全部调入内存
每个文件单独建索引表(物理盘块索引),记录所有分配给它的盘块号;
建立文件时,便分配一定的外存空间用于存放文件盘块索引表信息;

(1)单级索引分配
分配一个盘块存储该文件占用的盘块号
索引形式适合大文件
中、小型文件,只需若干链接即可。若用索引分配方式,用一个盘块存放少量索引信息反而不适用。

②多级索引
若文件较大,存放索引表也需要多个盘块(索引盘块)。
索引盘块亦需要按顺序管理起来
若索引盘块数量较少用指针链接的方式即可;
若索引盘块较多,需对索引盘块也采用索引方式管理,形成多级索引
FBC中存放文件名和主索引号,主索引中再存放一级索引

③混合组织索引(增量式索引组织方式)
一个索引结点定义为13个地址项:iaddr(0)~iaddr(12),总的来说分为两种:直接地址、间接地址
iaddr(0)~iaddr(9)存放直接地址,即存文件数据的盘块号(仅需访问磁盘一次)
iaddr(10)存放单级索引的索引盘块号(需两次访问磁盘)
剩余的用于文件较大时存放多级索引数据。
iaddr(11)存放二级索引的主索引盘块号(需三次访问磁盘)
iaddr(12)存放三级索引的主索引盘块号(需四次访问磁盘)

4、存储空间的管理
为实现存储空间分配,系统需要:
记住空闲存储空间使用情况;为空间设置相应的数据结构;
提供对存储空间分配、回收的操作手段。

典型的管理方法:
(1)空闲表和空闲链表法

①空闲表法
常用于连续分配管理方式
数据结构
系统为外存上的所有空闲区建立一张空闲表
每个空闲区对应一个空闲表项
(表项包括序号、空闲区的第一个盘块号、空闲盘块数等。)
将所有空闲区按其起始盘块号递增的次序排列

②空闲链表法
将所有空闲盘区拉成一条空闲链。
数据结构:链
根据构成链所用基本元素的不同,可把链表分成两种形式:
Ⅰ空闲盘块链
优点:分配和回收一个盘块的过程非常简单,链表长,大量分配时需要操作的指针多
Ⅱ空闲盘区链
链表长度不定,分配时操作的指针数量相对较少,但分配回收操作相对复杂。

(2)位示图法
总块数:mn
盘块号计算公式:
j从1开始:盘块号 = 列总数
(i-1)+ j
j从0开始:盘块号 = 列总数*(i-1)+ j+1
根据盘块算行列计算公式:
i从1开始:i=(盘块号-1)/列数+1;j=(盘块号-1)%列数+1
i从0开始:i=(盘块号-1)/列数;j=(盘块号-1)%列数
优点:从位示图中很容易找到一个或一组相邻接的空闲盘块。
但限于容量问题,常用于微型机和小型机中

(3)成组链接法
大型文件系统,空闲表或空闲链表太长不方便管理操作。
UNIX系统中采用成组链接法,这是将两种方法结合而形成的一种空闲盘块管理方法。
中心思想:
所有盘块按规定大小划分为组;
组间建立链接;
组内的盘块借助一个系统栈可快速处理,且支持离散分配回收
过程:???

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值