操作系统之——磁盘存储器管理

外存的组织方式

文件的物理结构直接与外存的组织方式有关。对于不同的外存组织方式,将形成不同的文件物理结构。

(1) 连续组织方式。

又称连续分配方式,要求为每一个文件分配一组相邻接的盘块。
把逻辑文件中的记录顺序地存储到邻接的各物理盘块中。

优点:

(1) 顺序访问容易。 (2) 顺序访问速度快。 

缺点:

(1) 要求为一个文件分配连续的存储空间。 (2) 必须事先知道文件的长度。 (3) 不能灵活地删除和插入记录。 (4) 无法实现动态增长文件。

(2) 链接组织方式。

可为文件分配多个不连续的盘块,再通过每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表

隐式链接

在文件目录的每个目录项中,都须含有指向链接文件第一个盘块和最后一个盘块的指针。 

显式链接

把用于链接文件各物理块的指针显式地存放在内存的一张链接表中。

FAT技术

在FAT的每个表项中存放下一个盘块号,它实际上是用于盘块之间的链接的指针,通过它可以将一个文件的所有的盘块链接起来,而将文件的第一个盘块号放在自己的FCB中
每一个磁盘被分成固定大小的簇。簇最少为512个字节,其大小可以成倍增长,最大为32K。
每个簇都是由唯一的索引号——一个16位二进制数来标识。因为16位二进制数最大为65536,所以FAT分区所拥有的簇的数量不可能超过65536个。簇的数量和大小的限制,就是FAT分区为什么不能超过2GB的原因。   

NTFS的文件组织方式

NTFS是一个相当高级的文件系统。它的主文件表(MFT)是一个非常完整的数据库,它负责对磁盘上的每个文件进行索引。
从逻辑上讲,卷中的每个文件作为一条记录,在MFT表中占有一行,其中还包括MFT自己的这一行。每行大小固定为1 KB,每行称为该行所对应文件的元数据(metadata),也称为文件控制字。

NTFS可以在文件的MFT入口中存储非常小的文件的全部内容;对于大一些的文件,这些入口会标识出包含文件数据的簇

优点:

(1) 消除了磁盘的外部碎片,提高了外存的利用率。 (2) 对插入、删除和修改记录都非常容易。 (3) 能适应文件的动态增长,无需事先知道文件的大小。

缺点:

① 不能支持高效的直接存取,要对一个较大的文件进行存取,须在FAT中顺序地查找许多盘块号; ② FAT需占用较大的内存空间,由于一个文件所占用盘块的盘块号是随机地分布在FAT中的,因而只有将整个FAT调入内存,才能保证在FAT中找到一个文件的所有盘块号。 

(3) 索引组织方式。 

增量式索引组织方式

为了能提高对数量众多的小型作业的访问速度,将它们的每一个盘块地址都直接放入文件控制块FCB(或索引结点)中,这样就可以直接从FCB中获得该文件的盘块地址。 

UNIX System V的组织方式

索引结点中设有13个地址项
分为:(1) 直接地址。(2) 一次间接地址。(3) 多次间接地址。 

文件存储空间的管理

空闲表法


属于连续分配方式,空闲盘区的分配与内存的分区(动态)分配类似,同样是采用首次适应算法和最佳适应算法等,它们对存储空间的利用率大体相当,都优于最坏适应算法。

空闲链表法

1) 空闲盘块链

将磁盘上的所有空闲空间以盘块为单位拉成一条链,其中的每一个盘块都有指向后继盘块的指针。

2) 空闲盘区链

将磁盘上的所有空闲盘区(每个盘区可包含若干个盘块)拉成一条链。在每个盘区上除含有用于指示下一个空闲盘区的指针外,还应有能指明本盘区大小(盘块数)的信息。 

位示图法

利用二进制的一位来表示磁盘中一个盘块的使用情况。当其值为“0”时,表示对应的盘块空闲;为“1”时,表示已分配。
所有盘块所对应的位构成一个集合,称为位示图。 

盘块的分配

(1) 顺序扫描位示图,从中找出一个或一组其值为“0”的二进制位(“0”表示空闲时)。
(2) 将所找到的一个或一组二进制位转换成与之相应的盘块号。假定找到的其值为“0”的二进制位位于位示图的第i行、第j列,则其相应的盘块号应按下式计算b = n(i - 1) + j 式中,n代表每行的位数。
(3) 修改位示图,令map[i, j] = 1

盘块的回收

(1) 将回收盘块的盘块号转换成位示图中的行号和列号。转换公式为: i = (b - 1)DIV  n + 1 j = (b - 1)MOD  n + 1
(2) 修改位示图。令map[i, j] = 0。

成组链接法


分配过程是从前往后分配,先分配第一组,然后分配第二组……
回收过程是正好相反,从后往前分配,先将释放的空闲块放入第一组,第一组满了,再开辟一组,之前的第一组变为第二组
























































































































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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值