操作系统模拟unix文件系统实验报告结构设计

操作系统模拟unix文件系统实验报告结构设计

ID:6289906

大小:1.66 MB

页数:39页

时间:2018-01-09

操作系统模拟unix文件系统实验报告结构设计_第1页
操作系统模拟unix文件系统实验报告结构设计_第2页
操作系统模拟unix文件系统实验报告结构设计_第3页
操作系统模拟unix文件系统实验报告结构设计_第4页
操作系统模拟unix文件系统实验报告结构设计_第5页
资源描述:

《操作系统模拟unix文件系统实验报告结构设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、操作系统模拟unix文件系统实验报告结构设计一、实验介绍1.实验名称操作系统大型实验2.实验目的完成一个UNIX/Linux文件系统的子集的模拟实现,了解Unix文件系统的实现机制。3.实验内容及要求(1)文件卷结构设计0#块可省略I节点栈及空间为20项块大小为512字节卷盘块数大于100I节点盘块数大于10块(2)I节点结构设计文件大小文件联接计数文件地址文件拥有者文件所属组文件权限及类别文件最后修改时间其中文件地址为六项:四个直接块号,一个一次间址,一个两次间址(3)目录结构用16字节表示,

2、其中14字节为文件名,2字节为I节点号(4)用户及组结构用户信息中包括用户名、口令,所属组,用户打开文件表(5)文件树结构除(4)要求外,适当考虑UNIX本身文件树结构(6)实现功能Ls显示文件目录Chmod改变文件权限Chown改变文件拥有者Chgrp改变文件所属组Pwd显示当前目录Cd改变当前目录Mkdir创建子目录Rmdir删除子目录Mv改变文件名Cp文件拷贝Rm文件删除Ln建立文件联接Cat连接显示文件内容Vi文件写入Mk创建文件umask查看用户屏蔽码Umask文件创建屏蔽码Passw

3、d修改用户口令Ls-l查看文件类型Login用户注销Logout退出系统Help显示帮助信息二、实验环境实验设备:MicrosoftVisualStudio2010开发语言:c++三、实验设计1.数据结构设计磁盘文件结构设计:用一个名为disk.txt的文件模拟Unix系统磁盘,总共分为200块,每块514个字节(实际可用512个字节,还有2个字节是磁盘分割符‘’),使第一块(0#)盘块做为超级块,记录该系统磁盘的使用情况;第二块(1#)盘块——第十三块(12#)盘块作为存储I结点使用,每个

4、I结点74个字节,所以每个盘块可以存放6个I结点,总共有72个I结点,记录在超级块中;十三块(12#)以后的盘块作为存储文件内容使用,总共187个盘块,用成组连接法记录在超级块中。对于I结点的具体设计如下:classINode//(74B){public:intfsize;//文件大小setw(6)intfbnum;//文件盘块数setw(6)intaddr[4];//四个直接盘块号文件最大为4*512=2048=2KBsetw(4)*4intaddr1;//一个一次间址()文件大于2KB,小于

5、2KB+16*512=10KBsetw(4)intaddr2;//一个两次间址()文件大于10KB,小于10KB+16*16*512B=138KBsetw(4)charowner[6];//文件拥有者setw(6)chargroup[6];//文件所属组setw(6)charmode[12];//文件类别及存储权限setw(12)charctime[10];//最近修改时间setw(10)intconnect;//文件联接计数};对于超级块的具体设计如下:classsuperBlock{publ

6、ic:intFIStack[72];//空闲结点号栈setw(3)*72intFICount;//空闲i结点总数setw(3)intFIPtr;//空闲结点栈指针setw(3)intFBStack[10];//空闲盘块号栈setw(4)*10intFBCount;//空闲盘块总数setw(4)intFBPtr;//空闲盘块栈指针setw(3)};初始化磁盘示意图:14#13#120#块。。。。。。。。。。。。。。1#块12#块13#块14#块16#块15#块。。。。。。。。。。。。。。。空闲节点

7、号栈空闲盘块号栈空闲节点总数71空闲节点指针1空闲盘块总数186空闲节点指针172。。。。。。。。22#。。。。22#。。。。1272用于文件具体内容存放除了超级块、I结点、磁盘文件的数据结构设计以外,为了系统操作方便,我还设计了用户类、文件目录类。用户类具体设计:classUSER//用户(24B){public:charname[6];//用户名setw(6)charpass[6];//密码setw(6)chargroup[6];//所属组setw(6)intumask[3];//用户uma

8、sk码setw(6)};用户信息全部存放在一个user.txt的文件里面,所以对于user.txt文件也有一个设计,文件最开始是存放用户总数(setw(6)),随后跟着的是每一位用户名、密码、所属组、用户umask码。文件目录类具体设计:classCatalog//目录项(18B){public:charfname[14];//文件名setw(14)intindex;//i结点号setw(4)};目录信息全部都存放在disk磁盘里面,所以具体数据结构设计都在上面的磁盘文件设计中提及。2.程序流程

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

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

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