操作系统模拟实现单级目录、单级索引的索引文件系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

课程设计报告课程名称操作系统课题名称模拟实现单级目录、单级索引的索引文件系统专业计算机科学与技术班级学号姓名指导教师周铁山2013年月日湖南工程学院课程设计任务书课程名称操作系统课题模拟实现单级目录、单级索引的索引文件系统专业班级计算机1181学生姓名学号指导老师周铁山审批任务书下达日期2013年月日任务完成日期2013年月日一、课程设计的性质和目的操作系统课程设计是计算机专业的专业课程,通过课程设计使学生进一步巩固课堂所学知识,全面熟悉、掌握操作系统的基本设计方法和技巧,进一步提高分析问题、解决问题及上机操作能力,为将来从事计算机工作打下一定的专业基础。二、设计课题课题一:模拟实现单级目录的FAT文件系统基本思路:用二进制文件空间模拟磁盘空间,用文件块操作模拟磁盘块操作。基本设计要求:1、实现如下文件系统功能(过程或函数):a、打开文件系统FILE*OPENSYS(char*filename);b、关闭文件系统intCLOSESYS(FILE*stream);c、显示目录voidLISTDIR(void);d、建立文件intFCREATE(char*filename);e、删除文件intFDELETE(char*filename);f、打开文件intFOPEN(char*filename);g、关闭文件intFCLOSE(intfileid);h、文件块读intFREAD(void*ptr,intn,intfileid);i、文件块写intFWRITE(void*ptr,intn,intfileid);j、判断文件结束intFEOF(intfileid);k、获取文件指针longFGETPOS(intfileid);l、设置文件指针intFSETPOS(intfileid,longoffset);m、取得文件长度longFGETLEN(char*filename);2、提供文件系统创建程序3、有功能检测模块4、为简化程序设计,假定目录区域大小固定。文件系统空间划分:保留扇区FAT表区(或字节映像图区)根目录区文件分区可以使用的C语言文件操纵函数:FILE*fopen(constchar*filename,constchar*mode);intfclose(FILE*stream);intfseek(FILE*stream,longoffset,intwhence);longftell(FILE*stream);size_tfread(void*ptr,size_tsize,size_tn,FILE*stream);size_tfwrite(constvoid*ptr,size_tsize,size_tn,FILE*stream);课题二:模拟实现单级目录、单级索引的索引文件系统使用链接域将同一文件的各索引块按顺序连接起来;其余各项同课题一。三、课程设计报告要求1、设计报告要求A4纸打印成册;2、使用学院统一的封面;3、课程设计报告每人一份,必须包含如下几个方面的内容:1)基本设计思想;2)主要数据结构;3)主要实施流程;4)所有源代码;5)课程设计总结与体会。四、分组及选题办法1、按学号顺序一人一组,学号为奇数者为课题一,偶数者为课题二。2、成绩考核按个人课题完成情况、设计报告质量及对课程设计的态度等综合评定。五、设计进度安排1、讲课及上机调试时间安排:上机时间:十八周周一至周三每天上午8:00—12:002、其余时间:查阅资料,确定方案,设计课题相关程序。3、个人答辩,交课程设计报告。主要数据结构提示:1、单级目录FAT文件系统:1)常量#defineBlockSize512#defineDirSize322)保留扇区结构structReserveBlock{intsysblocknum;/*文件系统总扇区数*/intresblocknum;/*保留扇区扇区数*/intfatblocknum;/*FAT表扇区数*/introotblocknum;/*根目录区扇区数*/charfillchar[BlockSize-4*sizeof(int)];/*填充字节*/};3)目录结构structDirBlock{charfilename[11];/*文件名限长11个字符*/charfillchar[DirSize-4*sizeof(int)-sizeof(longint)-11];/*填充字节*/longfilelen;/*文件长度*/intyear,month,day;/*日期*/intfirstblockaddr;/*文件首块扇区号*/};4)FCB(文件控制块)结构structFCBBlock{intfileid;/*文件标识*/structDirBlockfileinfo;/*目录信息*/longfilepos;/*文件读写指针*/intfdtblockaddr;/*目录项所在块号*/intfdtblockindex;/*目录项所在块内序号*/structFCBBlock*next;/*指向下一个文件控制块的指针*/};2、单级目录单级索引文件系统:1)常量#defineBlockSize512#defineDirSize322)保留扇区结构structReserveBlock{intsysblocknum;/*文件系统总扇区数*/intresblocknum;/*保留扇区扇区数*/intmapblocknum;/*字节映像图扇区数*/introotblocknum;/*根目录区扇区数*/charfillchar[BlockSize-4*sizeof(int)];/*填充字节*/};3)目录结构structDirBlock{charfilename[11];/*文件名限长11个字符*/charfillchar[DirSize-4*sizeof(int)-sizeof(longint)-11];/*填充字节*/longfilelen;/*文件长度*/intyear,month,day;/*日期*/intfirstindexaddr;/*文件首索引块扇区号*/};4)索引块结构structIndexBlock{intdataaddr[BlockSize/sizeof(int)-1];/*数据块块号数组*/intnextindexaddr;/*本文件下一索引块块号*/};5)索引节点结构structIndexNode{structIndexBlockblock;/*索引块数据*/intblockaddr;/*本节点索引块块号*/structIndexNode*nextnode;/*指向下一索引节点的指针*/};6)FCB(文件控制块)结构structFCBBlock{intfileid;/*文件标识*/structDirBlockfileinfo;/*目录信息*/longfilepos;/*文件读写指针*/intfdtblockaddr;/*目录项所在块号*/intfdtblockindex;/*目录项所在块内序号*/structFCBBlock*next;/*指向下一个文件控制块的指针*/structIndexNode*firstindexnode;/*指向第一个索引节点的指针*/};目录一、程序的功能...............................................1二、程序的基本设计思路........................................1三、主要的数据结构...........................................1四、主要实施流程.............................................2五、程序调试及其运行结果......................................4六、设计总结与心得体会........................................5七、附录(源程序清单).........................................7湖南工程学院课程设计报告1一、程序的功能该程序主要模拟实现单级目录、单级索引的索引文件系统,该系统要求能打开文件系统;关闭文件系统;显示目录;建立文件;删除文件;打开文件;关闭文件;文件块读;文件块写;判断文件结束;获取文件指针;设置文件指针;取得文件长度等功能。要求使用链接域将同一文件的各索引块按顺序连接起来。二、程序的基本设计思路模拟实现单级目录、单级索引的索引文件系统基本思路:用二进制文件空间模拟磁盘空间,用文件块操作模拟磁盘块操作。在一个文件系统中对文件进行操作,实现文件的创建、读写等等操作。在创建文件时先在目录项中进行查找,若创建的文件已存在,文件的创建首先检验目录是否为空,为空则把文件夹或文件连接到该目录下,不为空则把检查目录下是否有同名文件夹或文件,有则提示创建不成功,而文件夹打开是则把文件夹名称及其地址压入打开文件夹栈,文件关闭则把文件夹名称及其地址从打开文件夹栈中抛出。文件夹和文件的删除,文件夹下没有打开的文件或文件没有打开才能删除,否则删除失败,每次操作成功都要更改目录和FCB信息。该过程都保存在文件中,是对文件的操作。本系统建于Windows平台,开发环境为WIN-TC。三、主要的数据结构1.常量#defineBlockSize512#defineDirSize322.保留扇区结构structReserveBlock{intsysblocknum;/*文件系统总扇区数*/intresblocknum;/*保留扇区扇区数*/intmapblocknum;/*字节映像图扇区数*/introotblocknum;/*根目录区扇区数*/charfillchar[BlockSize-4*sizeof(int)];/*填充字节*/};湖南工程学院课程设计报告23.目录结构structDirBlock{charfilename[11];/*文件名限长11个字符*/charfillchar[DirSize-4*sizeof(int)-sizeof(longint)-11];/*填充字节*/longfilelen;/*文件长度*/intyear,month,day;/*定义年月日*/intfirstindexaddr;/*文件首索引块扇区号*/};4.索引块结构structIndexBlock{intdataaddr[BlockSize/sizeof(int)-1];/*数据块块号数组*/intnextindexaddr;/*本文件下一索引块块号*/};5.索引节点结构structIndexNode{structIndexBlockblock;/*索引块数据*/intblockaddr;/*本节点索引块块号*/structIndexNode*nextnode;/*指向下一索引节点的指针*/};6.FCB(文件控制块)结构structFCBBlock{intfileid;/*文件标识*/structDirBlockfileinfo;/*目录信息*/longfilepos;/*文件读写指针*/intfdtblockaddr;/*目录项所在块号*/intfdtblockindex;/*目录项所在块内序号*/structFCBBlock*next;/*指向下一个文件控制块的指针*/structIndexNode*firstindexnode;/*指向第一个索引节点的指针*/}湖南工程学院课程设计报告3四、主要实施流程用到的某些函数流程图图一、FCLOSE函数图二、FCREATE函数湖南工程学院课程设计报告4图三、FDELETE函数图四、OPENSYS函数五、程序调试及其运行结果下面是程序调试时的一些截图。图五、输入扇区块数图六、成功创建文件图七、未打开文件,不能进行写操作湖南工程学院课程设计报告5图八、成功删除文件图九、文件删之后不能打开,显示不能找到文件湖南工程学院课程设计报告6六、设计总结与心得体会这

1 / 27
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功