文件系统

    966
    最后修改于

    文件系统结构
    I/O 控制:设备驱动程序和中断处理程序,在内存和磁盘系统中间传输信息。
    基本文件系统:向对应设备驱动程序发送命令,读写物理块。管理内存缓冲区
    文件组织模块:组织文件的逻辑块、物理块,进行逻辑块与物理块地址的映射。
    逻辑文件系统:管理元数据信息,包括文件系统的所有结构,不包括时机数据,
    磁盘布局
    image.png
    MBR 位于 0 号扇区,用于引导,分区表给出每个分区的起始、结束地址,其中一个分区被标识为活动分区,随后读入对应活动分区的引导块。
    引导块负责启动该分区中的操作系统。
    超级块包含文件系统的关键信息,启动时会被读入内存。包括分区的块数量、块大小、空闲块数量和指针、空闲 FCB 数量和指针
    空闲块信息:通过位示图或链表给出。
    内存布局

    • 挂载表,挂载的文件系统分区信息
    • 目录结构的缓存包含最近访问目录的信息
    • 整个系统打开的文件表,FCB 副本等信息
    • 每个进程打开的文件表,包含指向系统打开文件表条目的指针

    空闲空间管理
    空闲表:记录第一个空闲盘块号和空闲块数、容易产生碎片
    空闲链表:

    • 空闲盘块链:所有空闲块构成一个空闲链,创建时从链头取下,释放时加入链尾。分配盘块可能多次重复操作,较琐碎
    • 空闲盘区链:多个空闲块构成一个空闲盘区,盘区成链。分配回收较为复杂,但效率较高,链短。

    位示图:

    • 分配:顺序扫描位示图,找出一组空闲块。盘块号 = n (i-1)+j,修改位示图
    • 回收:i = (b-1)/n+1,j = (b-1) % n + 1

    成组链接法:
    把顺序的 n 个空闲盘块号存储在第一个成组链接块中,最后一个空闲块存储下一组空闲盘块。
    image.png
    分配:根据第一个成组链块的指针,分配对应盘块,指针下移,如果指向最后一个空闲块(记录下一组空闲块),将其读入内存作为新的成组链接块,继续分配
    回收:指针上移,当移动到顶时,将现在的成组链接号记录,使用新成组链接块指向它
    标识空闲空间的位向量表或成组链块,目录区、文件区划分信息存储在超级块中。

    虚拟文件系统#

    image.png
    VFS 抽象了四种对象:
    超级块对象:表示一个已挂载的文件系统
    索引节点对象:表示一个文件
    目录项对象
    文件对象:与进程相关的已打开文件
    image.png

    • 🥳0
    • 👍0
    • 💩0
    • 🤩0