🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] ## 辅存的分配方式 ### 连续分配 把需要用到几个扇区直接进行连续的分配 **优点** 顺序读取文件内容非常容易,速度很快 **缺点** 对存储要求高,要求满足容量的连续存储空间 ### 链接分配 - 链接分配可以将文件存储在离散的盘块中 - 需要额外的存储空间存储文件的盘块链接顺序 #### 隐式链接 - 每个盘块记录都记录下一个链接的存储位置 - 隐式分配适合顺序访问,随机访问效率很低 - 可靠性差,任何一个链接出问题都影响整个文件 #### 显式链接 提供一个表来记录每个盘块的位置,这个表被称为 FAT (File Allocation Table) **缺点** - 不支持高效的直接存储,盘越大(FAT记录项多) - 检索时FAT表占用较大的存储空间(需要将整个FAT加载到内存) ### 索引分配(主流) 提供一个索引块,用来记录此份数据记录在哪些盘快 - 把文件的所有盘块集中存储(索引) - 读取某个文件时,将文件索引读取进内存即可 **优点** - 每个文件拥有一个索引块,记录所有盘块信息 - 索引分配方式支持直接访问盘块 - 文件较大时,索引分配方式具有明显优势 ## 存储空间管理 ### 空闲表 | 序号 | 第一空闲盘块号 | 空闲盘块数 | | --- | --- | --- | | 1 | 2 | 4 | | 2 | 9 | 1 | | 3 | 11 | 32 | | 4 | 56 | 20| - 空闲盘区的分配与内存分配类似 - 首次适应算法、循环适应算法等 ### 空闲链表 - 空闲链表法把所有空闲盘区组成一个空闲链表 - 每个链表节点存储空闲盘块和空闲的数目 ### 位示图(主流) ![](https://cdn.jsdelivr.net/gh/idcpj/imgs/1599992994905-F0B8846E-FB3C-4556-9580-CD420F6FEA6D.png) - 位示图维护成本很低 - 位示图可以非常容易找到空闲盘块 - 位示图使用0/1比特位,占用空间很小