操作系统课程设计文件系统管理_第1页
操作系统课程设计文件系统管理_第2页
操作系统课程设计文件系统管理_第3页
操作系统课程设计文件系统管理_第4页
操作系统课程设计文件系统管理_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、操作系统课程设计 文件系统管理 学 院 计算机学院 专计算机科学与技术班级姓名学号201318广东工业大学计算机学院制文件系统管理一、实验目的模拟文件系统的实现的基本功能,了解文件系统的基本结构和文件系统的管理方法看,加深了解文件 系统的内部功能的实现。通过高级语言编写和实现一个简单的文件系统,模拟文件管理的工作过程,从而 对各种文件操作系统命令的实质内容和执行过程有比较深入的了解。二、实验内容和要求编程模拟一个简单的文件系统,实现文件系统的管理和控制功能。在用户程序中通过使用文件系统提 供的create, open , read , write , close, delete等文件命令,对文

2、件进行操作。 以下报告主要包括:1 .可行性分析2 .需求分析3 .概要设计4 .详细设计5 .测试6 .总结三、可行性分析1、技术可行性对于图形编程还不了解,但是经过本学期的三次实验的练习,可以设计好命令操作界面。利用大二期间学 习的数据结构可以模拟出此课程设计的要求。2、经济可行性课程设计作为本课程的练习及进一步加深理解。与经济无关,可以不考虑。(零花费,零收益)3.法律可行性自己编写的程序,仅为练习,不作其他用途,与外界没什么联系,可行。四、需求分析编写程序实现文件系统,主要有以下几点要求:1、实现无穷级目录管理及文件管理基本操作2、实现共享“别名”3、加快了文件检索五、概要设计为了克服

