一个简单的文件系统的详细设计操作系统课程设计(36页).doc





《一个简单的文件系统的详细设计操作系统课程设计(36页).doc》由会员分享,可在线阅读,更多相关《一个简单的文件系统的详细设计操作系统课程设计(36页).doc(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-一个简单的文件系统的详细设计操作系统课程设计-第 36 页计算机系综合性实验实 验 报 告 课程名称 操作系统实验报告 一个简单的文件系统的详细设计一个简单的文件系统的详细设计一、实验目的(1)阅读并调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。(2)了解设计一个n个用户的文件系统,每个用户可以保存M个文件。用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有create、delete、open、close、read、write等命令。二、实验要求1、根据流程图阅读所给文件系统源程序,并对源程序加以注释(注释量达70
2、%以上)。2、修改、完善该系统,指出程序的bug。三、文件系统功能设计1. 功能设计该文件系统是一个多用户、多任务的文件系统。对用户和用户的文件数目并没有上限。也就是说该系统允许任何用户申请空间,而且在其目录下的文件数目并不做任何的限制。该系统可以支持的操作命令如下: bye用户注销命令。当使用该命令时,用户退出系统,注销该用户功能设计并回到登陆界面。命令格式: bye close删除用户注册信息命令。执行该命令后,用户在系统中的所有信息,包括该用户目录下的所有文件都被删除。命令执行完成后返回登陆界面。命令格式:close create在当前目录下创建一个文件,且该文件不能跟当前已有的文件重名
3、。该文件的管理信息登记在用户文件信息管理模块中。执行完该命令后回到执行命令行。命令格式:createfile1其中:“”符为提示符,file1为要创建的文件名。 delete删除当前用户目录下的一个文件,命令执行完毕返回至命令行。命令格式:deletefile1 其中:file1为要删除的文件名。 list显示当前注册目录下的所有文件信息,包括文件名、文件长度、文件操作权限。命令格式:list chmod改变某个文件的执行权限,但前提是该文件是该用户目录下的文件。命令格式:chmodfile1。其中:file1为要授权的文件名。 open在window界面下打开某个文件。执行该命令后,文件fi
4、le1将用在windows界面下的文件形式打开。用户可以在这个方式中对文件进行修改,并将修改后的内容保存。命令格式:openfile1其中:file1为要打开的文件名。 read读文件信息。将文件信息读入并显示在终端上。命令格式:readfile1其中:file1为要读的文件名。 write向某个文件写入新的信息。用户可以选择用覆盖原来内容的方式或和在文件的末尾追加新信息的方式写入信息。 当要退出时输入“#”即可。(2)系统采用二级文件目录。设置主目录(MFD)和用户文件目录(UFD),分别以文件的方式保存在磁盘中。在主目录中有注册用户的用户名和另一标志该用户目录下是否有文件的指针标记。用户文
5、件目录采用用户名作为文件名保存于磁盘,以便检索时方便对应。在用户文件目录中保存着该目录下所有文件的文件名称、保护码、文件长度。(3)该系统大量使用高级语言中的文件操作函数,所以能实际看到文件的创建、写入、读出、删除等效果。2. 功能设计实现总体流程3. 主要数据结构struct UFD/用户文件模块char filename32; /文件名int safecode; /文件保护码long length; /文件长度*curfile = NULL;这个是用户文件模块数据结构,结构体的名字是:UFD,在结构体里面定义了三个成员,filename,safecode,length,分别用于存储用户文件
6、的名字,文件保护码,文件的长度, *curfile = NULL;,这是一个结构体类型的指针,开始初始化为NULL.struct MFD/主文件模块char username32; /存放用户名bool filepoint; /用户目录下的文件指针,false表示目录为空,true为该用户目录中有文件*curuser = NULL,*elseuser=NULL;这个是主文件模块的数据结构,有两个成员,username,filepoint,分别用于存放用户名,用户目录下面的文件指针. *curuser = NULL,*elseuser=NULL;这两个是主文件的结构体变量,用于访问结构体里面的数
7、据成员4. 主要功能模块1. int LoginDisplay() /登陆选项操作函数2. bool Login(int SELETE)/用户登陆,注册函数3. void DisplayUFD() /打印用户信息,包括用户的各个文件4. void ByeFile(bool BOOL)/注销函数,调用次函数用户可以退出系统5. bool ClearUserFile()/用户要将自己的注册目录从系统彻底删除6. void ClearUserMes()/删除用户全部信息7. void DeleteUser()/删除用户注册目录的操作8. void CreatFile()/在当前用户目录下创建文件9.
8、 void DeleteFile()/删除当前目录下一个文件的操作10. bool QueryModElse(bool BOOL,bool &flag)/查询其它用户目录下文件的文件11. bool QueryMod(bool BOOL)/查询权限12. bool WriteRight(int len,bool BOOL) /查看是否已经正确地写入到该文件信息中,是则返回真值13. void WriteLengthToFile(int Len,bool BOOL)/将文件长度写入文件管理模块中14. void WriteFile()/向文件写入信息的操作15. void ReadFile()/
9、读文件函数16. void ChangeMod()/修改某文件的执行权限17. void Execute(int i,int len,int cmdset)/执行命令函数18. void Command()/读取用户输入的命令,并将其转换成系统能识别的命令5小组成员及分工 负责人:姓名模 块黄新潮组长分配任务,总结实验心得,分析流程图,给组员讲解王强对源程序加以注释、修改张蒙对源程序读取,运行,截图,完善四、文件系统功能模块详细设计流程图1. int LoginDisplay() /登陆选项操作函数YNScanf SELETE_1Return SELETE_10=SELETE_1LOGIN.e
10、xeEndCout error图4 ByeFileNYYNYNBegin 此模块重复调用,因此单独列出,更新xFDUpdate为True只更新,反之会进行删除操作Temp=Malloc(xFD)EOFFread(Temp,xFD,1,file/login.exe)Temp=username BufferUpdateFwrite(Temp,xFD,1, outfilelocate.exe) End图4.1 Update xFD5. bool ClearUserFile()/用户要将自己的注册目录从系统彻底删除NYYNBeginFile=username.exeFile EOFTemp=Mallo
11、c(UFD)Fread(Temp,UFD,1,file)Remove Temp-fileReturn TrueEnd图5 ClearUserFile6. void ClearUserMes()/删除用户全部信息Name=username.exeRemove NameUpdate(False) MFD(图4.1)End图6 ClearUserMesBegin7. int DeleteUser()/删除用户注册目录的操作OtherYY|yEnd图7 DeleteUserBeginchScanf chRR=ClearUserFile(图5)ClearUserMes(图6)Return 18. voi
12、d CreatFile()/在当前用户目录下创建文件NOtherNY|yYYBeginBufferScanf ChFread(NewFile,UFD,1,username.exe)Server&Set BufferCout errorEnd图8 CreatFileCan WriteChScanf BufferCout TureNewFile=Malloc(UFD)9. void DeleteFile()/删除当前目录下一个文件的操作OtherNY|yNYYBeginTure?ChScanf ChRemove BufferEnd图9 DeleteFileSearch UFD(图2.1)Name.
13、exeUpdate(False) UFD(图4.1)10. bool QueryModElse(bool BOOL,bool &flag)/查询其它用户目录下文件的文件NNNNYYY31|33 YYNNYBeginTemp.File=BufferCout errorFread(Temp,UFD,1,user.exe)Return TrueEnd图10 QueryModElseEOF?Temp?Return FalseTemp=Malloc(UFD)BOOL32|3311. bool QueryMod(bool BOOL)/查询权限NNYYNYNNNYYBeginUsername.exeEOFF
14、read(temp,UFD,1,username.exe)Return TrueElse=Malloc(MFD)End图11 QueryModbuffertemp=Malloc(UFD)EOFFread(Else,MFD,1,Login.exe)Username=ElseTureQueryModElse(图10)Return False12. bool WriteRight(int len,bool BOOL) /查看是否已经正确地写入到该文件信息中,是则返回真值NYNNYYNYNNYYBeginUsername.exeEOFFread(temp,UFD,1,username.exe)Leng
15、th=lenReturn FalseEnd图12 WriteRighttemp=Malloc(UFD)BufferFwrite(temp,UFD,1, outfilelocate.exe)outfilelocate.exeLength+lenEOFBufferFread(temp,UFD,1,username.exe) BOOLRemove username.exeoutfilelocate.exe -username.exeReturn Ture13. void WriteLengthToFile(int Len,bool BOOL)/将文件长度写入文件管理模块中NYYYNNBegin LO
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一个 简单 文件系统 详细 设计 操作系统 课程设计 36

限制150内