• 这块内容直接按前面学过的【内存存储、分配管理】来理解,只不过:
  • 【内存存储、分配管理】是【内存 和 进程】之间空间分配管理
  • 【文件的存储管理】是【外存 和 文件】之间的空间分配管理
    • 该给文件哪些空闲区】?该回收外存里哪些磁盘

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

二、存储管理

1、空闲表法

  • 【只适合连续分配】
    • 联想【内存管理】里的【动态连续分配】
    • 人话:就是用一个表记录所有连续的空闲空间,在创建文件时选择适合文件大小的空闲区给它
    • 只管理【空闲区】!!!!!

2、空间链表法

  • ​​​​​​【适合离散 和 连续 分配2种方式】

    • 只管理【空闲区】!!!!
    • 【空闲盘块链】:【一块】是【一个节点】的链表

      • 【空闲盘区链】:【连续几块】是【一个节点】的链表

3、空闲位示图法

  • 【适合离散 和 连续 分配2种方式】

  • 既管【分配区】又管理【空闲区】,但主要还是为了【空闲区】

    • (字号,位号)计算出  ——>  盘块号
    • 盘块号计算出  ——>  (字号,位号)
    • 分配与回收过程
  • 【注意】【注意】【注意】
    • ​​​​​​​【位示图】不受【非空闲】、或【空闲】其中一方的块数影响
    • 他是受【它两合起来的总块数】影响,因为它二个都记录

4、成组链接法

【由浅至深】的逐步理解,就可以明白其真正的逻辑原理,这里就按前面学过的【索引分配】方式来理解

  • ​​​​​​​【第一步理解】
  • 【第二部理解​​​​​​​】
  • 【第三步,整体理解】
  • 【空间分配】的过程

    • 空闲块分配
      • 空闲区充足时,刚开始分配空间:
      • 【空闲盘块号栈】快分配完了,还剩栈底指向的空闲块时
    • 空闲块回收
      • 【回收一个空闲块】时,也就是添加一个空闲块
        • 当【空闲盘块号栈】要溢满时又来一个【新的空闲块】
  • 注意:除了以上这些,【FAT表】也可以兼顾【管理空闲磁盘空间】!!!!!

【总结】

  • 【再次注意提醒】!!!!!!
    • 除了以上这些,【FAT表】也可以兼顾【管理空闲磁盘空间】!!!!!

【例题】

【最难最难最难】【最难最难最难】【最难最难最难】

【最难最难最难】【最难最难最难】【最难最难最难】​​​​​​​

【最难最难最难】【最难最难最难】【最难最难最难】

【最难最难最难】【最难最难最难】【最难最难最难】

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