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

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

参考书籍: 王道考研

视频地址: Bilibili

文件目录

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

文件控制块

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

目录操作:

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

目录结构

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

索引结点

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

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

相关推荐
sensen_kiss1 小时前
CPT304 SoftwareEngineeringII 软件工程 2 Pt.9 软件测试 (Software Testing)(下)
学习·软件工程
wu_ye_m1 小时前
学习c语言第35天 函数声明和定义
c语言·开发语言·学习
清辞8532 小时前
Coze从入门到实战---第一、二章
大数据·人工智能·学习·语言模型
伊布拉西莫2 小时前
【流畅的Python】第20章:并发执行器 — 学习笔记
笔记·python·学习
jinglong.zha2 小时前
LScript-从零基础到商业变现的AI自动化学习平台
运维·学习·自动化
闪闪发亮的小星星3 小时前
STK_00 学习方案路线
学习
一楼的猫3 小时前
茄子写作助手——品牌搜索突破9万后的技术型品牌认知与官网入口指南
人工智能·学习·机器学习·chatgpt·ai写作
AOwhisky4 小时前
学习自测与解析:MySQL第五、六、七期核心知识点详解
运维·数据库·笔记·学习·mysql·云计算
niuniuyi~4 小时前
QT学习笔记
笔记·qt·学习
咸甜适中4 小时前
rust语言学习笔记Trait(十六)Error(错误)
笔记·学习·rust