操作系统课设报告_第1页
操作系统课设报告_第2页
操作系统课设报告_第3页
操作系统课设报告_第4页
操作系统课设报告_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

课程设计报告设计题目模拟实现的文件系统机班XXXXXX2015.7

操作系统课程设计报告设计分工2012XXX1)2)3)4)员1学号及姓名2012XXX1)2)3)4)员2学号及姓名2012XXX1)2)3)员3学号及姓名2012XXX1)2)

操作系统课程设计报告摘

要文件系统是操作系统中负责管理和存储文件信息的软件机构件系统主要由三部分组成文件系统的接口对数据操纵和管理的软件集合文件对象及其属性从计算机系统角度来看文件系统是对文件存储设备的空间进行组织和分配负责文件存储并对存入的文件进行保护和检索的系统具体地说它负责为用户建立文件,写入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件,回收存储空间等等。本次课程设计我们小组选择的是模拟操作系统下的文件系统的各项基本功能,其模拟过程大致可以分为两步第一步是通过检索文件目录来找到指定文件的属性及其在外存上的位置第二步是对文件实施相应的操作如读文件或写文件以及修改文件为了便于管理和控制文件根据系统管理员或用户所规定的存取控制属性将文件分为只读文件读写文件和只执行文件三类而文件系统的模型主要分为三个层次分别是对象及其属性对数据的操纵和管理的软件集合文件系统接口其最底层的是对象及其属性中间层对对象进行操纵和管理的软件集合最高层是文件系统提供给用户的可视化接口本模拟文件系统主要针对文件的管理和操作功能有创建用户(支持多个不同权限用户文件、文件夹,读文件,写文件,复制粘贴文件,执行文件,关闭文件,文件重命名,剪切文件、文件夹,删除用户、文件夹、文件等。关键词文件系统模拟多用户文件管理、件控制

操作系统课程设计报告目

录摘要............................................................................................................................31概述............................................................................................................................52课程设计任务及要求................................................................................................2.1设计任务.........................................................................................................2.2设计要求.........................................................................................................3算法及数据结构........................................................................................................73.1算法的总体思想............................................................................................3.2模拟文件树模块............................................................................................3.2.1功能......................................................................................................3.2.2数据结构..............................................................................................93.2.3算法......................................................................................................3.3模拟磁盘模块...............................................................................................153.3.1功能....................................................................................................153.3.2数据结构............................................................................................163.3.3算法....................................................................................................174程序设计与实现......................................................................................................204.1程序流程图...................................................................................................204.2程序说明.......................................................................................................234.3实验结果........................................................................................................245结论..........................................................................................................................6参考文献..................................................................................................................287收获、体会和建议..................................................................................................28

操作系统课程设计报告1概述我们组文件模拟系统的设计主要是利用软件工程思想将设计任务进行模块划分,主要分为两个模块:上层文件树模拟和底层磁盘模拟。(1)上层文件树模拟模块:主要是创建一棵较为完备的文件树,树的非叶子结点为用户创建的各级文件目录及其子目录的叶子节点为用户最终进行信息管理和信息存储的文件,文件后缀名统一为“”格式。结构图如下:根目录一级子目录二级子目录

二级子目录

„„三级子目录

三级子目录

„„„文件1.gg

文件2.gg

文件

文件4.gg

„„„图文树结构图(2)底层磁盘模拟模块:主要是设计一个具有一定容量的模拟磁盘,将磁盘分为C盘和D两个区个磁盘分区再细分为大小一定的若干个基本存储块。这样每个基本块就是信息存储的基本单位时还设计了基于磁盘基本块的索引结构FAT表,以便于文件的随机读取和空闲盘块的回收;设了文件目录表以

操作系统课程设计报告实现文件的索引。结构图如下:物块

FAT

文件目录起始块…1…图1.2磁盘结构图2课程设计任务及要求2.1设任1、在系统模拟一个磁盘用来存储文件,模拟一个文件树来管理文件;2、此系统少有:创建、删除、打开、关闭、读取、写入、查找等和显示文件属性的功能。3、编程实这个模拟文件系统,此文件系统能够支持多用户和多级目录的文件结构。4、实际演这个模拟文件系统,主要是运行一个图形操作界面(此界面就是该模拟文件系统的界面)后,可以实现不同用户对文件的不同操作要求。2.2设要1、在深入解操作系统基本原理的基础上,对于选定的题目,以小组为单位,先确定设计方案;2、设计系的数据结构和程序结构,设计每个模块的处理流程。要求设计合理;3、编程序现系统,要求实现可视化的运行界面,界面应清楚地反映出系

操作系统课程设计报告统的运行结果;4、确定测方案,选择测试用例,对系统进行测试;5、运行系并要通过验收,讲解运行结果,说明系统的特色和创新之处,并回答指导教师的提问;6、提交课设计报告。3法及数结构3.1算的体想文件树模块的算法流程如下:开始获取登录信息login()用户登录?yes获取用户操作命令

管理员登录?yes获取管理员操作命令

文件管理操作?yes文件管理

文件存储操作?yes文件存储结束图文树模块算法流程图

操作系统课程设计报告模拟磁盘模块的算法流程如下:开始格式化?获取操作命令

yes

格式化format()写操作?yes写入磁盘writing()

读操作?yes读出文件reading()

更新FAT、文件目录表结束图磁模块算法流程图3.2模文树块3.2.1功能该模块的主要任务是创建一棵模拟的文件树,该文件树不仅具有文件信息管理和文件存储的基本功能主要的是能支持不同权限的用户对文件进行不同操作的功能。(1)用户权限下文件操作的功能:登陆文件系统Login()、创建文件Create()、创建子文件夹CreateFloder()、打开文件FileViewer()、保存文件Save()、重命名

操作系统课程设计报告Rename()、删除文Delete()、文件复、文件剪切CutFile()、获取文件属性信息Attribute()、文件查找Find()、查看磁盘占用情况等等。(2理员权限下文件操作的功能登陆文件系统Login()户管理、磁盘格式化、打开文件FileViewer()、文件删除获取文件属性信息Attribute()等等。3.2.2数据结构该模块的实现使用的是面向对象的编程方法数据结构主要是一些类的实现,这些类封装了用户和管理员对文件系统的不同权限的各种操作。partialLogin:Form//登陆界面类partial:Form//件属性信息类partialDiskViewerForm//盘占用情况类partialFind:Form//文件查找类partialCreate:Form//件创建类partialInitFileSys://格式化类partial://文件打开类partial:Form//重命名类partialManage:Form//户管理类3.2.3算法(1)登陆界面算法public:Form{public{InitializeComponent();}voidsender,e){if(txbName.Text.Length==0||==0){MessageBox.Show("用户名和密码不能空"return;}try{SQL_linkUser=SQL_link("FileSys");User.set_SQL_string(@"select*fromwherename+reader=User.query();

操作系统课程设计报告if{MessageBox.Show("没有这个账户");return;}if(!User.GetStringMd5(txbPswd.Text).Equals(reader[1])){MessageBox.Show("密码错误");return;}UIuinewui.Ownerthis.Hide();ui.Show();User.close();}(Exceptionex){}}(2)文件属性算法FileSys{publicAttributeForm{publicAttribute(stringintsize,intfoldercount){InitializeComponent();lblName.Text=name;txbPath.Text=path;lblSize.Text="B";lblUseSize.Text=usesize.ToString()+"B";个文件"+foldercount.ToString()+"个文件夹";}}}(3)磁盘占用情况算法namespaceFileSys{publicDiskViewerForm{bar=newUIpublicDiskViewer(){

操作系统课程设计报告InitializeComponent();cbbChoose.Text=cbbChoose.Items[0].ToString();}voidbtnStart_Click(objectEventArgs{pnlPool.Controls.Clear();bar.Value=0;bar.Maximumbar.Minimum==pnlTop.Controls.Add(bar);//---------进度条相关设置↑--------=(UI)this.Owner;char[,]dtable;if(cbbChoose.Text.Equals("C盘")){dtable=}else{dtable=}}(4)文件查找算法namespaceFileSys{publicFind:Form{=newNodetp;publicFind(Nodenow){InitializeComponent();tp=}voidfind(Regexre,Node{(Nodein{if(re.IsMatch()){RE.Add(inner);}}

操作系统课程设计报告}voidbtnFind_Click(objectEventArgse){if=={MessageBox.Show("名字不能为空"return;}txbRes.Text="";Regex=Regex(@"^.*"+txbSrc.Text+find(rule,tp);(NodeinRE){txbRes.Text+=inner.ToString();txbRes.Text+="\r\n";}if(txbRes.Text.Length==0){txbRes.Text=没有匹配的结果";}}}(5)文件创建算法publicCreate:{Nodeoperation;publicCreate(Nodenow){InitializeComponent();operation=now;}voidbtnCreateNewFolder_Click(objectsender,e){if{MessageBox.Show("文件夹名不可为空"return;}Regex=if(!foldercheck.IsMatch(txbNewFolderName.Text)){MessageBox.Show("不合法的文件夹名"return;}voidbtnCreateNewFIle_Click(objectsender,EventArgs{if(txbNewFileName.Text.Length==

操作系统课程设计报告{MessageBox.Show("文件名不可为空"return;}Regex=newRegex(@"^[A-Za-z0-9][A-Za-z0-9_]+.gg|[A-Za-z0-9].gg$");if{MessageBox.Show("不合法的文件名"return;}(Nodeinoperation.children){if(.Equals(txbNewFileName.Text)){MessageBox.Show("已有同名文件");return;}}if(FreeSpace<={MessageBox.Show("磁盘空间不足,创建文件失败"return;}}(6)格式化算法publicInitFileSys:{NodeNodeD;Nodeuser;BinaryFormatter=newBinaryFormatter();void{bina.Serialize(FS,obj);(Nodein{inner,bina);}}voidbtnInit_Click(objectsender,e){if格式后有盘资料被清除是否?","警告",{

FS=newFS.Flush();FS.Close();

操作系统课程设计报告MessageBox.Show("格式化完成"}}if(!CheckName()){MessageBox.Show("非法的文件/文件夹名"return;}(Nodein{if(.Equals(txbNewName.Text)){MessageBox.Show("已有同名文件文件夹"return;}}if(operation.isFile){}operation.ToString());}parent.display();}}(7)用户管理算法publicManageForm{link;Regex=NodepublicManage(Noderoot){InitializeComponent();voidbtnAdd_Click(objectEventArgs{try{if(txbNewNum.Text.Length0==txbAffirmPswd.Text.Length==0){MessageBox.Show("不能有未填写的项目");return;}if(!namecheck.IsMatch(txbNewNum.Text)){MessageBox.Show("不合法的用户名");

操作系统课程设计报告;

}if{MessageBox.Show("两次密码输入不一致");;

}link.set_SQL_string("select*SysUsername='"+@"'");reader=link.query();if(reader.Read()){MessageBox.Show("已存在该用户");return;}string=link.GetStringMd5(txbPswd.Text);link.set_SQL_string(@"INSERTINTOVALUES('"+@"','"+@"',0)");MessageBox.Show("创建用户成功"}}voidbtnChange_Click(objectsender,e){if==0||txbChangeAffirmPswd.Text.Length=={MessageBox.Show("不能有未填写的项目"return;

}if(!txbChangeAffirmPswd.Text.Equals(txbChangePswd.Text)){MessageBox.Show("两次密码输入不一致"return;}try{link.set_SQL_string(@"UPDATE

SysUser='"++@"'WHERE='"+@"'");link.alter();}MessageBox.Show("修改成功"}3.3模磁模3.3.1功能该模块主要是设计一个模拟磁盘,其功能是对用户创建的文件进行写入和

操作系统课程设计报告读取其中文件写入应是随机性离散性的时要能记录文件的一些属性信息;文件读取时不仅能快速获得该文件的全部内容还能返回文件的属性信息最后需要设计一个FAT表来实现磁盘基本块的索引功能,设计一个文件目录表来实现大量文件的索引功能。(1)磁盘写入功能:写操作、记录文件大小GetFileSize()、记录文件占用块大小GetFileUseSize()、记录磁盘剩余空间大小、文件保存等等。(2)盘读取功能:读操作Reading()、获取文件名Getfile()、获取文件大小、获取文件占用块大小、重命名Rname()等等。3.3.2数据结构该模块的实现同样采用了面向对象的编程方法主要的数据结构是磁盘类的实现和FAT表、文件目录表的实现。这些类封装了用户和理员对于不同类型文件在模拟磁盘上的读写操作。classDisk//拟磁盘类privateint//盘块数privateint//本块大小char[,]C=new//拟盘char[,]char[block,size];//拟D盘int[]FATC=newint[block];//C盘表int[]FATD=newint[block];//D盘FAT表Index//件目录表{string文件名intps;//开块intpe;//结束块intsize;//文件大小intcount;//占用块数disc;//所在盘号

操作系统课程设计报告}3.3.3算法(1)写操作算法voidwriting(char[,]int[]string{char[]=char[,]=newsize];inti0,i1=i2;intj0,j1=j2=intn=t=源分解成片段{str1[nsize]n++;}intblockcountn/size占用的快数int[]ftnewint[blockcount];//用的空闲块号集合for(i0=i0<i0++)//寻找第一个空闲磁盘块{if==0){INDEX[INDEX.Count-1].psi0;break;}}for(j0=j0<block;j0++){if==0&&i1//找空闲块且文件未写完{ft[t]=j0;i2=(str1[i1,i2]!='\0')//写入磁盘块{disc[j0,i2]=str1[i1,i2];}t++;}elseif(i1n/size)break;}{if==0){if==1){

操作系统课程设计报告fat[j2]break;}fat[j2]ft[j1];//新}}if尾节点处理{(j2<{if==0){fat[j2]break;}elsej2++;}}INDEX[INDEX.Count-1].pe=j0-1;INDEX[INDEX.Count-}(2)读操作算法stringreading(char[,]int[]intps,pe){stringcontent="";stringblocks;inti=ps;intj=(i!={blocks="";for(jjj++){blocks=blocks+disc[i,j].ToString();}content=blocks;i=fat[i];}blocks"";for(jj<size;{+j].ToString();}content=blocks;}(3)获取文件大小算法public{intsize;inti=0;

操作系统课程设计报告(i{ifelse}sizeINDEX[i].size;size;}(4)获取磁盘剩余空间算法publicdisc){intspace;int=inti=for(ii<INDEX.Count;i++){if==counts=counts+INDEX[i].count;}space=-counts)*size;space;}(5)文件保存算法publicSaveFile(stringfilename,{IndexfilenewIndex();=filename;=char[]=filename.ToArray();if(name[0]'C'||=='c'){file.disc='C';writing(C,content);}else{file.disc='D';writing(D,TD,content);}saving();保存成功}

操作系统课程设计报告4序设计实现4.1程流图(1)文件树模块程序流程图开始获取登录信息login()用户登录?yes获取用户操作命令

管理员登录?yes获取管理员操作命令

文件管理操作?yes文件管理

文件存储操作?yes文件存储结束图文树模块程序流程图

操作系统课程设计报告(2)磁盘模块程序流程图开始格式化?获取操作命令

yes

格式化format()写操作?yes写入磁盘writing()

读操作?yes读出文件reading()

更新FAT、文件目录表结束图4.2磁盘模块程序流程图

操作系统课程设计报告(3)写操作函数流程图开始获取文件内容将内容字符串分解基本块i空?yes将内容写入该基本块no内容写完?yes更新表更新文件目录表结束图写作流程图

no

操作系统课程设计报告(4)读操作函数流程图开始获取文件头结点,尾节点peps=扫描文件目录表

温馨提示

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

评论

0/150

提交评论