操作系统实验五-文件系统.doc

操作系统实验五-文件系统.doc

ID:56902605

大小:1.50 MB

页数:33页

时间:2020-07-21

操作系统实验五-文件系统.doc_第1页
操作系统实验五-文件系统.doc_第2页
操作系统实验五-文件系统.doc_第3页
操作系统实验五-文件系统.doc_第4页
操作系统实验五-文件系统.doc_第5页
资源描述:

《操作系统实验五-文件系统.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机科学与技术学院2018-2019学年第一学期《操作系统》实验报告班级:XXXXXXX学号:XXXXXXXXX姓名:XXX教师:XXX成绩:1.题目分析1.1设计目的深入了解磁盘文件系统的实现。1.2设计内容(1)设计一个简单的文件系统,用文件模拟磁盘,用数组模拟缓冲区,要求实现:(2)支持多级目录结构,支持文件的绝对读路径;(3)文件的逻辑结构采用流式结构,物理结构采用链接结构中的显示链接方式;(4)采用文件分配表;(5)实现的命令包括建立目录、列目录、删除空目录、建立文件、删除文件、显示文件内容、打开文件、读文件、写文件(追加方式)、关闭文件、改变文件属性。(6)最后编写主函数对

2、所做工作进行测试。1.3相关知识概述(1)文件的操作:①创建文件;②删除文件;③读文件;④写文件;⑤设置文件读/写位置。(2)文件的逻辑结构:从用户的观点出发所能观察到的文件组织形式,即问价是由一系列的逻辑记录组成的,是用户可以直接处理的数据及其结构。文件的物理结构:系统将文件存储在外存上所形成的一种存储组织形式,用户不可见。(3)磁盘空间的管理:采取合理的文件分配方式,为每个文件分配必要的存储空间,使每个文件都能“各得其所”,并能有效减少磁盘碎片。(4)磁盘目录结构2.实验设计2.1基本设计思路用一个文件模拟磁盘:0123456789101112FAT根目录目录1目录2目录3目录4…文

3、件1文件2…文件分配表FAT(128B):第几项0123456789…内容-1-1-149078-112…根目录(64B)目录1(64B)目录6(64B)目录n……….8B8B8B8B8B8B8B8B实验中,模拟的磁盘有128块,每块64B,故文件分配表有128项,每项3一个字节,共占磁盘的前两块,盘块编号0、1;根目录紧邻在文件分配表后面,占编号为2的盘块。文件管理系统要实现的功能包括:(1)磁盘操作:①磁盘分配(2)目录操作:①建立目录②显示目录内容③删除空目录(3)文件操作:①建立文件②打开文件③关闭文件④读文件⑤写文件⑥删除文件(磁盘回收)⑦显示文件内容⑧改变文件属性⑨使用绝对路

4、径名查找文件(4)对数据结构——已打开文件表的操作:①在已打开文件表中查找某文件②将文件从已打开文件表中删除③将某文件插入已打开文件表2.2主要数据结构描述1、每个目录项的数据结构(8B):typedefstruct{charname[3];//文件/目录名chartype[2];//文件类型目录未使用字节(填充空格)intattribute;//属性intstartnum;//起始盘块号intlength;//文件长度目录未使用字节(填充0)}DF_item;2、已打开文件表项类型:typedefstruct{charname[20];//文件绝对路径名charattribute;//

5、文件的属性,用1个字节表示,所以采用char类型intnumber;//文件起始盘块号intlength;//文件长度,文件占用的字节数intflag;//操作类型,用“0”表示以读操作方式开文件,用“1”表示写操作方式打开文件pointerread;//读文件的位置,文件打开时dnum为文件起始盘块号,bnum为“0”pointerwrite;//写文件的位置,文件刚建立时dnum为文件起始盘块号,bnum为“0”,打开文件时dnum和bnum为文件的末尾位置}OFILE;3、已打开文件登记表:struct{OFILEfile[n];//已打开文件登记表intlength;//已打开文

6、件登记表中登记的文件数量}openfile;2.3主要算法描述(1)磁盘分配:开始找到文件分配表第x项,i=x第i项值是否为0?第i项是否为最后一项?磁盘满,分配失败结束i=i+1分配第i块NYNY图2-10分配一个磁盘块的流程图(2)对已打开文件表的操作:①在已打开文件表中查找某文件:图2-13在已打开文件表中查找某文件的流程图结束查找路径名为pname的文件i=0i为已打开文件表一栏?查找成功结束查找失败i=i+1文件路径名相符?NNYY②将某文件从已打开文件表中删除开始删除路径名为name的文件在已打开文件表中查找路径名为name的登记项i找到该文件登记项?删除第i项:openfi

7、le.file[i]=openfile[openfile.length-1]openfile.length=openfile.length-1结束文件没有打开,删除失败NY图2-14将某文件从已打开文件表中删除的流程图③将某文件插入已打开文件表结束插入路径名为name的文件在已打开文件表中查找路径名为name的登记项找到该文件登记项?已打开文件表已满?文件登记表满,无法打开文件结束在openfile.file[length]处填写该

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。