欢迎来到天天文库
浏览记录
ID:11166082
大小:149.00 KB
页数:37页
时间:2018-07-10
《简单文件系统的实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、杭州电子科技大学操作系统课程设计课程设计题目:简单文件系统的实现姓名:xxx班级:xxxxxx学号:xxxxx学院:计算机学院专业:网络工程负责老师:贾刚勇完成日期:2015-6-9简单文件系统的实现一,课程设计的目的1,通过具体的文件爱你存储空间的管理、文件的物理结构、目录结构和文件操作的实现,加深对文件系统内部数据结、功能及实现过程的理解二,设计要求1,在内存中开辟一个虚拟磁盘空间作为文件存储分区,在其上实现一个简单的基于多级目录的但用户单任务系统的文件系统。在退出文件系统的使用时,应将虚拟文件系统一个Windows文件的方式保存到磁盘中
2、,以便下次再将它恢复到内存的虚拟磁盘空间中2,文件存储空间的分配可采用显示链接分配或其它方法3,空闲磁盘空间的管理可选择位示图或其它方法4,文件目录结构采用多级目录结构5,需要提供一以下操作命令i.Formatii.Mkdiriii.Rmdiriv.Lsv.Cdvi.Createvii.Openviii.Closeix.Writex.Readxi.Rmxii.Exit三,程序设计思想以及总流程图1,程序设计思想i.首先,在文件系统启动时,申请一块较大的内存,用来当作文件系统的磁盘空间ii.然后,对其进行格式化,虚拟磁盘的空间布局是仿照FAT1
3、6文件系统,结构如下:1块2块2块995块引导块FAT1FAT2数据区格式化时,主要包括引导块,FAT1,FAT2,的一些初始化工作例如设置文件魔数,文件系统的信息,FAT1,FAT2的信息等等iii.根据用户输入的命令,调用对应的函数.2,程序流程图程序启动加载文件系统文件系统存在文件系统不存在创建新的文件系统并格式化等待用户输入命令CreateMkdirlsExit。。。一,系统各个功能的实现思想1,创建目录a)调用do_read读入当前目录文件到内存,检查新建文件目录是否重名b)分配一个空闲的打开文件表项c)分配一个空闲的盘块d)在当前
4、目录中问新建目录寻找一个空闲的目录项e)设置FCB,文件的属性信息f)创建特殊的两个目录项‘.’,‘..’g)返回2,Cd命令a)Open指定的目录名,调用read读入该父目录到内存b)检查新的当前目录名是否存在c)关闭原当前目录d)设置当前目录为该目录3,Rmdir命令a)Read读入当前目录文件内容到内存,检查要删除的文件目录是否存在b)检查该目录是否为空c)检查是否已经打开,打开用close则关闭d)回收给目录文件的磁盘块e)修改该目录文件的目录项f)修改用户打开表项的长度信息g)返回4,Ls命令a)Read当前目录到内存b)读出目录文
5、件的信息,显示到屏幕上c)返回5,Create命令a)分配一个空闲的打开文件表项b)检查新文件的父目录是否打开c)Read该父目录的文件到内存,并检测新建的文件名是否重名a)检查是否有空闲盘块b)寻找空闲的目录项c)准备好新文件的FCBd)调用close关闭打开的父目录文件e)返回2,Rm命令a)检查要删除的文件的父目录是否已打开b)Read父目录到内存c)检查文件是否打开d)回收磁盘快e)清空该文件的目录项f)修改用户打开文件表项中的长度信息g)返回3,Open命令a)检查该文件名是否存在b)Read该父目录到内存c)检查用户打开的文件表中
6、是否有空闲表项d)为该文件填写空白用户打开文件表项内容e)返回4,Closea)检查fd的有效性b)检查用户打开文件表表项的fcbstate字段c)回收该文件占据的用户打开文件表表项d)返回5,Write命令a)检查fd的有效性b)提示用户输入写方式c)提示用户输入内容d)调用do_write()将键入的内容写入到文件中e)返回写入的字节数一,系统的详细过程#include#include#include#include#include#define
7、BLOCKSIZE1024#defineSIZE1024000#defineEND65535#defineFREE0#defineROOT_BLOCKNUM2#defineMAX_OPEN_FILE10#defineMAX_TXT_SIZE10000typedefstructFCB{charfilename[8];/*8B文件名*/charexname[3];/*3B扩展名*/unsignedcharattribute;/*文件属性字段*/charretainbyte[10];/*10B保留字*/unsignedshorttime;/*文件创
8、建时间*/unsignedshortdate;/*文件创建日期*/unsignedshortfirst;/*首块号*/unsignedlonglength;/*文件
此文档下载收益归作者所有