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

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

二、存储管理

1、空闲表法

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

2、空间链表法

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

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

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

3、空闲位示图法

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

    • (字号,位号)计算出  ——>  盘块号
    • 盘块号计算出  ——>  (字号,位号)
    • 分配与回收过程

4、成组链接法

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

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

    • 空闲块分配
      • 空闲区充足时,刚开始分配空间:
      • 【空闲盘块号栈】快分配完了,还剩栈底指向的空闲块时
    • 空闲块回收
      • 【回收一个空闲块】时,也就是添加一个空闲块
        • 当【空闲盘块号栈】要溢满时又来一个【新的空闲块】
  • 注意
Logo

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

更多推荐