问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

文件存储空间管理

发布网友 发布时间:2022-09-30 17:20

我来回答

1个回答

热心网友 时间:2024-12-06 13:01

  上篇文章介绍了文件的物理结构并介绍了文件分配的三种方式——连续分配、链接分配和索引分配。
  本文介绍操作系统对文件存储空间的管理。
本文内容

  存储空间的划分:将物理磁盘划分为一个个文件卷(逻辑卷、逻辑盘)
  在存储空间初始化时,需要将各个文件卷划分为目录区、文件区。

  有些系统支持超大型文件,可支持由多个物理磁盘组成一个文件卷。

  空闲表法:即用一张表记录磁盘中空闲的盘块。空闲表的表项由空闲盘的起始块号空闲盘块数组成。如下图所示

  如何分配磁盘块:与内存管理中的动态分区分配类似,为一个文件分配连续的存储空间。同样可以采用首次适应算法、最佳适应算法、最坏适应算法,临近适应算法来决定要为文件分配哪些区间。
  空闲表法适用于连续分配方式。
  例如,如果新创建的文件请求3个块,按照首次适用算法,从10号块开始有5个连续的块可以满足需求,所以把10、11、12三个块分配给文件,分配后的空闲盘块表如下

  这里以回收区前后都是空闲区为例,磁盘是第一幅图的状态,如果回收21、22号磁盘块,那么回收后的空闲盘块表如下图所示。

  空闲链表法分为两种:空闲盘块链和空闲盘区链

  下图分别表示空闲盘块链和空闲盘区链。

  操作系统保存着链头、链尾指针。
  如何分配:如过某文件申请K个盘块,则从链头开始依次摘下K个盘块分配,并修改空闲链的链头指针。
  如何回收:回收的盘块依次挂到链尾,并修改空闲链的链尾指针。
  下图表示分配了3个盘块

  从上面可以看出,空闲盘块法适用于离散分配的物理结构。为文件分配多个盘块时可能要重复多次操作。

  操作系统保存着链头、链尾指针
  如何分配:若某文件申请K个盘块,由于空闲盘区链将连续的盘块组成一个盘区,所以若某个盘区大小满足可以实现一次分配,同样可以采用首次适用、最佳适用等算法,从链头开始检索,按照一定的规则找到一个大小符合要求的空闲盘区分配给文件。若没有合适的连续空闲块,也可以将不同的盘区的盘同时分配给一个文件,同样分配后也需要修改相应的指针链和盘区大小等数据。

  如何回收:若回收区和某个空闲盘区相邻,则需要将回收区合并到空闲盘区中。若回收区没有和任何空闲区相邻,将回收区作为一个单独的一个空闲盘区挂到链尾。同样也需要修改链表指针和盘区大小等信息。
  下图表示按照首次适用算法分配3个盘区

  从上面可以看出,空闲盘区链对离散分配、连续分配都适用。为一个文件分配多个盘块时效率更高

  位示图:磁盘内存被划分为一个个磁盘块,可以用二进制位对应一个盘块。“0”代表盘块空闲,“1”代表盘块已分配。位示图一般用连续的“字”来表示,下图中一个字的字长是16位,字中的每一位对应一个盘块。因此可以用(字号,位号)对应一个盘块号。

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

  如何回收:①根据回收的盘块号计算出对应的字号、位号;②将相应的二进制位设置为“0”。

  从上面可以看出:位示图法对连续分配和离散分配都适用。

  空闲表法、空闲链表法不适用大型文件系统,因为空闲表或空闲联保可能过大。UNIX系统中采用了成组链接法对磁盘空闲块进行管理。这是将上述两种方法相结合的而形成的一种空闲管理方法。
  文件卷的目录区中专门用一个磁盘块作为超级块,当系统启动时需要将超级块读入内存。并且要保证与外存中的“超过块”的数据一致。

  内存的分配过程:分配过程是从栈顶取出一空闲盘块号,将与之对应的盘块分配给用户,然后将栈顶指针下移一格,若该盘块号已是栈底(即第一个盘块),这是当前栈中最后一个可分配的盘块号。由于在该盘块号所对应的盘块中记有下一组可用的盘块号,因此,不能直接将它分配掉,需要将它记录的下一组信息保存下来,所以比须调用磁盘读过程,将栈底盘块号所对应盘块的内容读入栈中,作为新的盘块号栈的内容,并把原栈底对应的盘块分配出去(其中的有用数据已读入栈中)。然后,再分配一相应的缓冲区(作为该盘块的缓冲区)。最后,把栈中的空闲盘块数减1 并返回。

  下面举例说明
  如果此时新建一个文件需要一个磁盘块,那么此时第一组有100个空闲块,所以是足够分配的,将栈顶的盘块号即201号盘块对应的盘块分配出去,如下图

  如果此时又创建一个新的文件,需要99个磁盘块,就需要将剩下的99个盘块全部分配出去,但是此时300号盘块记录了下一组信息,如果分配出去,信息就是丢失,所以需要将300号盘块从外存(磁盘)读入内存,将300号盘块记录的信息,写入空闲盘块号栈,然后才能将这99块空闲块分配出去。具体过程如下图所示

  
  内存的回收过程:在系统回收空闲盘块时,须调用盘块回收过程进行回收。它是将回收盘块的盘块号记入空闲盘块号栈的顶部,并执行空闲盘块数加 1 操作。当栈中空闲盘块号数目已达 100 时,表示栈已满,便将现有栈中的100 个盘块号记入新回收的盘块中,再将其盘块号作为新栈底。

  以分配的第一个图为例,201盘块被分配出去了,如果此刻有个文件被删除了,其占用的盘块是199号,系统需要回收这个盘块,发现此时空闲盘块号栈中记录空闲块数为99,直接将盘块号记录栈顶,将空闲盘块数加1即可。

  如果此时又有一个文件被删除了,其占用的盘块是190,此时空闲盘块号数已经达到100了,就需要将现在空闲盘块栈中信息记入新回收的块中。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...是多少?如果在青海湖没有出现高原反应,那么在拉萨市一般也不会_百度... 2023长虫山开车最佳到山顶路线 蛋挞怎么做好吃 蛋挞的做法是什么 如图,斜三棱柱ABC-A1B1C1中,A1C1⊥BC1,AB⊥AC,AB=3,AC=2,侧棱与底面... 魅族20classic手机通病 为什么反映魅族手机质量、发热、续航、信号与系统bug的网友如此多... 快来人,急救,魅族mx出问题了 我的魅蓝note2(系统是Flyme5.1.6)在联系人里存到有备注的号码怎么在来... 有拿到魅族mx3的吗,我的到了问题好多啊。 揭秘!女友说“你不爱我了”的真正含义 在文件储备过程中,有三类常用字的空闲块管理方法,哪三类 什么是云高清?有谁知道? 带“靖”“云”的诗词? 带有靖、博两个字的诗词和古诗有哪些 靖字开头的诗词 有“靖”字唐宋古诗词 带有靖字的诗句 移动硬盘读不出来怎么办 解决方法讲解 中国石蒜的形态特征 长筒石蒜的介绍 坐高铁能带防晒喷雾吗? vivo手机卸载的软件怎么找回来 乘地铁的票价是不是去哪里的一样?像广州的话,最低收多少钱? 广州市坐地铁怎么算钱? 肉丸怎么做才是空心 怎么做空心肉丸 我总是想咬自己的手臂怎么办 4岁小朋友,自己生气时,会自己咬自己的手,为什么?这是自虐行为吗? 配菜一般怎么搭配 什么东西又能飞又能跳?打一成语 人鱼的旋律第二部中的第三者是谁呀? 操作系统中空闲块存储链操作的实验报告的思想要怎么写? 建筑财务的岗位职责 关于五月的诗句诗词大全2021 描写五月的经典诗词大全 我在百度注册验证码老输入不上怎么办?谢谢 高中怎样整理错题本 高中错题本怎样整理有效率 裁出细叶指的是什么 裁出细叶具体指的是什么 家里跳蚤太多了怎么彻底根除(家里面有跳蚤了怎么样能灭掉) 冰柜门关不严怎么办 有什么方法可以解决 冰柜门关的不严怎么办 冰柜门关的不严的解决方法 早村呈水部张十八外员诵读的基调应该是怎样的? 鸡蛋怎么蒸最有营养最好吃? 我的空调是品格特斯空调,17年买的,不到三年的时间就经常内机出现E2空调... 品格特斯空调正规吗? 品格特斯空调制热效果怎样? 品格特斯空性能如何? 广东品格特斯电器有限公司怎么样? 品格特斯空调为什么那么贵? 有知道品格特斯空调销售电话吗? 品格特斯定频空调出现E2是啥故障?