【操作系统学习笔记】文件管理1.3

【操作系统学习笔记】文件管理1.3

参考书籍: 王道考研

视频地址: Bilibili

文件目录

文件之间的组织结构清晰,易于查找

文件控制块

目录本身就是一种有结构文件,由一条条记录组成。每条记录对应一个在该目录下的文件,称为文件控制块 FCB,包括文件名、物理地址、逻辑结构、存取权限、使用信息等。FCB 实现了文件名和文件之间的映射。是用户可以实现按文件名存取

目录操作:

  • 搜索: 当用户要使用一个文件时,系统要根据文件名搜索目录,找到该文件对应的目录项
  • 创建文件: 创建一个新文件时,需要在其所属的目录中增加一个目录项
  • 删除文件: 当删除一个文件时,需要在目录中删除相应的目录项
  • 显示目录: 用户可以请求显示目录的内容,如显示该目录中的所有文件及相应属性
  • 修改目录: 某些文件属性保存在目录中,因此这些属性变化时需要修改相应的目标项

目录结构

  • 单极目录结构: 整个系统中只建立一张目录表,每个文件占一个目录项
    • 实现了按名存取,但是不允许文件重名
    • 在创建文件时,需要先检查目录表中有没有重名文件,确定不重名后才能允许建立文件,并将新文件对应的目录项插入目录表中
  • 两级目录结构: 分为主文件目录和用户文件目录
    • 主文件目录记录用户名机器相应用户文件目录所在位置
    • 用户文件目录由该用户的文件 FCB 组成
    • 允许不同用户的文件重名。文件名虽然相同,但是对应的其实是不同的文件
    • 缺乏灵活性,用户无法对自己的文件进行分类
  • 多级目录结构: 不同目录下的文件可以重名
    • 用户要访问某个文件时要用文件路径名标识文件,文件路径名是个字符串。各级目录之间用 / 隔开。系统根据绝对路径从外存读入根目录的目录表一层一层向下查找
    • 可以很方便地对文件进行分类,层次结构清晰,也能够更有效地进行文件的管理和保护。但是,树形结构不便于实现文件的共享。为此,提出了无环图目录结构
  • 无环图目录结构: 在树形目录结构的基础上,增加一些指向同一个节点的有向边,使整个目录称为一个有向无环图。可以更方便地实现多个用户间的文件共享。需要为每个共享节点设置一个共享计数器,用于记录有多少个地方在共享此节点。用户提出删除节点时,只是删除用户的 PCB,并使共享计数器减一,只有当计数器为 0 时才会删除节点。不同于多级目录文件,各用户指向的是同一个文件,修改也会共享

索引结点

在查找各级目录的过程中,只需要使用文件名,只有文件名匹配时才需要其他信息,可以对目录表进行简化来提升效率

可以在 PCB 中放置文件名和索引节点的指针,将其他信息放置在索引节点表中

相关推荐
无心水44 分钟前
15、云原生架构设计理论与实践 核心考点与学习笔记
笔记·学习·云原生·架构师·软考·系统架构设计师·软考系统架构设计师
动词ing1 小时前
【学习笔记】51单片机 独立按键控制LED显示二进制
笔记·学习·51单片机
叼烟扛炮1 小时前
Linux 学习笔记(三十九):网络基石——TCP/IP 模型与 UDP 实战
linux·运维·网络·笔记·学习·tcp/ip
闲云野鹤在人间1 小时前
头秃修炼手册:StorageClass+StatefulSet+ETCD 全套渡劫笔记
linux·数据库·笔记·云原生·kubernetes·etcd
派大猩猩_1 小时前
选题散在 20 篇笔记里?Nutstore Sync在 Obsidian 里创建选题小工具,创作动线短一半
笔记·obsidian·obsidian插件·obsidian ai
前进的李工2 小时前
Agent 学习笔记 04:KV Cache 与上下文缓存
笔记·学习·缓存·agent·注意力机制·kv cache·prompt cache
Z21-X2 小时前
云原生运维笔记:打通OpenStack的任督二脉——从Neutron网络踩坑到Swift与Heat硬核实战
运维·笔记·学习·云原生
旖旎夜光2 小时前
LCR 170:交易逆序对的总数(归并排序) —— 题解
c++·学习·算法·leetcode·排序算法
摇滚侠10 小时前
《On Java 中文版 基础卷》阅读笔记 实现隐藏 12
java·数据库·笔记
小向是个Der10 小时前
嵌入式进阶——MCU上电后的动作
c语言·单片机·mcu·学习·链接脚本