当前位置:文档之家› 第八章 磁盘存储器的管理

第八章 磁盘存储器的管理


2) 簇的基本概念 磁盘容量不断增大,在进行盘块分配时不再以盘块而 是以簇(cluster)为基本单位。 簇:一组连续的扇区,大小一般是 2n 个盘块, 4 扇区、
8扇区等。
簇包含扇区的数量与磁盘容量的大小直接有关。 一个簇有一个扇区:磁盘的最大容量为8MB; 一个簇有两个扇区:磁盘的最大容量为16MB; 一个簇有八个扇区:磁盘的最大容量为64MB。
磁盘空间的连续分配
外存碎片:随着空间的分配和空间的回收,将使磁 盘空间被分割成许多小块,这些较小的连续区已难于用 来存储文件。 紧凑:将盘上所有的文件紧靠在一起,把所有的碎片 拼接成一大片连续的存储空间。 将外存上的空闲空间进行一次紧凑,所花费的时间远 比将内存紧凑一次所花费的时间多得多。
2.连续分配的主要优缺点 (1) 顺序访问容易。 从目录中找到该顺序文件所在的第一个盘块号, 从此开始顺序地、逐个盘块地往下读/写。 (2) 顺序访问速度快。 文件所占用的盘块可能是位于一条或几条相邻的 磁道上,这时,磁头的移动距离最少。 连续分配对文件访问的速度是几种存储空间分配 方式中最高的一种。
1) 直接地址(文件在0~40KB之间) 10个直接地址项: iaddr(0)~ iaddr(9),来存放直 接地址。即每项中存放的是该文件的盘块号。 2) 一次间接地址(文件介于40K和4M之间)
一个一级索引分配:地址项 iaddr(10) 提供一次间
接地址。一次间址块中可存放1K个盘块号,因而允许文 件长达4MB。
1.单级索引分配 链接分配方式存在两个问题: (1)不能支持高效的直接存取。 要在FAT中顺序地查找许多盘块号。 (2)FAT需占用较大的内存空间。 需要整个FAT表进内存。
事实上,在打开某个文件时,只需把该文件占用的盘 块的编号调入内存即可,完全没有必要将整个 FAT 调入内 存。将每个文件所对应的盘块号集中地放在一起。 索引分配原理:为每个文件分配一个索引块 (表),再 把分配给该文件的所有盘块号都记录在该索引块中。
FCB A
FAT 0 1 2 3 4 5 6 7 8 9
4 6 EOF 11
FCB B
9
10 5 EOF
MS-DOS的文件物理结构
以盘块为分配单位时,所允许的最大磁盘容量。 FAT-12系统:
在FAT表中最多允许有4096个表项,
以盘块(512字节)为分配单位; 每个磁盘分区的容量为2MB。 一个物理磁盘支持4个逻辑磁盘分区,所以相应的 磁盘最大容量仅为8MB。
2.显式链接 显式链接:把用于链接文件各物理块的指针,显式 地存放在内存的一张链接表中。称为文件分配表FAT。 整个磁盘仅设置一张。 表的序号即物理盘块号,从0到N。 每个表项中存放指向下一个盘块号的链接指针。 每个链首指针所对应的盘块号,填入相应文件的FCB 的“物理地址”字段中。 通过FAT表,将一个文件的所有的盘块链接起来,将 文件的第一个盘块号放在各自的FCB中。
索引分配方式
2.多级索引分配 当文件很大,索引块太多时,要为索引块再建立索 引,便形成了两级索引分配方式。 文件非常大时,还可用三级、四级索引分配方式。
第二级索引 主索引
两级索引
分配方式下各 索引块之间的 链接情况。
360 740
360 105 106 254
磁盘空间 0 1 2