3、单级目录所存在的缺点,可以为每一位用户建立一个单独的用户文件目录UFD ( User FileDirectory ) o这些文件目录可以具有相似的结构,它由用户所有文件的文件控制块组成。此外,在系统中 再建立一个主文件目录MFD (Master File Directory );在主文件目录中,每个用户目录文件都占有一个目录项,其目录项中包括用户名和指向该用户目录的指针。 本设计主要实现下面几个数据结构:M D FU F DA F D用户名文件名打开文件名文件目录指针保护码打开保护码用户名文件长度读写的文件目录指针文件名总体的流程图如下:六、详细设计主要数据结构:(Master File Di

4、rectory ),主要用以存放用户,可以增加存放密码的字符数组,本设计没有保密安全方面 的忧虑,为了使用时操作更简单省去密码。所以, MFD结构仅包括用户名和指向子目录的一个指针,以 及指向下一用户的连接点,为线性结构。struct MFD(char name20; UFD ( User File Directory ),用于存放文件的数据结构。由于本设计为了加快检 索速度,使用了二叉排序树的结构,所以UFD结构中相应加入了用于树结构的parent , leftchild ,和rightchild记录链接情况。当本文件为普通文件时,为下级记录申请AFD (file) , folder为空。同

5、样,当本文件为文件夹时,为它申请相应的空间, AFD为空。以此来达到无穷级别目录的存储。struct UFD(UFD *parent;UFD *leftchild;UFD *rightchild;UFD *folder;);temp=temp-link;)void BSTtraverse(UFD *fileBST)以区分文件夹printf(.t); elseprintf(t);if(fileBST-leftchild!=NULL)创建文件n);printf(2.创建文件夹n);printf(3.取消n);printf(请选择:n);scanf(%c,&s);fflush(stdin);if(s

6、=3)return;if(s!=1&s!=2)printf(输入错误,请重新输入! n);n);n);while(s!=1&s!=2);if(strcmp(fileBST-name,NULL)=0) 追力口printf(2.重写n);printf(3.取消printf(请选择:n);scanf(%c,&s);fflush(stdin);if(s=3)return;if(s!=1&s!=2)printf(输入错误,请重新输入! n);while(s!=1&s!=2);printf(请输入要重写或追加的内容(link;printf(n是否尝试在共享文件夹中打开(y/n):);dos=getchar

7、();if(s=n|s=N)return NULL;else if(s=y|s=Y)break;else printf(输入错误,请重新输入:);while(s!=y&s!=n&s!=Y&s!=N);stemp=share_file;while(stemp!=NULL) if(strcmp(stemp-file-name,name)=0) temp=stemp-file;break; stemp=stemp-link;return temp;UFD *operations(UFD *fileBST)while(1)char s;system(cls);if(open_file!=NULL) p

8、rintf(已打开文件,请及时关闭!n);printf(文件名t文件长度t读写t共享t内容) printf(n);print_open_file();printf(n);printf(当前路径:);print_path(fileBST);printf(n);if(strcmp(fileBST-name,NULL)=0) printf(本层文件为空!n);else printf(本文件夹包含以下文件:BSTtraverse(fileBST);n);printf(n);printf(1.创建文件createn);printf(2.删除文件deleten);printf(3.打开文件openn);p

9、rintf(4.关闭文件closen);printf(5.读文件readn);printf(6.写文件writen);printf(0.返回上一层/注销nn);printf(请选择:);printf();scanf(%c,&s); fflush(stdin); switch(s) case 1:fcreate(fileBST); break;case 2:fileBST=fdelete(fileBST);break;case 3:fopen(fileBST);break;case 4:fclose();break;case 5:case 6:fread_write(fileBST,s);bre

10、ak; case 0:return fileBST; default:break;void Log_in()MFD *temp=NULL;char name30;char flag=0;if(mfd_link=NULL),请创建后再登陆!);printf(目前还没有创建用户 getch();return; do printf(请输入用户名:); scanf(%s,name); fflush(stdin);登录n);2.添加新用户n);3.查看已注册用户n);0.退出nn)if(strcmp(name,cancel)=0) return;printf( printf( printf( print

11、f(请选择:); printf();scanf(%c,&s); fflush(stdin);if(s!=0&s!=1&s!=2&s!=3) printf(输入错误,请重新输入:);getch();fflush(stdin);continue;)switch(s) case 1:Log_in();break;case 2:Init_user();break;case 3:Check_user();break;case 0:return 1; default:break;)return 0;)七、测试登录操作:以下为对文件的六个基本操作:无穷级文件、文件路径的显示,以及打开一个不存在的文件的示例:

12、打开普通文件后的情况,此时不能删除文件:本系统未能实现级联删除,操作被禁止: 关闭文件后删除操作成功:逐个删除后“文件系统”文件夹也可以删除了:八、总结本次课程设计设计的知识比较广,需要较好的理解能力和编程能力。在本次设计中,花费时间比较多的应该是数据结构的设计与更改了。在开始时仅仅按照实验指导书 上的MDF、UFD、AFD做了相应的数据结构,而且里面包含的数据比较少。初衷是在以后的实现时需要再 加进去。但是,在以后加进去的时候发现有不少细节需要增加,例如创建一个文件,需要对里面的各个 变量进行初始化,在结构体中增加变量的时候就忘记了其他地方的初始化,顾此失彼。另外,在设计之 初是想在 MFD和UFD中增加一个BST链接以加快检索的,代码打了一半之后有觉得麻烦,代码过长而把 它删除改变,变动比较大。所以,经过这次教训,我觉得以后再设计程序之前就应该考虑到具体的数据 结构,尽量想得全面一点,这样后面的修改就可以省不少时间,还有就是,尽量不要改数据结构。以上 是关于数据结构的。设计了一个号的数据结构,本课程设计的实现就容易多了,但是某些操作还是需要取舍的。例如在建立共享链的时候,本来是在UFD中再加入一个指针以指示共享文件的,但后来发现一个结构体如果吧太多不相关的变量都放在一起的话会变得很混乱,最后决定另建一个链结构

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论