欢迎来到天天文库
浏览记录
ID:9796198
大小:137.00 KB
页数:13页
时间:2018-05-10
《操作系统课程设计--为linux系统设计一个简单的二级文件系统》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、操作系统课程设计报告题目:为Linux系统设计一个简单的二级文件系统指导老师:时间:2012.8.30一课程设计的目的课程设计目的使学生熟悉文件管理系统的设计方法;加深对所学各种文件操作的了解及其操作方法的特点。通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识,加深对教材中的重要算法的理解。同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力。二课程设计的要求1.可以实现下列几条命令:login用户登录dir列目录create创建文件delete删除文件open打开文件close关闭文件read读文件write写文件2.列目录时要列出文件
2、名,物理地址,保护码和文件长度3.源文件可以进行读写保护三算法设计本次二级文件系统主要分为五大模块,分别是用户登录模块、新建目录模块、新建文件模块、删除文件模块和读取文件模块。用户登录成功后才可以进行其他模块的操作。1用户登录模块用户登录模块要求用户输入用户,当输入正确后才能进行其他模块操作,否则提示用户名不存在并询问用户是否用此名进行注册。若用户名未满,则提示注册成功,否则提示用现有注册用户,进行登录,并返回到登录界面。用户登录模块流程图如图1所示。开始输入login命令否输入用户名是否注册用户是否存在是否是进行其他模块图1用户登录模块流程图2新建文件模块新建文件模块是在用户出入crea
3、te指令后进行的,进入后会要求用户输入文件名,并判断文件名是否存在,若没有则在要求用户输入文件读写权限,否则重新输入新的文件名。新建文件模块流程图如图2所示。开始输入create命令输入文件名文件名是否存在是否输入权限图2新建文件流程图3删除文件模块开始删除文件模块是根据用户鼠标右击时选择到的节点来确定要删除节点的名字与路径,然后判断该节点是目录还是文件。若是文件则直接删除文件,若是目录则进入该目录再删除其全部文件。删除文件模块流程图如图4所示。输如open文件名提示无此文件文件名是否存在否输入权限是图4删除文件模块流程图4读取文件模块开始读取文件模块,要求用户要在文件打开的前提下,将磁盘
4、中的内容读取到内存中。读取文件流程图如图5所示。Open文件输如read文件名文件是否存在是提示文件未打开文件是否已打开否显示文件内容图5读取文件模块流程图5写入文件模块写入文件模块,思路与读取文件模块将本相同,只是添加了对读写权限的判断。6遍历文件遍历文件,根据在用户登陆时,记录的值,在二维数组中,找到用户的所有文件对象,将相应的必须属性全部打印出来。四程序源代码1.文件对象相关代码packagecom.file;importjava.io.Serializable;publicclassFileProimplementsSerializable{Stringfilename;Strin
5、gcontent;Stringusername;intflag;intprotect;publicFilePro(Stringfilename,Stringusername,Stringcontent,intflag,intprotect){this.filename=filename;this.username=username;this.content=content;this.flag=flag;this.protect=protect;}}2.文件读写操作packagecom.file;importjava.io.*;importjava.util.*;publicclassFil
6、eCon{Object[][]data=newObject[7][100];ObjectInputStreamin=null;ObjectOutputStreamout=null;Stringpath="D:\file";publicFileCon(){for(inti=0;i<7;i++)for(intj=0;j<100;j++){data[i][j]=newFilePro("",null,"",1,0);}}publicObject[][]readData(){try{in=newObjectInputStream(newBufferedInputStream(newFileInpu
7、tStream(path)));data=(Object[][])in.readObject();}catch(EOFExceptione){}catch(Exceptione){}returndata;}publicvoidwriteData(Object[][]data){try{out=newObjectOutputStream(newBufferedOutputStream(newFileOutputStream
此文档下载收益归作者所有