欢迎来到天天文库
浏览记录
ID:33517135
大小:894.00 KB
页数:24页
时间:2019-02-26
《文件系统的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、学校代码:10128学号:7课程设计题目:文件系统的设计与实现学生姓名:胡浩亮学院:信息工程学院系别:计算机系专业:软件工程班级:软06指导教师:赵俊生副教授马志强讲师2009年1月15日21摘要设计一个小型的文件管理系统,在XP系统下,建立一个大文件,把它假想成一张盘,在其上实现小型文件管理系统。该小型文件系统有一个简单的主界面,提供五条简单的命令:dir、mkfile、type、copy、delfile,分别用于显示文件目录、建立文件、显示文件内容、复制和删除一个文件。关键字:操作系统,课程设计,文件系统21目录第一章设计内容11.1设计目的11.2设计要求11.3程序设计
2、思想1第二章数据结构、算法和算法流程图22.1数据结构22.2程序功能图22.3程序流程图3第三章程序运行结果及分析63.1程序运行结果63.2程序分析7第四章心得体会8参考文献9附录程序清单1021第一章设计内容1.1设计目的通过设计一个小型文件系统,进一步掌握文件管理的方法和技术,使学生初步具有研究、设计、编制和调试操作系统模块的能力。1.2设计要求(1)问题描述在任一OS下,建立一个大文件,把它假想成一张盘,在其中实现一个简单的小型文件系统。(2)基本要求该文件系统没有子目录机制,文件连续分配,不考虑换“盘”和分区。做一个简单的操作界面,提供五条简单的命令:dir、mkf
3、ile、type、copy、delfile,分别用于显示文件目录、建立文件、显示文件内容、复制和删除一个文件。1.3程序设计思想阅读操作系统方面的书籍,了解操作系统的文件系统原理。结合分析课程设计要求,确定实体以及它们之间的关系。实体关系有三张表(磁盘空间分配表、文件表、打开文件表)、一个模拟磁盘的数组、命令服务和用户构成。用户负责输入命令。命令服务实现命令的解释、命令检查、命令帮助以及调用相关模块执行相应的命令功能。建立一个系统文件(模拟盘),并对此进行盘块的划分,第一个盘块存放文件目录,第二盘块存放盘块位示图,自第三个盘块开始存放各具体文件的内容,文件目录存放文件的名字,文
4、件的扩展名,开始盘块号,所占用的盘块数目,文件的大小;盘块位示图用来标记盘块是否被占用。构造这些实体的关系图,数据流图、程序流程图来进行具体的设计。21第二章数据结构、算法和算法流程图2.1数据结构数据结构说明:本程序所运用的主要有两个数据结构,分别如下:文件目录结构:structfilename{//文件目录项结构体charname[9];//文件名charext[4];//扩展名inti;//文件所占用磁盘块的第一个磁盘块号intAmount;//文件所占用磁盘块的块数longintsize;//文件大小};盘块结构:structempty{//盘块结构体intmap[10
5、0];//盘块位示图intfilenum;//文件数量};2.2程序功能图模拟文件系统显示内容显示目录创建文件复制文件删除文件图2.1文件系统提供的文件21操作有建立文件(mkfile)、复制文件(copy)、显示文件所有内容(type)、删除文件(delfile)。可以通过键盘输入命令来模拟文件的操作。2.3程序流程图(1)主程序流程图:开始初始化盘块输入命令分析命令有无该命令?显示错误信息创建文件显示目录显示内容复制文件删除文件有无执行命令结束图2.221(2)初始化模块流程图:图2.3(3)写入磁盘流程图:图2.4(4)显示目录流程图:图2.5(5)显示文件流程图:图2.
6、621(6)删除文件流程图:图2.7(7)复制文件流程图:图2.8(8)创建文件流程图:图2.921第三章程序运行结果及分析3.1程序运行结果(1)程序主界面图3.1(2)创建一个文件,输入“3”显示“输入文件内容,按@键保存且退出!”图3.2(3)往文件里写内容:HelloWorld!显示文件长度,并要求给文件命名,命名后保存返回主界面图3.321(4)读取刚才写入的文件,结果正确图3.4(5)删除刚写入的文件,测试成功图3.5对于测试用例,还有很多路径都有测试过,鉴于篇幅,就不再列出所有可能的路径来进行白盒测试。3.2程序分析本程序使用一个Windows下的文件来模拟一个磁
7、盘,向磁盘中装入文件并进行相关操作。采用了以空间换时间的算法,文件的大小在系统中是固定的,虽然会浪费一些空间,但文件的存取速率会加快。21第四章心得体会通过本次的课程设计,使我能够正确运用操作系统课程中所学的基本理论和知识,加深了对文件系统基本概念的理解,以及磁盘文件系统的文件操作。还有让我感受挺深的是对软件工程方法的应用。设计一个软件,先要做好需求分析,这一点很重要,如果没有分析好需求,到软件设计的最后,发现所做的功能不符合要求,那么一切都得重做,前面所有的努力都付诸东流。还有比较重要的是
此文档下载收益归作者所有