操作系统 --文件系统实现(十四)

目录

一、文件的物理结构--对非空闲磁盘块的管理

 1、连续分配

2、链接分配

隐式链接

显示链接

链接分配总结

3、索引分配

索引分配总结

二、文件的存储空间管理 --对空闲磁盘块的管理 --图

1、存储空间的划分与初始化

2、几种管理方法

1、空闲表法

2、空闲链表法

3、位示图法

4、成组链接法

三、文件系统层次结构


一、文件的物理结构--对非空闲磁盘块的管理

文件分配方式:

  1. 连续分配
  2. 链接分配 (隐式链接、显示链接)
  3. 索引分配

 1、连续分配

总结:

连续分配方式要求每个文件在磁盘上占有一组连续的块。

优点:支持顺序访问和直接访问(即随机访问);连续分配的文件在顺序访问时速度最快。

缺点:不方便文件拓展;存储空间利用率低,会产生磁盘碎片。

2、链接分配

链接分配采取离散分配的方式,可以为文件分配离散的磁盘块。分为隐式链接和显示链接两种。

隐式链接


 

显示链接

链接分配总结

3、索引分配

索引分配允许文件离散地分配在各个磁盘块,系统会为每个文件建立一张索引表,索引表中记录了文件的各个逻辑块对应的物理块(索引表的功能类似于内存管理中的页表 -- 建立逻辑页面到物理页之间的映射关系)。

索引表存放的磁盘块称为索引块。文件数据存放的磁盘块称为数据块。

1、如何实现文件的逻辑块到物理块号的转换?

  1. 用户给出要访问的逻辑块号 i ,操作系统找到该文件对应的目录项(FCB)。
  2. 从目录项(FCB)中得知索引表的存放位置,将索引表从外存读入内存,并查找索引表可知 i 号逻辑块在外存中的存放位置

可见索引分配方式可以支持随机访问,文件扩展也很容易实现(只需要给文件分配一个空闲块,并增加一个索引表项即可),但是索引表需要占用一定的存储空间。

2、若每个磁盘块1KB,一个索引表项4B,则一个磁盘块只能存放256个索引项,如果一个文件的大小超过了256块,那么一个磁盘块是装不下文件的整张索引表的,如何解决?

  • 链接方案
  • 多层索引
  • 混合索引

 

 

索引分配总结

 

二、文件的存储空间管理 --对空闲磁盘块的管理 --图

1、存储空间的划分与初始化

2、几种管理方法

1、空闲表法

如何分配磁盘块:与内存管理中的动态分区分配类似,为一个文件分配连续的存储空间。同样可采用首次使用、最佳适应、最坏适应等算法来决定要为文件分配哪个区间

如何回收磁盘块:与内存管理中的动态分区分配类似,当回收某个存储区时需要四种情况

  • 回收区前后都没有相邻空闲区
  • 回收区的前后都是空闲区
  • 回收取前面时空闲区
  • 回收区后面时空闲区

注意表项合并的问题

2、空闲链表法

空闲盘块区:盘块为单位组成的一条空闲链

如何分配:若某个文件申请k个盘块,则从链头开始依次摘下k个盘块分配,并修改空闲链的链头指针

如何回收:回收的盘块依次挂到链尾,并修改空闲链的尾指针

空闲盘区链:盘区为单位组成的一条空闲链

如何分配:若某个文件申请k个盘块,则可以采用首次适应、最佳适应等算法,从链头开始检索,按照算法规则找到符合要求的空闲盘区,分配给文件。若没有合适的连续空闲块,也可以将不同的盘区的盘块同时分配给一个文件,注意分配后可能要修改相应的链指针,盘区大小等数据

如何回收:与空闲表法回收一样

 

3、位示图法

如何分配:若文件需要k个块,①顺序扫描位示图,找到k个相邻或不相邻的 “0” ②根据字号、位号算出对应的盘块号,将相应的盘块分配给文件 ③将相应位设置位 “1”

如何回收:根据回收的盘块号计算相应的字号、位号;②将相应的位设置位 “0”

4、成组链接法

 

三、文件系统层次结构

现代操作系统有多种文件系统类型(如 FAT32、NTFS、ext2、ext3、ext4等),因此文件系统的层次结构也不尽相同。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值