文件系统

深入了解文件系统结构

Posted by 邹盛富 on September 22, 2018

文件与文件系统

文件是对磁盘的抽象,就像进程是对CPU的抽象和地址空间是对内存的抽象一样。文件是指一组带标识(标识即为文件名)的,在逻辑上有完整意义的信息项的序列

文件系统是操作系统中统一管理信息资源的一种软件,管理文件的存储,检索,更新,提供可靠安全的共享和保护手段,并且方便用户使用。文件系统实现了名字空间到磁盘空间的映射,影响了整个操作系统的性能

文件分类

  • 普通文件:包含用户信息,一般为ASCII和二进制文件
  • 目录文件:管理文件系统的系统文件
  • 特殊文件:
    • 字符设备文件:和输入、输出有关
    • 块设备文件:磁盘

文件逻辑结构

  • 流式文件:无结构的一串字符的集合
  • 记录式文件:由若干记录组成,可以按照记录进行读、写、查找操作,例如:目录

存储介质

物理块(block)

物理块是信息存储、传输、分配的独立单元

存储介质划分为大小相等的物理块,统一编号

磁盘结构

磁盘访问

一次访盘请求: 比如说 从磁盘读数据到内存,那么需要提供的信息有: 读操作,磁盘地址包括(设备号(哪几块盘),柱面号(磁道号),磁头号,扇区号),内存地址(目标地址)

完成访问磁盘需要三个动作完成:

  1. 寻道时间:磁头移动定位到指定磁道
  2. 旋转延迟:等待指定扇区从磁头下旋转经过
  3. 数据传输:数据在磁盘与内存之间的实际传输

SSD盘不包含前两个步骤

磁盘空间管理

磁盘地址与块号之间转换

文件控制块与文件目录

文件目录、目录项与目录文件

  • 文件目录:统一管理每个文件的元数据,以支持文件名到文件物理地址的转换。将所有文件的管理信息组织在一起,即构成文件目录。
  • 目录文件:将文件目录以文件的形式存放在磁盘上
  • 目录项:构成文件目录的基本单元  目录项可以是FCB,目录是文件控制块的有序集合

文件物理结构

连续结构(顺序结构)

文件的信息存放在若干连续的物理块中,在FCB当中,只有记录第一块的块号,和文件的块长度

优点

  • 支持顺序存取和随机存取
  • 所需的磁盘寻道次数和寻道时间最少

缺点

  • 文件不能动态增长
  • 不利于文件的删除、插入
  • 容易产生外部碎片

链接结构

一个文件的信息存放在若干不连续的物理块中,各块之间通过指针连接,前一个物理块指向下一个物理块,FCB中,只需要记录第一块的块号,起始块号即可。

优点

  • 提高磁盘的优缺点,不存在外部碎片的问题
  • 有利于文件的插入,删除
  • 有利于文件的动态扩充

缺点

  • 不适于随机存取,存取速度慢
  • 可靠性问题,如指针出错
  • 物理块分散,需要更多的寻道次数和寻道时间
  • 链接指针占用一定的空间

文件分配表(FAT)

基本思想

链接结果的变形,链接指针不放在块里面,而是把所有的链指针集中在一起,放在一块表里面,那块表就是FAT表

每个物理块号对应Physical block表里面的一项,文件A的第一块在块号4,第二块在块号7,第三块在块号2,第四块在块号10,第五块在块号12,有了FAT,那么文件的起始块号就可以记录在FCB中,比如在文件A的FCB只需记录块4。

索引结构

优点

保存了链接结构优点又解决了其缺点

  • 既能顺序存取,又能随机存取
  • 满足文件动态增长、插入、删除
  • 能充分利用磁盘

缺点

  • 缺点较多的寻到次数和寻道时间
  • 索引表本身带来系统开销

索引表的组织方式

  • 链接方式:一个盘块存储一个索引表,多个索引表链接起来
  • 多级索引方式:将文件的索引表地址存放在另一个索引表中
  • 综合模式:直接索引与间接索引结合

UNIX三层索引结构

文件系统

  • 磁盘分区(partition):把一个物理磁盘的存储空间划分为几个相互独立的部分,称为分区。

  • 文件卷(volume):磁盘上的逻辑分区,由一个或多个物理块(簇)组成
    • 一个文件卷可以是整个磁盘或部分磁盘或垮盘(RAID)。
    • 同一个文件卷中使用同一份管理数据进行文件分配和磁盘空闲空间管理,不同的文件卷中的管理数据是相互独立的
    • 一个文件卷上:包括文件系统信息、一组文件(用户文件、目录文件)、未分配空间。
    • 块(Block)或簇(Cluster):一个或多个(2的幂)连续的局区,可寻址数据块
  • 格式化:在一个文件卷上建立文件系统,即建立并初始化用于文件分配和磁盘空闲空间管理的管理数据(元数据)

磁盘上的文件系统

内存上的文件系统