操作系统原理课程设计文件管理系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

操作系统原理课程设计院系:计算机学院三系班级:计软05–1班姓名:韩宇学号:35号指导教师:李益民2007年7月4日文文件件管管理理系系统统操作系统原理课程设计任务书一、题目:文件系统管理二、设计要求(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二需求分析------------------------------------------------------71)问题获取2)分析三概要设计------------------------------------------------------8四详细设计------------------------------------------------------91)具体功能概述2)程序流程图3)程序代码五程序的调试与运行结果说明------------------------------32六用户使用说明------------------------------------------------351)引言2)功能介绍七启谢-------------------------------------------------------------36八参考资料-------------------------------------------------------36一概述1.课程设计的目的1.理解重要数据结构的意义2.掌握文件系统的工作原理3.通过本次课程设计加深文件系统内部功能及内部实现的理解2.课程设计的要求1.需要的基本知识:文件:一组带标志的在逻辑上有完整意义的信息项的序列,这个标识为文件名。文件系统:操作系统中统一管理信息资源的一种软件,管理文件的存储、检索、更新。提供安全可靠的共享和保护手段,并且方便用户使用。2.技能:具有用C语言编程的能力,懂得文件系统调用处理的算法及一些操作系统文件系统的实现的基本思想。3.尚未掌握的知识点:高速缓存管理和磁盘管理算法4.参阅操作系统原理书籍中文件管理的相关知识。5.老师提出的要求:在理解文件系统的层次结构,掌握高速缓存管理和磁盘管理的基本思想和算法的基础上,掌握文件系统的系统调用处理算法和运用,分析流行操作系统文件系统的实现的基本思想,尝试设计简单的文件系统3.课程设计的主要设计思想在任一OS下,建立一个大文件,把它假想成一张盘,在其中实现一个简单的模拟UNIX(LINUX)文件系统。本次文件系统具有以下的功能:1、初始化2、建立文件(需给出文件名,文件长度)3、建立子目录4、打开文件(显示文件所占的盘块)5、删除文件6、删除目录7、显示目录(即显示目录下的信息,包括文件、子目录等)8、显示整个系统信息【关键词】文件管理目录管理操作系统C语言二需求分析1)问题获取我们以学生为调查对象。模拟询问了若干问题,这些问题的提出和解决有助项目的开发和方向定位。问题如下:1)有关用户操作方面的相关问题#是否需要使用者的登录登出操作?#允许用户执行哪些操作?#各项操作的提示操作是设置在软件界面上还是在菜单里?#允许用户对文件的操作有哪些?2)有关技术支持方面的相关问题#用户使用的是那种操作系统?(WindowsXP/Linux/苹果?)#是否使用数据库的相关技术?#是否向用户提供相关的技术文档?2)分析经过相关的问题获取,我们分析了本项目的相关需求。本项目的名称:简易文件系统本系统的使用人员:所有使用计算机的人员本项目的开发工具:WinTc数据库设计:无界面设计:命令行提示方式的程序在用户操作方面,运行本系统前不需要用户的登录操作,运行后可以直接进入操作界面,用户可以直观的使用本程序。用户可以对文件做以下的操作:文件的建立,删除,查找,文件目录的相关管理,各项操作应可以直接操作,不会有任何的限制。用户大多使用的是WindowsXP操作系统,而且很多的用户安装了WinTc软件,这样我们以WinTc编写的程序用户可以直接使用三概要设计本程序的功能模块图如图所示:在此文件模拟系统上可以实现以下操作:#创建目录:md+空格+目录名,在指定路径下创建指定的目录,如果没有指定路径,则在当前目录下创建指定目录。对于重名的目录给与错误提示。#创建文件:vi+空格+文件名+文件长度,创建一个指定名字的新文件,即在目录中增加一项,对于重名的文件给与错误提示。#删除目录:del+空格+目录名,删除指定的目录及此目录下的文件和子目录。#删除文件:del+空格+文件名,删除指定的文件。#查看目录:cd+空格+目录名,显示指定目录下的全部文件和一级子目录,如果没有指定目录名,则显示当前目录下的相应内容。#查看文件:cat+空格+文件名,显示指定的文件,如没有此文件,则显示错误提示。#键入quit退出文件系统。简易的文件系统创建目录创建文件删除文件查看文件删除目录查看目录四详细设计1)具体功能概述初始化,查看当前目录文件列表,查看文件,查看系统信息,创建目录、文件,删除目录、文件,进入当前目录的指定目录,返回上一级目录,显示帮助命令和退出文件模拟12项功能。2)程序流程图4.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;4.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++;4.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--4.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;4.2.5del_file(charfilename[])图3.2.54.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;4.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

1 / 36
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功