欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

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

    • 资源ID:80752979       资源大小:772.83KB        全文页数:10页
    • 资源格式: PDF        下载积分:19.9金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要19.9金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    操作系统课程设计文件系统管理 Last revision on 21 December 2020 操作系统课程设计 文件系统管理 学 院 计算机学院 专 业 计算机科学与技术 班 级 姓 名 学 号 2013 年 1 月 8 日 广东工业大学计算机学院制 文件系统管理 一、实验目的 模拟文件系统的实现的基本功能,了解文件系统的基本结构和文件系统的管理方法看,加深了解文件系统的内部功能的实现。通过高级语言编写和实现一个简单的文件系统,模拟文件管理的工作过程,从而对各种文件操作系统命令的实质内容和执行过程有比较深入的了解。二、实验内容和要求 编程模拟一个简单的文件系统,实现文件系统的管理和控制功能。在用户程序中通过使用文件系统提供的 create,open,read,write,close,delete 等文件命令,对文件进行操作。以下报告主要包括:1.可行性分析 2.需求分析 3.概要设计 评定等级 4.详细设计 5.测试 6.总结 三、可行性分析 1、技术可行性 对于图形编程还不了解,但是经过本学期的三次实验的练习,可以设计好命令操作界面。利用大二期间学习的数据结构可以模拟出此课程设计的要求。2、经济可行性 课程设计作为本课程的练习及进一步加深理解。与经济无关,可以不考虑。(零花费,零收益)3.法律可行性 自己编写的程序,仅为练习,不作其他用途,与外界没什么联系,可行。四、需求分析 编写程序实现文件系统,主要有以下几点要求:1、实现无穷级目录管理及文件管理基本操作 2、实现共享“别名”3、加快了文件检索 五、概要设计 为了克服单级目录所存在的缺点,可以为每一位用户建立一个单独的用户文件目录UFD(User File Directory)。这些文件目录可以具有相似的结构,它由用户所有文件的文件控制块组成。此外,在系统中再建立一个主文件目录 MFD(Master File Directory);在主文件目录中,每个用户目录文件都占有一个目录项,其目录项中包括用户名和指向该用户目录的指针。本设计主要实现下面几个数据结构:M D F 用户名 文件目录指针 用户名 文件目录指针 U F D 文件名 保护码 文件长度 文件名 A F D 打开文件名 打开保护码 读写指针 总体的流程图如下:六、详细设计 主要数据结构:(Master File Directory),主要用以存放用户,可以增加存放密码的字符数组,本设计没有保密安全方面的忧虑,为了使用时操作更简单省去密码。所以,MFD 结构仅包括用户名和指向子目录的一个指针,以及指向下一用户的连接点,为线性结构。struct MFD char name20;UFD(User File Directory),用于存放文件的数据结构。由于本设计为了加快检索速度,使用了二叉排序树的结构,所以 UFD结构中相应加入了用于树结构的 parent,leftchild,和 rightchild 记录链接情况。当本文件为普通文件时,为下级记录申请 AFD(file),folder为空。同样,当本文件为文件夹时,为它申请相应的空间,AFD为空。以此来达到无穷级别目录的存储。struct UFD UFD*parent;UFD*leftchild;UFD*rightchild;UFD*folder;);printf(n);temp=temp-link;void BSTtraverse(UFD*fileBST)以区分文件夹 printf(.t);else printf(t);if(fileBST-leftchild!=NULL)创建文件 n);printf(2.创建文件夹 n);printf(3.取消 n);printf(请选择:n);scanf(%c,&s);fflush(stdin);if(s=3)return;if(s!=1&s!=2)printf(输入错误,请重新输入!n);while(s!=1&s!=2);if(strcmp(fileBST-name,NULL)=0)追加 n);printf(2.重写 n);printf(3.取消 n);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):);do s=getchar();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)printf(已打开文件,请及时关闭!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(本文件夹包含以下文件:n);BSTtraverse(fileBST);printf(n);printf(1.创建文件 create n);printf(2.删除文件 delete n);printf(3.打开文件 open n);printf(4.关闭文件 close n);printf(5.读文件 read n);printf(6.写文件 write n);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);break;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);if(strcmp(name,cancel)=0)return;登录 n);printf(2.添加新用户 n);printf(3.查看已注册用户 n);printf(0.退出 nn);printf(请选择:);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;七、测试 登录操作:以下为对文件的六个基本操作:无穷级文件、文件路径的显示,以及打开一个不存在的文件的示例:打开普通文件后的情况,此时不能删除文件:本系统未能实现级联删除,操作被禁止:关闭文件后删除操作成功:逐个删除后“文件系统”文件夹也可以删除了:八、总结 本次课程设计设计的知识比较广,需要较好的理解能力和编程能力。在本次设计中,花费时间比较多的应该是数据结构的设计与更改了。在开始时仅仅按照实验指导书上的 MDF、UFD、AFD做了相应的数据结构,而且里面包含的数据比较少。初衷是在以后的实现时需要再加进去。但是,在以后加进去的时候发现有不少细节需要增加,例如创建一个文件,需要对里面的各个变量进行初始化,在结构体中增加 变量的时候就忘记了其他地方的初始化,顾此失彼。另外,在设计之初是想在 MFD和UFD中增加一个 BST 链接以加快检索的,代码打了一半之后有觉得麻烦,代码过长而把它删除改变,变动比较大。所以,经过这次教训,我觉得以后再设计程序之前就应该考虑到具体的数据结构,尽量想得全面一点,这样后面的修改就可以省不少时间,还有就是,尽量不要改数据结构。以上是关于数据结构的。设计了一个号的数据结构,本课程设计的实现就容易多了,但是某些操作还是需要取舍的。例如在建立共享链的时候,本来是在 UFD中再加入一个指针以指示共享文件的,但后来发现一个结构体如果吧太多不相关的变量都放在一起的话会变得很混乱,最后决定另建一个链结构 REC。课程设计对编程能力也肯定是一个不错的锻炼。在设计删除函数和操作函数时,原先我是设计为 void型的,但是调试的时候发现删除根结点(第一个文件)的时候程序会出错。后来断点检查发现传地址的函数中,其传递的地址不可以在子函数中 free掉,这样它的主函数中的地址也会被发生改变的,后来想到了给函数返回一个新的地址。总之,本次实验加深了对文件的存储结构的理解,同时还锻炼了 C 语言及其数据结构,是一个综合性的实验。

    注意事项

    本文(操作系统课程设计文件系统管理.pdf)为本站会员(l***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开