欢迎来到天天文库
浏览记录
ID:1477912
大小:224.77 KB
页数:59页
时间:2017-11-11
《模拟unix文件系统实验报告》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、2014-2015(1)操作系统原理课程大型实验模拟Unix文件系统目录模拟Unix文件系统0一.实验介绍2(1)文件卷结构设计2(2)I节点结构设计2(3)目录结构2(4)用户及组结构2二.实验环境2三.实验设计33.1系统流程43.2文件结构53.3实现命令操作5四.数据结构64.1超级块64.2I节点64.3目录74.4用户文件表74.5用户和组7五.模块详解85.1文件、目录和文件表操作85.2i节点操作85.3块操作85.4具体命令操作95.5主函数和所有命令操作的函数95.6其他函数9六.实验演示96.1登录96.2cat操作96.3cd操作106.4ls操作10
2、6.5chgrp操作106.6chown操作106.7chmod操作106.8touch操作106.9mkdir操作106.10rmdir操作116.11rm操作116.12ln操作116.13mv操作116.14cp操作116.15passwd操作116.16pwd操作126.17umask操作12七.实验总结12一.实验介绍(1)文件卷结构设计i节点区数据区管理区0#1#…K#K+1#K+2#K+3#…n#K=12,n=2048(2)I节点结构设计文件大小文件联接计数文件地址文件拥有者文件所属组文件权限及类别文件最后修改时间其中文件地址为六项:四个直接块号,一个一次间址,
3、一个两次间址(3)目录结构用16字节表示,其中14字节为文件名,2字节为I节点号(4)用户及组结构用户信息中包括用户名、口令,所属组,用户打开文件表(文件树结构应与用户相对应:有每个用户的HOME目录)组信息中可只包含组名,组号。二.实验环境Linux操作系统,标准c89一.实验设计3.1系统流程开始输出登录选1,初始化选2输入一个整型ii>0?NYi==2?N结束Y初始化程序i==1?NY进入登录程序是否退出?登录成功?NNY结束进入命令操作程序Y结束3.2文件结构1.基本思路:用硬盘上的一个文件(funix.txt)来模拟一个文件卷。2.磁盘块的设计:每块512个字节,一
4、共2048块,数据区占用2035块,I节点占用12块,每个i节点占48个字节,一共128个i节点,超级块占第0块。3.空闲磁盘块:采用成组链接法管理。每组10块,格式化时假设所有块都分配了出去,将所有块按从大到小的顺序依次压入。4.I结点管理:采用位示图法,注意此时位示图不表示空闲块,只表示相应的i节点号是否被利用,如果被利用相应的i节点号对应位示图的那一位为1,如果没有被利用则对应的位为0。3.3实现命令操作命令格式ls显示文件目录chmod改变文件权限chown改变文件拥有者chgrp改变文件所属组pwd显示当前目录cd改变当前目录mkdir创建子目录rmdir删除子目录
5、umask文件创建屏蔽码mv改变文件名cp文件拷贝rm文件或目录删除ln建立文件联接cat连接显示文件内容passwd修改用户口令touch创建文件vi编写文件内容四.数据结构4.1超级块#ifndefSUPERstructsuper{unsignedintcsize;//文件系统的总块数(4)unsignedshortbsize;//每块的字节数(2)unsignedintdsize;//数据块的块数(4)unsignedintdbeg;//数据块的起始块号(4)unsignedintdemp;//空闲盘块数(4)unsignedshortisize;//i节点块的总块数(
6、2)unsignedintibeg;//i节点的起始块号(4)unsignedshortinum;//i节点的个数(2)unsignedshorti[8];//i节点位示图(12)unsignedshorticlock;//inode锁(2)unsignedintmfsize;//文件的最大所占字节数(4)unsignedshortbmf;//文件的最大所占块数(2)time_tbu;//修改时间(8)shortdssize;//当前空闲盘块好栈中的空闲盘块数目(2)unsignedintdss[DS_size];//(400)unsignedshortdsclock;//成
7、组链接锁(2)}sup;#endif4.2I节点//外存i节点#ifndefINODEstructinode{unsignedintfsize;//文件大小(4)unsignedshortfln;//文件连接数(2)chargid;//文件所属组id(1)charuid;//文件拥有者id(1)intfmode;//文件的类型和权限(4)time_titime;//文件最后修改时间(8)unsignedintaddr[6];//文件地址(24)};#endif//内存i节点#ifndefMINODEst
此文档下载收益归作者所有