- Published on
文件控制块 FCB 和 索引节点 inode
FCB 文件控制块
为了管理文件,OS 引入了FCB
FCB
是用来存放控制文件需要的信息,每个文件在创建时都会对应一个 FCB
大体有以下几种属性
struct FCB{
// 文件名
// 物理地址: 007号块
// 创建、更新等时间信息
// 文件权限
// 文件数据块
// 逻辑结构、 物理结构
// ...
};
文件目录由若干个 FCB 组成,可以想象成一个文件夹中存放了若干个文件。
通过文件名找到对应的 FCB, 获取文件元信息
inode 索引结点 (FCB 的改进)
文件目录中 实现了 文件名和 FCB 的映射,查找文件时,在目录中依此比较文件名是否匹配。 只是匹配文件名,FCB 中有很多其他信息浪费了很多空间,这时引入了 inode 索引结点,来存储文件元信息。目录中只需实现 文件名和 索引结点指针的映射关系。
{
fileName: 0xfff; // 索引节点指针
}
// 再根据指针寻找对应的 索引结点内容
假设 FCB 占 64B, 磁盘块为 1KB,一个盘块可以存放 16 个 FCB,若采用索引结点形式,文件名占 14B, 结点指针占 2B,则每个盘块可以存放 64 个索引结点,而且找到文件名对应的 结点指针后,才将索引结点调入内存。减少了启动磁盘的次数。