Inode流程图Word下载.docx

上传人:b****3 文档编号:13728016 上传时间:2022-10-13 格式:DOCX 页数:13 大小:436.33KB
下载 相关 举报
Inode流程图Word下载.docx_第1页
第1页 / 共13页
Inode流程图Word下载.docx_第2页
第2页 / 共13页
Inode流程图Word下载.docx_第3页
第3页 / 共13页
Inode流程图Word下载.docx_第4页
第4页 / 共13页
Inode流程图Word下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

Inode流程图Word下载.docx

《Inode流程图Word下载.docx》由会员分享,可在线阅读,更多相关《Inode流程图Word下载.docx(13页珍藏版)》请在冰豆网上搜索。

Inode流程图Word下载.docx

voidFree(intblkno)

二.文件打开结构

Inode类数据成员说明

1.Inode状态标志位

i_flag状态标志位(ILOCK:

索引结点上锁;

IUPD:

内存inode被修改过,需更新相应外存inode;

IACC:

内存inode被访问过,需要修改最近一次访问时间;

IMOUNT:

内存inode用于挂载子文件系统;

IWANT:

有进程正等待该内存inode被解锁;

ITEXT:

内存inode对应进程图像正文段)

2.对应外存索引节点的位置信息

i_dev用于记录Diskinode位置信息的设备号;

i_number外存索引结点号

3.引用计数

i_count记录该索引结点被引用数目。

引用计数是判断一个Inode是否

闲的依据,如果i_count为0,则表示该Inode空闲,可以被分配作它用。

4.预读判断

i_lastr记录上一次读取文件的逻辑块号

5.Diskinode类相同的数据成员

i_mode:

文件工作方式信息

i_nlink:

件联结计数,即该文件在目录树中不同路径名的数量

i_uid:

文件所有者的用户标识数;

i_gid:

文件所有者的组标识数

i_size:

文件大小,字节为单位

i_addr[10]:

用于文件逻辑块好和物理块号转换的基本索引表

InodeTable数据成员说明

Inode_m_Inode[NINODE]内存inode数组,每个打开文件都会占用一个内存inode;

FileSystem*_m_FileSystem对全局对象g_FileSystem的引用

File类数据成员说明

f_flag包含了对打开文件请求类型,包括读、写以及管道类型;

f_inode指向一个打开文件的内存Inode;

f_offset是相对应打开文件进行读、写的位置指针;

f_count是该File控制块的引用计数,表示当前引用该文件控制块的进程数

OpenTileTable类数据成员说明

Filem_File[NFILE]打开文件控制块数组

Inode类中重要成员函数

将文件的逻辑块号映射到物理块号:

IntBmap(intlbn)

根据Inode对象中的Inode物理盘块索引表读取文件数据:

VoidReadI()

InodeTable类中重要成员函数

获取索引结点:

Inode*IGet(shortdev,intinumber)

释放索引结点:

voidIPut(Inode*pNode)

OpenFileTable类中重要成员函数

分配空闲File结构:

File*FAlloc()

回收File结构:

voidCloseF(File*pFile)

三.文件目录结构

DirectoryEntry类数据成员说明

StaticconstintDIRSIZ=28表示目录项中路径部分的最大字符串长度为28

Intm_ino目录项中Inode编号

Charm_name[DIRSIZ]字符数组表示目录项中的路径名

四.文件操作接口

Filesystem类数据成员说明

Inode*rootDirInode根目录内存inode;

FileSystem*m_FileSystem对全局对象m_FileSystem的引用,负责管理文件系统存储资源;

InodeTable*m_InodeTable对全局对象m_InodeTable的引用,负责管理内存inode表的管理OpenFileTable*m_OpenFileTable对全局对象m_OpenFileTable的引用,负责打开文件表项的管理

FileManager类中重要成员函数

读写系统调用公共部分代码:

voidRdwr(enumFile:

:

FlieFlagsmode)

目录搜索,将路径转化为inode,返回上锁后的inode:

Inode*NameI(char(*func)(),emunDirectorySearchModemode)

VoidOpen()调用NameI()函数搜索参数路径查找对应Inode,如果没找到相应Inode,则返回。

如果找到inode,调用open1()函数打开文件。

Open1()

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 视频讲堂

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1