资源描述:
《操作系统课程设计_linux下的二级文件系统方案.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、.word可编辑.学生课程设计报告实验课名称:操作系统实验项目名称:文件系统设计专业名称:计算机科学与技术班级:-----------学号:-----------学生姓名:-----------教师姓名:-----------2014年6月30日.专业.专注..word可编辑.一、课程设计的目的二、课程设计的内容及要求内容要求三、实现原理四、关键算法实现流程图流程图关键算法五、软件运行环境及限制六.结果输出及分析七.心得体会.专业.专注..word可编辑.一.课程设计的目的本课程设计是学习完《计算机操作系统》课程后,进行的一次全面的综合训练,通过课程设计,让我更好地掌握操作系统的原理及实现
2、方法,加深对操作系统基础理论和重要算法的理解,加强了我的动手能力。二.课程设计的内容及要求1.实验内容通过一个简单的二级文件系统设计,加深对文件系统的内部功能以及内部实现的理解。要求模拟采用二级目录结构的磁盘文件系统的文件操作,能实现以下几条命令,用输入命令来模拟用户程序中调用的文件操作:Login用户登录Dir列文件目录(列出文件名、物理地址、保护码和文件长度)Create创建文件Delete删除文件Open打开文件Close关闭文件Read读文件Write写文件源文件可以进行读写保护2.实验要求文件系统管理中用到的数据结构有:①首先应确定文件系统的数据结构:主目录、子目录及活动文件等。
3、主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。②用户创建的文件,可以编号存储于磁盘上。如:file0,file1,file2…并以编号作为物理地址,在目录中进行登记。三.实现原理首先,实现Login用户登录,(用户名:lhx密码:12358)必须登录成功才能进入文件系统进行查看,进入后,通过树状展示文件目录(默认文件目录是homelhxkefile),利用命令行的方式进行注册、登录、各种各样的文件操作。.专业.专注..word可编辑.四.关键算法实现流程图流程图:关键算法:1.用户登录功能的实现typedefstructuserMsg{charloginName[20]
4、;charloginPasswd[20];}UserMsg;intlogin(char*name,char*passwd){.专业.专注..word可编辑.UserMsgum;intcount=0,size=sizeof(UserMsg),nres,pres;intfd=open("/home/lhx/study/kefile/login.dat",O_RDONLY);if(fd==-1){return-1;}while(1){if(read(fd,&um,size)5、sswd,um.loginPasswd);if(nres==0&&pres==0){return1;}if(nres==0&&pres!=0){return0;}count++;lseek(fd,SEEK_SET,size*count);}lseek(fd,SEEK_SET,0);close(fd);}2.用户注册具体实现intregist(char*name,char*passwd){UserMsgum;intcount=0,size=sizeof(UserMsg);intfd=open("/home/lhx/study/kefile/login.dat",O_WRONLY
6、O_APPE
7、ND);if(fd==-1){return-1;}.专业.专注..word可编辑.strcpy(um.loginName,name);strcpy(um.loginPasswd,passwd);lseek(fd,SEEK_END,0);count=write(fd,&um,size);if(count!=size){return-1;}return1;}3.查看目录下文件intlistdtl(char*pname){structdirent**dlist;inttmp,count;charfpath[50],*fname;count=scandir(pname,&dlist,NULL,al
8、phasort);if(count==-1)return-1;printf("%10st%10st%10st%10st%10s","编号","类型","所有者ID","大小","文件名");for(tmp=0;tmpd_name);stat(fpath,&st);switch(