第6章unix文件管理

第6章unix文件管理

ID:22450938

大小:406.00 KB

页数:29页

时间:2018-10-20

第6章unix文件管理_第1页
第6章unix文件管理_第2页
第6章unix文件管理_第3页
第6章unix文件管理_第4页
第6章unix文件管理_第5页
资源描述:

《第6章unix文件管理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、操作系统教程西安电子科技大学计算机学院UNIX的文件系统5.9.3UNIX的文件系统改进的多级文件目录,可以建立文件别名(索引结点方式和符号链接方式),有用户访问权限控制(文件的读R、写W和执行X,相应于目录的检索文件、增删文件和进入目录)注意:如果对文件具有写权限,而对文件所在目录没有写权限,仍然可以改变该文件的长度(如添加数据),因为除文件名外的其他文件目录内容都存放在索引结点而不是在目录文件。文件类型:常规文件(ordinaryfile)、目录文件(directory)、特殊文件(specialfile)

2、如外设、先进先出文件(FIFO)如命名管道;返回1.概述2.磁盘文件卷结构超级块:描述文件系统的状态,包括磁盘空闲块栈,空闲i结点栈i节点(inodelist):存放文件说明信息,每项64字节目录文件:每个目录项16字节。文件名区分大小写。文件分配:直接索引,一级、二级、三级间接索引3.空闲i结点的分配和释放每次从磁盘上寻找一批空闲i结点,把它们的编号记录在内存的空闲i结点栈中。其中“铭记”i结点(rememberedinode)是栈中编号最大的i结点。i结点分配时,移出栈顶的i结点。若到达"铭记"i结点则表示

3、栈已空,需要从磁盘上重新寻找。(铭记i结点在栈底)structinode{structinode*i_forw;/*内存I节点的散列队列双向循环勾连指针*/structinode*i_back;chari_flag;/*状态标志*/cnt_ti_count;/*引用计数,表示该文件打开了几次*/dev_ti_dev;/*文件所在设备号*/inti_number;/*对应外存i节点号*/struct{union{daddr_ti_a[13];/*文件索引表,存放文件的物理盘块号*/shorti_f[26];/*管

4、道文件的地址索引表*/}i_p;daddr_ti_l;/*最近一次读入的文件逻辑块,用于预读*/}i_blk;…}inode[NINODE];内存I节点数NINODE一般为100。3.内存文件控制块外索引节点每个文件有一个存放在磁盘索引节点区的索引节点,称为磁盘索引节点,它包括以下内容:structinode{ushortdi_mode;/*文件控制模式*/shortdi_nlink;/*文件的链接数*/ushortdi_uid;/*文件主用户标识*/ushortdi_gid;/*文件主用户标识*/off_td

5、i_size;/*文件长度,以字节为单位*/chardi_addr[40];/*地址索引表,存放文件的盘块号*/time_tdi_atime;/*文件最近一次访问时间*/time_tdi_mtime;/*文件最近一次修改时间*/time_tdi_ctime;/*文件最近一次创建时间*/};2.系统打开文件表一个文件可以被同一进程或不同进程,用同一或不同路径名,相同或不同的打开方式(读、写)同时打开。系统打开文件表structfile{unsignedshortf_flags;/*文件操作标志*/unsigned

6、shortf_count;/*共享该结构体的计数值*/structinode*f_inode;/*指向文件对应的内存inode*/loff_tf_pos;/*文件的当前读写位置*/};3.空闲i结点的分配和释放4.磁盘空闲块的分配和释放采用成组链接法,把链表和索引相结合。每一组50块,用索引表表示;各组间通过链表指针串在一起,构成链表。链表的开头是超级块中的磁盘空闲块栈,在运行时被读入到内存中。栈计数count是栈中的空闲块数目,栈中的元素是空闲块编号。链表中的每一块都存放一个类似的空闲块栈分配过程:查看超级块

7、中是否count==1;若不是,则弹出栈顶元素N,--count;若是,则弹出栈顶元素N,把空闲块N中的栈(包括栈计数)读入到超级块中;返回空闲块编号N释放过程:被释放空闲块为编号N。查看超级块中是否栈已满(如count==50);若不是,则N入栈,++count;若是,则将超级块中的栈(包括栈计数)写入到空闲块N,然后把N放入超级块中的栈顶并置count为1。4.磁盘空闲块的分配和释放成组链接4.磁盘空闲块的分配和释放成组链接法Unix对空闲块的管理借助卷资源表,在卷资源表中用于空闲块管理的项目是:s_nfr

8、ee(相当于前面的count):登记空闲盘块的数目,最多100个。s_free[100]:登记空闲盘块的物理块号假定某个磁盘开始使用时,盘块共有449块(不包括0#块),索引结点表inode_list区占用10块,专用块占用1块,实际上文件所占用的空间是449-10-1=438块,这438块是可以这样分组的:第一组351~449共99块第二组251~350共100块第三组151~250

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。