105 106
只能是数十兆字节,虽然可以用继续增加簇的大小来提
高所允许的最大磁盘容量,但相应的簇内碎片也将随之 成倍地增加。 (2)只能支持8+3格式的文件名。
2.FAT16 将FAT表的宽度增至16位,最大表项数将增至65536 个,此时便能将一个磁盘分区分为65536(216)个簇。 FAT16:具有16位表宽的FAT表。 FAT16的每个簇的盘块数:4、8、16、32、64。
3.FAT32 FAT16表的长度只有65 535项,随着磁盘容量的增 加,簇的大小也必然会随之增加,为了减少簇内零头, 也就应当增加FAT表的长度。 也就由FAT16演变为FAT32。
FAT32是FAT系列文件系统的最后一个产品。 每一簇在FAT表中的表项占据4字节,FAT表可以表示
4294967296项(232)。
8.1.2 链接组织方式——链接式文件
1.隐式链接 文件目录的每个目录项中,含有指向链接文件第一 个盘块和最后一个盘块的指针。 在每个盘块中都含有一个指向下一个盘块的指针。 如果指针占用 4 个字节,对于盘块大小为 512 字节的 磁盘,则每个盘块中只有508个字节可供用户使用。
目录 file start jeep 9 end 25
FAT16 可以管理的最大分区空间: 216×64×512 =
2048MB=2G。 FAT16对FAT12的局限性有所改善,但改善很有限。 当磁盘容量迅速增加时,形成的簇内碎片所造成的 浪费也越大。
例如,当要求磁盘分区的大小为8GB时,则每个簇的大 小达到128KB,内部零头最大可达到128 KB。 为了解决这一问题,微软推出了FAT32。
2) 磁盘组织 以簇作为磁盘空间分配和回收的基本单位。
一个文件占用若干个簇,一个簇只属于一个文件。
通过簇来间接管理磁盘,可以不需要知道盘块 ( 扇 区 ) 的大小,使 NTFS 具有了与磁盘物理扇区大小无关的 独立性。 在NTFS文件系统中,簇的大小使用4 KB。
8.1.5 索引组织方式——索引式文件
目录表对应目录项中填上指向该索引块的指针。
目录 file jeep 2 6 10 14 18 22 26 30 3 7 11 15 19 23 27 31 19 9 16 1 10 25 -1 -1 -1 块序号 19
count 0 4 8 12 16 20 24 28 1 5 9 13 17 21 25 29
FCB 2
物理块号 0 1 2 3 4 5
显式链接结构
FAT 0 4 5 1
8.1.3 FAT和NTFS技术
1.FAT12 1) 以盘块为基本分配单位 早期MS-DOS操作系统所使用的是FAT12文件系统。 每个表项中存放下一个盘块号。 若有 1.2 MB 的软盘,每个盘块的大小为 512 B ,在每 个FAT中共含有2.4 K个表项,由于每个FAT表项占12位, 故FAT表占用3.6 KB的存储空间。
允许在FAT32中采用较小的簇。 FAT32 的 每个 簇都 固定 为 4KB( 每 簇用 8 个盘块代 替 FAT16的64个盘块),每个盘块仍为512字节。 FAT32分区格式可以管理的单个最大磁盘空间大到2TB
三种FAT类型的最大分区以及所对应的块的大小 如下图所示。
块大小/KB 0.5 1 2 4 8 16 32 FAT12/MB 2 4 8 16 FAT16/MB FAT32/TB
第八章 磁盘存储器的管理
8.1 外存组织方式 8.2 文件存储空间的管理 8.3 提高磁盘I/O速度的途径 8.4 提高磁盘可靠性的技术 8.5 数据一致性控制
8.1 外存的组织方式
8.1.1 连续组织方式
1.连续分配方式——顺序式文件 要求为每一个文件分配一组相邻接的盘块。 通常都位于一条磁道上,进行读/写时不必移动磁头。 顺序文件:把逻辑文件中的记录顺序地存储到邻接的各 物理盘块中,所形成的文件结构。 连续分配保证了逻辑文件中的记录顺序与存储器中文件 占用盘块的顺序的一致性。 物理地址查询:目录项的“文件物理地址”字段中,记 录该文件第一个记录所在的盘块号和文件长度(盘块数)。
128 256 512 1024 2048
1 2 2 2
FAT中簇的大小与最大分区的对应关系
8.1.4.NTFS
1)NTFS新特征 NTFS:专门为 Windows NT开发的、全新的文件系统, 并适用于Windows 2000/XP/2003。 NTFS特征: 1 )使用了 64 位磁盘地址,理论上可以支持 264 次方 字节的磁盘分区; 2 )在 NTFS 中可以很好地支持长文件名,单个文件 名限制在255个字符以内,全路径名为32767个字符; 3)具有系统容错功能; 4 )提供了数据的一致性;此外, NTFS 还提供了文 件加密、文件压缩等功能。
3)多次间接地址—文件长度介于4MB+40KB和4G 地址项iaddr(11)提供二次间接地址。
采用二次间址方式时,文件最大长度可达4GB。
地址项iaddr(12)作为三次间接地址,其所允许的文 件最大长度可达4 TB。
mode owners (2) time stamps (3) size block count i.addr (0) i.addr (1) direct blocks data data data data data data data data data
740 356 357
1125
两级索引分配
… …

254
1125
985


356 357

985

如果盘块的大小为1KB,每个盘块号占4个字节,则
在一个索引块中可存放256个盘块号。这样,在两级索
引时, 最多可包含的存放文件的盘块的盘块号总数 N =256×256=64K个盘块号。 则采用两级索引时,所允许的文件最大长度为64MB。 若盘块的大小为4KB,在采用单级索引时所允许的
在相同磁盘容量下,FAT表的项数与簇的大小成反比。
以簇作为基本的分配单位的优点: (1)能适应磁盘容量不断增大的情况。
(2) 使 FAT 表占用更少的存储空间,并减少访问 FAT 表的
存取开销,提高文件系统的效率; 缺点:会造成更大的簇内零头。
3)FAT12存在的问题 (1) 对所允许的磁盘容量存在着严重的限制,通常
缺点: (1) 要求有连续的存储空间。 会产生出许多外部碎片,降低外存空间的利用率。 定期利用紧凑方法消除碎片,需花费大量的时间。 (2) 必须事先知道文件的长度。 在有些情况下,文件的大小只能靠估算。 估计过小,就可能因存储空间不足不能存放。 用户往往将文件长度估得比实际的大,严重地浪 费外存空间。 (3)对于动态增长的文件,采用预分配存储空间 的方法,显然很低效。
相关主题