操作系统——文件系统(6)将磁盘抽象成一个文件系统

    引入了文件抽象以后,对磁盘的使用变成了对文件的访问。但磁盘是很大的,它不可能被抽象为一个文件,磁盘上是存在很多文件的,那么操作系统该如何管理这些文件了。
    通常我们会将这些文件分类,一些情况下还会再进行细分,这样就会形成如下图所示的树状结构。
在这里插入图片描述
    每个小分类下的文件数量不多,管理起来比较容易,磁盘里的文件也可以按照这样的方式进行组织,这就是著名的文件目录树
    在用户的眼里,磁盘就是一颗目录树,用户可以访问和修改这颗目录树,可以在目录树上添加新的目录和文件,或者删除已有的目录和文件。目录是一个文件的集合,实现目录就是用一个数据结构表达“目录包含一些文件”这一概念。文件的基本信息都存放在数据结构FCB中,所以要想表达目录的概念,就要使目录中包含文件的FCB或者能够获得文件FCB的路径。
    以解析/my/data/test为例,首先读出根目录的内容,其中存放的是var和my两个文件的FCB。接下来找到my的FCB,继续读入my目录的内容,继续向下找到data的FCB。
    目录解析有两项基本工作:用“my”去目录内容中做对比,读入“my”的FCB后继续沿着目录树进行目录解析。而根目录下文件var的FCB对/my/data/test的目录解析没有任何作用,因此目录解析只需要“var”这个名字即可。
    但目录中不能只存放文件名字符串,比如在匹配到“my”之后,还需要读入它的FCB才能继续向下解析。那么可以在目录内容中存放FCB的地址,需要的时候通过这个地址到磁盘上读入文件的FCB数据结构。
    那么我们再重新看一下目录解析的过程。首先读入根目录的内容,存放的是[var,13][my,82],其中“13”和“82”是它们的FCB在FCB数组中的位置。根据路径名匹配字符串“my”,发现my目录文件的FCB编号为82。启动磁盘读写在FCB数组中读出my的FCB,根据FCB中存放的逻辑盘块和物理盘块的映射关系找到存放my目录内容的磁盘块,启动磁盘将my目录内容读出来,是[data,103][cont,225][mail,77]。接下来的目录解析会匹配路径中的data,得到103,再读出其FCB…
在这里插入图片描述
    此外,由于需要对目录树进行动态修改,所以会有磁盘空闲数据块以及磁盘空闲FCB的管理。一般用位图来描述磁盘上的物理盘块和FCB数据的使用情况。整个磁盘就会变成如下图所示的数据结构。
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值