OS 文件存储方式

OS 文件存储方式

文件存储方式 :

  • 连续空间存放方式
  • 非连续空间存放方式

非连续空间存放方式分 : 链表方式 , 索引方式

方式 访问磁盘次数 优点 缺点
顺序分配 访问磁盘1次 顺序存取速度快,当文件定长时 , 能根据文件起始地址 , 记录长度进行随机访问 要求连续的存储空间,会产生外部碎片,不利于文件的动态扩充
链表分配 访问磁盘 n 次 无外部碎片,提高了外存空间的利用率,动态增长较方便 只能按文件指针链顺序访问,查找效率低,指针信息存放消耗内存或磁盘空间
索引分配 m 级需访问磁盘 m + 1次 随机访问,易文件增删 引表增加存储空间的开销 , 索引表的查找策略对文件系统效率影响较大

连续空间

连续空间存放方式 : 连续放在磁盘上 , 读写效率高

image.png

缺点 :

  • 磁盘空间碎片 : 空缺数据 与申请数据不匹配
  • 文件长度不易扩展 : 扩大文件 , 要移动数据 , 效率较低

image.png

非连续空间

链表

链表方式 : 离散,不连续

  • 好处 : 提高磁盘空间的利用率,文件长度能动态扩展

链表实现方式 : 隐式链表 , 显式链接

隐式链表的实现方式 : 文件头中有第一块 , 最后一块位置

  • 每个数据块都空出一个指针空间,存放下个数据块的位置

image.png

缺点 :

  • 无法直接访问数据块,只能通过指针顺序访问文件
  • 数据块指针消耗一定存储空间
  • 稳定性较差,当链表的指针丢失,会导致数据丢失

显式链接 : 链接文件各数据块的指针,放在内存的链接表 (文件分配表 (File Allocation Table , FAT) ) 中

image.png

在内存中查找记录 :

  • 优点 : 提高了检索速度,减少访问磁盘的次数
  • 缺点 : 不适用大磁盘

索引

索引实现 : 给每个文件创建个索引数据块,存放指向文件数据块的指针列表

  • 通过文件头的索引数据块指针,找到索引数据块的位置,再通过索引数据块的索引信息找到对应的数据块

image.png

索引优点 :

  • 文件的创建、增大、缩小很方便
  • 无碎片问题
  • 支持顺序读写 , 随机读写
  • 缺点 : 存储索引开销

大文件 , 索引数据块放不下 , 用组合处理

链式索引块 : 链表 + 索引

  • 实现方式 : 在索引数据块中留出存放下一个索引数据块的指针 , 用完 , 找下个存放

image.png

多级索引块 : 索引 + 索引方式

  • 实现方式 : 索引块放多个索引数据块

image.png

猜你喜欢

转载自blog.csdn.net/qq_44226094/article/details/131750248
os
今日推荐