文件的物理结构

连续文件

将逻辑文件中的信息顺序存储到连续的物理盘块中。

如下是外存中的物理盘块的分布图:

这是我们文件的目录:

在文件目录中,有两个属性的信息:文件名和物理地址(在外存中存放的位置)。

 

主要优点:

  • 顺序访问速度快。只要找到一个盘块的位置,就可以依次很容易的找到其他的盘块。
  • 可随机存取

 

主要缺点:

  • 磁盘空间会产生碎片。如上面的第18号盘块。
  • 文件修改困难。比较难以实现文件的增删改操作。

 

串联文件

利用指针将文件所占的盘块连接起来。

 

串联文件结构(隐式链接)

 

串联文件的缺点:

  • 文件容易丢失。一旦某一个盘块的后续位置信息丢失就会遗失之后的所有节点。
  • 文件只能顺序存取。只能从第一个节点开始依次读取磁盘块。

 

文件映照结构(显式链接)

所有链接指针统一存放在一张显示的链接表(fat表:文件分配表)中。一个逻辑磁盘设置一张表,以物理盘块号为序,表项内容为指向某文件的下一盘块的指针。

 

例:若文件f1占据了2,4,5,1四个盘块:

 

FAT文件系统磁盘组织结构:

FAT1 和 FAT2 是互为备份的连个相同的文件。

 

FAT32引导区主要内容有:

  • 每扇区字节数;通常512B
  • 每簇扇区数;
  • FAT1的位置;
  • 磁盘分区大小(扇区数);
  • FAT表大小(扇区数);
  • 根目录位置;
  • 引导区备份扇区的位置;
  • 文件系统类型。

 

串联文件性能评价

1.存储空间利用率高;没有文件存储空间碎片的问题了。

2.文件创建时用户不必指出文件的大小;采用指针的形式。

3.文件动态扩充和修改容易。采用指针的形式。

4.顺序存取效率高,随机存取效率较低。

 

FAT 表大小的计算方法

例:一个磁盘分区大小为20GB,若盘块大小为1KB,计算该磁盘分区的FAT表大小?

盘块数=20GB/1KB =20MB≈2^25B,所有至少需要25个二进制位。由于每个FAT的表项可以是半个整数倍,所以25位最少取3.5个字节。所以FAT表大小=20MB×3.5B=70MB

 

索引文件

1、什么是索引文件

索引表:系统为每个文件建立的逻辑块号与物理块号的对照表。

如对应的文件 file1 分配到4个磁盘块:

其所构建的索引表对应的结构就是:

索引块:存放文件的索引表的物理块,其块号保存在文件目录项的物理地址中;

文件由数据文件和索引表构成。这种文件称为索引文件。

单级索引分配

就如上例所示的样子

 

多级索引分配

文件file2分配到1000个磁盘块:2,3,5,20,22,25,…1200,1511,若每个盘块号占4B,每个盘块1KB:

由于每个盘块只有1KB,所以最多存放的盘块号是 1KB/4B = 256个。不能存放1000个盘块号,所以需要分组,分为四个部分。为了找到刚才建立的索引块,所以我们需要建立一个二级索引来记录以及索引所占的盘块号。最好,我们需要在文件目录中记录二级索引表所占的盘块号。

 

混合索引分配

Unix:i 节点中的物理地址字段 iaddr(13)

iaddr(0) ~iaddr(9): 直接地址;

Iaddr(10):一级索引;

iaddr(11): 二级索引;

iaddr(12): 三级索引。

例:设某文件长度为xB,若盘块大小为4KB,每个盘块号4B,则:

(1)文件盘块数量为: n=[x/4k] + 1

(2)每个索引块能存放的盘块号数量:=4K/4 =1K(个)

 

对 n 进行分类:

(1)n≤10:

所有数据块号全部存放在iaddr(0) ~iaddr(9)中:

(2)10<n≤1034:

前面10个数据块号全部存放在iaddr(0) ~iaddr(9)中;

剩下的不超过1024个数据块号放在一个一级索引块中;

并将该一级索引块号存入iaddr(10)中:

(3)1034<n≤1034+1M:

前面10个数据块号全部存放在iaddr(0) ~iaddr(9)中;

剩下的不超过1024+1M个数据块号放在不超过1025个一级索引块

将第一个一级索引块号存入iaddr(10)中;

将剩下的不超过1024个一级索引块号存入一个二级索引块中;

最后将该二级索引块号存入iaddr(11)中:

(4)1034+1M<n≤1034+1M+1G:

前面10个数据块号全部存放在iaddr(0) ~iaddr(9)中;

剩下的不超过1024+1M+1G个数据块号放在不超过1025+1M个一级索引块中;

将第一个一级索引块号存入iaddr(10)中;

剩下的不超过1024+1M个一级索引块号存入≤1025个二级索引块中;

再将第一个二级索引块存入iaddr(11)中;

剩下的不超过1024个二级索引块号存入一个三级索引块中;

最后将该三级索引块块号存入iaddr(12)中:

 

文件物理结构的比较

  • 顺序文件的优点是不需要额外的空间开销,只要在文件目录中指出文件的大小和首块的块号即可,对顺序的访问效率很高。适应于顺序存取且文件不经常修改的情况。缺点是文件动态地增长和缩小时系统开销很大;文件创建时要求用户提供文件的大小;存储空间浪费较大。
  • 链接文件(串联文件)克服了连续文件的不足之处,但文件的随机访问系统开销较大。适应于顺序访问的文件。
  • 索引文件既适应于顺序存访问,也适应于随机访问,是一种比较好的文件物理结构,但要有用于索引表的空间开销和文件索引的时间开销。UNIX系统和Linux系统是使用索引结构成功的例子。
  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值