• 【操作系统】24王道考研笔记——第四章 文件管理


    第四章 文件管理

    一、文件系统基础

    1.基本概念

    image.png

    2.文件的逻辑结构

    image.png

    image.png

    顺序文件:

    image.png

    索引文件:

    image.png

    索引顺序文件:

    image.png

    效率分析:

    image.png

    多级索引顺序文件:

    image.png

    总结:

    image.png

    3.文件目录

    文件控制块(FCB)

    image.png

    目录的基本操作

    image.png

    目录结构

    image.png

    image.png

    image.png

    树形目录结构可以很方便地对文件进行分类,层次结构清晰,也能够更有效地进行文件的管理和保护。但是,树形结构不便于实现文件的共享。为此,提出了“无环图目录结构”。

    image.png

    索引结点:

    image.png

    总结:

    image.png

    4.文件的物理结构

    (文件分配方式)

    文件块、磁盘块:

    image.png

    连续分配:

    • 优点:支持顺序访问和直接访问(即随机访问);连续分配的文件在顺序访问时速度最快
    • 缺点:不方便文件拓展;存储空间利用率低,会产生磁盘碎片

    image.png

    链接分配:

    链接分配采取离散分配的方式,可以为文件分配离散的磁盘块。分为隐式链接和显式链接两种。

    隐式分配:

    隐式链接——除文件的最后一个盘块之外,每个盘块中都存有指向下一个盘块的指针。文件目录包括文件第一块的指针和最后一块的指针。

    • 优点:很方便文件拓展,不会有碎片问题,外存利用率高。
    • 缺点:只支持顺序访问,不支持随机访问,查找效率低,指向下一个盘块的指针也需要耗费少量的存储空间

    image.png

    显式分配:

    显式链接——把用于链接文件各物理块的指针显式地存放在一张表中,即 文件分配表(FAT,FileAllocation Table)。一个磁盘只会建立一张文件分配表。开机时文件分配表放入内存,并常驻内存。

    • 优点:很方便文件拓展,不会有碎片问题,外存利用率高,并且支持随机访问。相比于隐式链接来说,地址转换时不需要访问磁盘,因此文件的访问效率更高。
    • 缺点:文件分配表的需要占用一定的存储空间。

    image.png

    image.png
    索引分配:

    image.png

    image.png

    image.png

    • 链接方案image.png
    • 多层索引image.png
    • 混合索引image.png

    索引分配总结:

    image.png

    分配方式总结:

    image.png

    注:支持随机访问:

    image.png

    逻辑结构与物理结构对比总结:

    image.png

    5.文件存储空间管理

    存储空间的划分:

    image.png

    空闲表法:

    image.png

    空闲链表法:

    分为空闲盘块链以及空闲盘区链

    image.png

    image.png

    位示图法:

    image.png

    • 如何分配:若文件需要K个块,①顺序扫描位示图,找到K个相邻或不相邻的“0”;②根据字号、位号算出对应的盘块号,将相应盘块分配给文件;③将相应位设置为“1”。
    • 如何回收:①根据回收的盘块号计算出对应的字号、位号;②将相应二进制位设为“0”

    成组链接法:

    空闲表法、空闲链表法不适用于大型文件系统,因为空闲表或空闲链表可能过大。UNIX系统中采用了成组链接法对磁盘空闲块进行管理。

    文件卷的目录区中专门用一个磁盘块作为“超级块”,当系统启动时需要将超级块读入内存。并且要保证内存与外存中的“超级块”数据一致

    image.png

    如何分配?

    Eg :需要1个空闲块

    ①检查第一个分组的块数是否足够。1<100,因此是足够的。

    ②分配第一个分组中的1个空闲块,并修改相应数据

    image.png

    image.png

    总结:

    image.png

    6.文件的基本操作

    image.png

    7.文件共享

    注意:多个用户共享同一个文件,意味着系统中只有“一份”文件数据。并且只要某个用户修改了该文件的数据,其他用户也可以看到文件数据的变化。

    如果是多个用户都“复制”了同一个文件,那么系统中会有“好几份”文件数据。其中一个用户修改了自己的那份文件数据,对其他用户的文件数据并没有影响。

    硬链接:

    image.png

    软链接:

    image.png

    总结:

    image.png

    8.文件保护

    口令保护:

    image.png

    加密保护:

    image.png

    访问控制:

    image.png

    总结:

    image.png

    二、文件系统

    1.文件系统结构

    image.png

    image.png

    2.文件系统布局

    逻辑格式化

    image.png

    在外存中

    image.png

    在内存中

    image.png

    用open系统打开文件的过程

    image.png

    3.虚拟文件系统

    普通的文件系统

    image.png

    虚拟文件系统

    image.png

    特点:

    • ①向上层用户进程提供统一标准的系统调用接口,屏蔽底层具体文件系统的实现差异
    • ②VFS要求下层的文件系统必须实现某些规定的函数功能,如:open/read/write。一个新的文件系统想要在某操作系统上被使用,就必须满足该操作系统VFS的要求
    • ③每打开一个文件,VFS就在主存中新建一个 vnode,用统一的 数据结构表示文件,无论该文件存储在哪个文件系统。
    • 注意:vnode 只存在于主存中,而 inode(索引结点) 既会被调入主存,也会在外存中存储

    存在的问题:

    image.png

    实现函数的过程:

    image.png

    文件系统挂载

    image.png

    主要参考:王道考研课程
    后续会持续更新考研408部分的学习笔记,欢迎关注。
    github仓库(含所有相关源码):408数据结构笔记

  • 相关阅读:
    CMU15445 (Fall 2019) 之 Project#1 - Buffer Pool 详解
    day6_C++
    视频 | 生信分析Linux教程 - Linux系统简介和目录理解2
    金仓数据库KingbaseES数据库管理员指南--18数据库作业调度
    华为设备配置BFD状态与接口状态联动
    spark学习总结
    【VUE复习·6】监视属性watch:用途、两种写法、简写、应用时注意事项(重点)、深度监视(重点)
    [go]泛型扩展切片与map(filter与transfer)
    前端的8种跨域解决方案
    Java的一些内容
  • 原文地址:https://blog.csdn.net/weixin_51630192/article/details/132788387