您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 操作系统原理文件管理
计算机科学技术学院操作系统原理课程设计报告题目:文件管理系统专业:网络工程班级:网络09-1姓名:邵岩学号:21指导老师:李益民2011年12月操作系统原理课程设计任务书一、题目:文件系统管理二、设计要求(1)鲁建成负责设计与实现。(2)查阅相关资料,自学具体课题中涉及到的新知识。(3)采用结构化、模块化程序设计方法,功能要完善,具有一定的创新。(4)所设计的程序应有输入、输出。(5)按要求写出课程设计报告,并于设计结束后1周内提交。其主要内容包括:封皮、课程设计任务书,指导教师评语与成绩、目录、概述、软件总体设计、详细设计、软件的调试、总结、谢启、附录:带中文注释的程序清单、参考文献。报告一律用A4纸打印,中文字体为宋体,西文字体用TimeNewRoma,一律用小四号字,行距采用“固定值”18磅,首行缩进2字符。总体设计应配合软件总体模块结构图来说明软件应具有的功能。详细设计应用传统或N-S流程图和屏幕抓图说明,调试的叙述应配合出错场景的抓图来说明出现了哪些错误,如何解决的。三、课程设计工作量由于是设计小组团结协作完成设计任务,一般每人的程序量在200行有效程序行左右,不得抄袭。四、课程设计工作计划2007年6月18日,指导教师讲课,学生根据题目准备资料;2007年6月19日,进行总体方案设计;2007年6月20日~2007年6月25日,完成程序模块并通过独立编译;2007年6月26日~2007年6月27日,将各模块集成为一个完整的系统,并录入足够的数据进行调试运行;2007年6月27日~2007年6月29日,验收、撰写报告;2007年6月29日下午,验收或总结。指导教师签章:教研室主任签章操作系统原理课程设计指导教师评语与成绩指导教师评语:课程设计表现成绩:课程设计验收成绩:课程设计报告成绩:课程设计总成绩:指导教师签章2007年7月10日目录一.概述.....................................................................................................5二.总体方案设计.....................................................................................7三.详细设计.............................................................................................8四.程序的调试与运行结果说明..........................................................16五.课程设计总结...................................................................................18六.后记...................................................................................................20七.附录...................................................................................................21参考文献...................................................................................................34一概述1.课程设计的目的1.理解重要数据结构的意义2.掌握文件系统的工作原理3.通过本次课程设计加深文件系统内部功能及内部实现的理解2.课程设计的要求1.需要的基本知识:文件:一组带标志的在逻辑上有完整意义的信息项的序列,这个标识为文件名。文件系统:操作系统中统一管理信息资源的一种软件,管理文件的存储、检索、更新。提供安全可靠的共享和保护手段,并且方便用户使用。2.技能:具有用C语言编程的能力,懂得文件系统调用处理的算法及一些操作系统文件系统的实现的基本思想。3.尚未掌握的知识点:高速缓存管理和磁盘管理算法4.参阅操作系统原理书籍中文件管理的相关知识。5.老师提出的要求:在理解文件系统的层次结构,掌握高速缓存管理和磁盘管理的基本思想和算法的基础上,掌握文件系统的系统调用处理算法和运用,分析流行操作系统文件系统的实现的基本思想,尝试设计简单的文件系统3.课程设计的主要设计思想在任一OS下,建立一个大文件,把它假想成一张盘,在其中实现一个简单的模拟UNIX(LINUX)文件系统。本次文件系统具有以下的功能:1、初始化2、建立文件(需给出文件名,文件长度)3、建立子目录4、打开文件(显示文件所占的盘块)5、删除文件6、删除目录7、显示目录(即显示目录下的信息,包括文件、子目录等)8、显示整个系统信息二总体方案设计2.1算法的整体思路进入UNIX文件系统界面,提示有初始化,查看当前目录文件列表,查看文件,查看系统信息,创建目录、文件,删除目录、文件,进入当前目录的指定目录,返回上一级目录,显示帮助命令和退出文件模拟12项功能,根据各个命令的提示命令,输入命令提示符,运行各个动能。2.2主要特点此课程设计的功能完善,由于学习过在LINUX的环境编程,此课程设计仿照LINUX环境,命令符并未改变,这样可以使同学们很快的熟悉在此程序的环境中练习。2.3我所承担的设计工作是整个文件系统。以下是整体框图。整体框图NY图2.3框图将各个命令存进命令表开始系统文件是否存在Read_file()输入命令并且查找命令的相关操作Format()三详细设计3.1所完成的具体功能初始化,查看当前目录文件列表,查看文件,查看系统信息,创建目录、文件,删除目录、文件,进入当前目录的指定目录,返回上一级目录,显示帮助命令和退出文件模拟12项功能。3.2程序流程图3.2.1Format()1.超级块初始化图3.2.1.12.信息初始化图3.2.1.2i50super_block.free[i]=i;super_block.stack[i]=50+i;i640j100i_node[i].file_address[j]=-1i_node[i].file_length=-1;i_node[i].file_style=-1;3.存储空间初始化图3.2.1.34.将空闲块的信息用成组链接的方法写进每组的最后一个块中图3.2.1.4i20449(i+1)%50==0是否k=i+1;j50是k20450否memory[i].free[j]=k;memory[i].memory[i].n++;free[j]=-1k++;memory[i].a=0;continue;j50memory[i].free[j]=-1;memory[i].n=0;I20449memory[i].n=0;memory[i].a=0;j50memory[i].free[j]=-1;3.2.2Callback(intlength)图3.2.2I=length-1;i=0k=physic[i];m=49-super_block.n;是super_block.n==50否j50memory[k].free[j]=super_block.free[j];super_block.n=0;memory[k].n=50;memory[k].a=0;是m==-1否m=49;super_block.free[m]=physic[i];super_block.n++;3.2.3Allot(intlength)图3.2.3ilengthk=50-super_block.n;m=super_block.free[k];p=super_block.free[49];是m==-1||memory[p].a==1否printf(内存不足,不能够分配空间\n);callback(length);super_block.n==1是否emory[m].a=1;physic[i]=m;super_block.n=0;jmemory[m].nsuper_block.free[j]=memory[m].free[j];super_block.n++;continue;physic[i]=m;memory[m].a=1;uper_block.n--3.2.4create_file(charfilename[],intlength)图图3.2.4i640strcmp(filename,root[i].是file_name)==0否printf(文件已经存在,不允许建立重名的文件)i640是root[i].i_num==-1否strcpy(root[i].file_name,filename);strcpy(root[i].dir_name,cur_dir);i_node[i].filestyle=style;i_node[i].file_length=length;allot(length);jlengthi_node[i].file_address[j]=physic[j];break;3.2.5del_file(charfilename[])图3.2.53.2.6del_dir(charfilename[])图3.2.6i640k=root[i].i_num;strcmp(root[i].file_name,filename)==0&&strcmp(cur_dir,filename)!=0&&(i_node[k].file_style)==0j640strcmp(filename,root[j].是dir_name)==0否printf(这个不是目录文printf(目录del_file(file件或者不存在这个目录不为空不能name);或者你要删除的是直接删除)当前目录\n);I640是strcmp(filename,root[i].file_name)==0否k=root[i].i_num;ji_node[k].file_lengthprintf(不存在这个文件\n);physic[j]=i_node[k].file_address[j];callback(i_node[k].file_length);j100i_node[k].file_address[j]=-1;strcpy(root[i].file_name,);root[i].i_num=-1;strcpy(root[i].dir_name,);I_node[k].file_length=-1;i_node[k].file_style=-1;3.2.7voiddisplay_curdir()图3.2.73.2.8display_dir(charfilename[])图3.2.8I640是否k=root[i].i_num;strcmp(filename,root[i].file_name)==0)printf(没有这个目录\n);&&(i_node[k].file_style==0)是否strcpy(cur_dir,filename);I640strcmp(cur_dir,root[i].dir_name)==0是否k=root[i].i_num;printf(\t\t%s\t,root[i].file_name);printf(\t%d\t,i_node[k].file_style);printf(%d\t,i_node[k].file_length);printf(%s\n,root[i].dir_name);3.2.9voidopen_file(charfilename[]图3.2.9是i640否k=root[i].i_num;strcmp(f
本文标题:操作系统原理文件管理
链接地址:https://www.777doc.com/doc-3361982 .html