针对408大题的文件管理知识
1、FAT
2、inode
FAT
- 一个文件对应一个FCB,一个FCB就是一个目录项,多个FCB组成文件目录
- FAT是显式链接,需要查FAT表获知下一块的位置
FAT表指明一个文件对应所有盘块在磁盘什么位置
盘块号 | 下一块 |
---|---|
打开一个文件
open查目录项
open(路径)
- OS -> 根目录(内存) => 该文件的第一个磁盘块
- OS -> FAT表(内存) => 该文件所有逻辑块(所存的物理块)
- OS完成
PA<->VA
的映射
读文件
read(指针)
- OS -> FAT表,计算具体块,读入内存
其他内容
调入一个块读一次磁盘
- FCB确定首块地址
- FAT确定文件后续块的位置/地址
indoe
文件目录(磁盘)指明文件的所有信息在磁盘的位置
文件名 | inode号 |
---|---|
打开一个文件
open查目录项
open(路径)
- OS -> 根目录(内存) => 该文件夹的inode号
- OS -> inode区(磁盘)中文件夹的文件目录读入内存 => 该文件夹的所有信息 【混合索引】
- OS -> 文件目录查找该文件的目录项 => 该文件的逻辑块
- OS -> inode区该文件的文件目录读入内存 => 该文件的所有信息
- OS完成
PA<->VA
的映射
上文是读一个文件夹下的文件,如果是多个文件夹,即层层套娃
读文件
read(指针)
- OS计算需要读的位置,找到该位置
小结
内存 | 磁盘 |
---|---|
根目录;FAT表 | inode区 |
- FAT基于FAT表,读文件是从根目录出发到FAT表层层去读
- inode基于inode表,读文件是从根目录出发到inode区层层去读
两者的根目录均在内存中,均是从根目录出发
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理