ImageVerifierCode 换一换
格式:DOCX , 页数:42 ,大小:1.92MB ,
资源ID:1372101      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1372101.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(操作系统模拟unix文件系统实验报告.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

操作系统模拟unix文件系统实验报告.docx

1、操作系统模拟unix文件系统实验报告操作系统大型实验班级: 学号: 姓名:一 实验介绍 1.实验名称 2.实验目的 3.实验内容及要求二 实验环境三 实验设计 1.数据结构设计 2.系统流程设计 3.实现命令操作四 模块详解 1 .文件操作 2 .用户操作五 实验演示 1 .初始化磁盘块 2 .用户登录 3 .目录操作 4 .文件操作六 源代码七 实验心得体会 1.调试中遇到的问题总结 2.实验感悟一、实验介绍1.实验名称操作系统大型实验 2.实验目的完成一个 UNIX/Linux文件系统的子集的模拟实现,了解Unix文件系统的实现机制。 3.实验内容及要求(1) 文件卷结构设计0#块可省略I

2、节点栈及空间为20项块大小为512字节卷盘块数大于100I节点盘块数大于10块(2) I节点结构设计文件大小文件联接计数文件地址文件拥有者文件所属组文件权限及类别文件最后修改时间其中文件地址为六项:四个直接块号,一个一次间址,一个两次间址(3) 目录结构用16字节表示,其中14字节为文件名,2字节为I节点号(4) 用户及组结构用户信息中包括用户名、口令,所属组,用户打开文件表(5) 文件树结构除(4)要求外,适当考虑UNIX本身文件树结构(6) 实现功能Ls 显示文件目录Chmod 改变文件权限Chown 改变文件拥有者Chgrp 改变文件所属组Pwd 显示当前目录Cd 改变当前目录Mkdir

3、 创建子目录Rmdir 删除子目录Mv 改变文件名Cp 文件拷贝Rm 文件删除Ln 建立文件联接Cat 连接显示文件内容Vi 文件写入Mk 创建文件umask 查看用户屏蔽码Umask 文件创建屏蔽码Passwd 修改用户口令Ls-l 查看文件类型Login 用户注销 Logout 退出系统 Help 显示帮助信息二、实验环境实验设备:Microsoft Visual Studio 2010 开发语言:c+三、实验设计1.数据结构设计磁盘文件结构设计:用一个名为disk.txt的文件模拟Unix系统磁盘 ,总共分为200块,每块514个字节(实际可用512个字节,还有2个字节是磁盘分割符n),

4、使第一块(0#)盘块做为超级块,记录该系统磁盘的使用情况;第二块(1#)盘块第十三块(12#)盘块作为存储I结点使用,每个I结点74个字节,所以每个盘块可以存放6个I结点,总共有72个I结点,记录在超级块中;十三块(12#)以后的盘块作为存储文件内容使用,总共187个盘块,用成组连接法记录在超级块中。对于I结点的具体设计如下:class INode /(74B)public:int fsize;/文件大小 setw(6) int fbnum;/文件盘块数 setw(6) int addr4;/四个直接盘块号 文件最大为4*512=2048=2KB setw(4)*4 int addr1;/一个

5、一次间址() 文件大于2KB,小于2KB+16*512=10KB setw(4) int addr2;/一个两次间址() 文件大于10KB,小于10KB+16*16*512B=138KB setw(4) char owner6;/文件拥有者 setw(6) char group6;/文件所属组 setw(6) char mode12;/ 文件类别及存储权限 setw(12) char ctime10;/最近修改时间 setw(10) int connect;/文件联接计数;对于超级块的具体设计如下:class superBlockpublic:int FIStack72;/空闲结点号栈 set

6、w(3)*72 int FICount;/空闲i结点总数 setw(3) int FIPtr;/空闲结点栈指针 setw(3) int FBStack10;/空闲盘块号栈 setw(4)*10 int FBCount;/空闲盘块总数 setw(4) int FBPtr;/空闲盘块栈指针 setw(3) ;初始化磁盘示意图:14#13#12除了超级块、I结点、磁盘文件的数据结构设计以外,为了系统操作方便,我还设计了用户类、文件目录类。用户类具体设计:class USER/用户(24B)public:char name6;/用户名 setw(6) char pass6;/密码 setw(6) ch

7、ar group6;/所属组 setw(6) int umask3;/用户umask码 setw(6) ;用户信息全部存放在一个user.txt的文件里面,所以对于user.txt文件也有一个设计,文件最开始是存放用户总数(setw(6)),随后跟着的是每一位用户名、密码、所属组、用户umask码。文件目录类具体设计:class Catalog/目录项(18B)public:char fname14;/文件名 setw(14) int index; /i结点号 setw(4) ;目录信息全部都存放在disk磁盘里面,所以具体数据结构设计都在上面的磁盘文件设计中提及。 2. 程序流程设计 系统主

8、体流程图设计见图1 用户注册流程图见图2登陆功能流程图见图3用户修改口令流程图见图4用户umask码修改流程图见图5 显示所有子目录ls操作流程图见图6创建文件mk、目录mkdir流程图见图7删除文件rm流程图见图8删除目录文件rmdir流程图见图9 改变当前路径cd操作流程图见图10查看文件内容cat操作流程图见图11 拷贝文件、目录cp操作流程图见图12建立文件联接ln操作流程图见图13修改文件名称MV操作流程图见图14 修改文件权限chmod操作流程图见图15修改文件拥有者chown、所属组chgrp操作流程图见图16写流程图vi见图17NNNYYYYNNNYYYYYYNNN 3.实现命

9、令操作cdenter .enter 切换到当前目录cdenter /enter 切换到根目录cdenter .enter 切换到父目录cdenter direnter 切换到某一子目录,dir为子目录名cdenter stringenter 切换到指定路径的目录,string为路径mkdirenter direnter 当前目录下创建名为dir的子目录rmdirenter direnter 删除当前目录下名为dir的子目录mkenter fileenter 当前目录下创建名为file的文件rmenter fileenter 删除当前目录下名为file的文件cpenter dirORfileen

10、ter stringenter 拷贝当前目录下文件或子目录到指定路径下 catenter fileenter 查看当前目录下名为file的文件内容vienter fileenter 向当前目录下名为file的文件写入一定内容pwdenter 显示当前目录lsenter 显示所有子目录chmodenter fileenter 改变当前目录下名为file文件的权限chownenter fileenter 改变当前目录下名为file文件的拥有者chgrpenter fileenter 改变当前目录下名为file文件的所属组MVenter fileenter 改变当前目录下名为file文件的文件名lo

11、ginenter 用户注销,可以重新登陆passwdenter 用户改变密码umaskenter 查看用户umask码Umaskenter codeenter 修改用户umask码为codelnenter file1enter file2enter文件file1与file2建立连结ls-lenter fileenter 查看文件file的类别helpenter 提供帮助logoutenter 退出系统四、模块详解1.文件操作mk创建文件模块,输入mk命令,回车,输入文件名,回车,即会在当前目录文件下创建一个名为刚刚输入的文件名的数据文件。在该创建过程中首先要判断该目录中有没有同名的文件,如果有

12、的话就创建失败,还要判断在该目录下有没有创建文件的权限,有权限才可以创建。具体流程图查看第二节,系统流程图设计部分。rm删除文件模块,输入rm命令,回车,输入文件名,回车,即会在当前目录文件下删除一个名为刚刚输入的文件名的数据文件。在该删除过程中要判断该目录中是否存在该文件,如果不存在就没有必要执行该操作了,还要判断在该目录下有没有删除文件的权限,有权限才可以删除。具体流程图查看第二节,系统流程图设计部分。mkdir创建目录文件模块,输入mkdir命令,回车,输入文件名,回车,即会在当前目录文件下创建一个名为刚刚输入的文件名的目录文件。在该创建过程中首先要判断该目录中有没有同名的文件,如果有的

13、话就创建失败,还要判断在该目录下有没有创建文件的权限,有权限才可以创建。具体流程图查看第二节,系统流程图设计部分。rmdir删除目录文件模块,输入rmdir命令,回车,输入文件名,回车,即会在当前目录文件下删除一个名为刚刚输入的文件名的目录文件。在该删除过程中要判断该目录中是否存在该目录文件,如果不存在就没有必要执行该操作了,还要判断在该目录下有没有删除文件的权限,有权限才可以删除。删除的时候要判断该目录是否为空,如果里面有内容,则要通过递归函数,将他们一并删除了。具体流程图查看第二节,系统流程图设计部分。cp拷贝文件模块,输入cp命令,回车,输入要拷贝文件的文件名,回车,输入要拷贝到哪个路径下面,即会在该路径下创建一个名为与被拷贝文件名相同的数据文件(目录文件),并且指向盘块里面的内容都相同的数据文件(目录文件)。在该拷贝过程中要判断该目录中是否存在该文件,如果不存在就没有必要执行该操作了,还要判断在该目录下有没有拷贝文件的权限,有权限才可以拷贝。然后要查看该路径是否存在,存在该路径才可以在该路径下创建拷贝过来的文件,具体流程图查看第二节,系统流程图设计部分。cat显示文件

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

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