《操作系统课程设计-文件系统目录管理.docx》由会员分享,可在线阅读,更多相关《操作系统课程设计-文件系统目录管理.docx(49页珍藏版)》请在优知文库上搜索。
1、操作系统课程设计-文件系统目录治理文件治理系统一目录文件治理的设计目录第一章课程设计目的和要求11课程设计目的12课程设计要求12.1 课程设计思想原理12.2 课程题目12.3 提交课程设计报告2第二章课程设计内容31文件治理系统结构32文件系统采用索引文件结构32.1 磁盘模拟32.2 文件的逻辑结构32.3 目录结构324用户接口5第三章详细设计71程序功能模块图72实体关系图73数据流图84数据结构设计85程序流程图115.1 建立文件目录(mkdr)程序流程图115.2 删除文件目录(rmdir)程序流程图12第四章程序运行与测试131程序运行主界面132用mkdirdirname命
2、令仓IJ立子目录133用IS命令显示当前目录下信息134用rmdirdirname命令删除子目录.145用Cddirname命令改名当前目录14第五章课程设计总结16附录1参考文献17附录11程序清单18第一章课程设计目的和要求1课程设计目的操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切.本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和稳固操作系统根本理论、原理和方法,掌握操作系统开发的根本技能.通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识,加深对教材中的重要算法
3、的理解.同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提升综合运用各专业课知识的水平.2课程设计要求2.1 课程设计思想原理阅读操作系统方面的书籍,了解操作系统的文件系统原理.结合分析课程设计要求,确定实体以及它们之间的关系.实体关系有三张表(磁盘空间分配表、文件表、翻开文件表)、一个模拟磁盘的空间、命令效劳和用户构成.用户负责输入命令.命令效劳实现命令的解释、命令检查以及调用相关模块执行相应的命令功能.磁盘空间分配表,采用链表结构,每个节点保存模拟磁盘的一个逻辑块的信息,包括块的最大长度,文件占用长度,占用标志.如果占用标志为0,即该空间可分配给文件.初始化磁盘空间分配表链表
4、,首先把整个模拟磁盘作来一块,并置占用位为0.当有进程申请磁盘空间时,从头开始遍历,检查占用位,如果该块为可分配,那么检查块大小,假设块长度大于或等于申请空间大小,那么把块的前一局部(等于申请大小)分配给文件,并置标志位为占用.剩下的大小作来一个新块,作来一个新节点插入到原节点的后边,标志位为可用.这样就实现了模拟磁盘的线性分配.构造这些实体的关系图,数据流图、程序流程图来进行具体的设计.2.2 课程题目要求设计一个文件系统目录模拟程序,通过该程序能够实现简单的目录治理操作: 创立多级目录设计树型目录结构,能够从根目录开始创立树状的多级子目录. 删除子目录实现删除当前目录下的子目录操作. 显示
5、当前目录下信息能够实现显示当前目录下子目录及文件信息的操作. 更改当前目录通过操作可以改变当前目录,返回上级目录或进入下级子目录. 在目录下创立文件能够在目录下实现创立文件的操作.2.3提交课程设计报告在规定的时间完成课程设计各阶段的任务,最后提交详细的课程设计报告.第二章课程设计内容1文件治理系统结构 文件的逻辑结构 文件的物理结构 目录结构 磁盘分配回收 文件的保护 用户接口2文件系统采用索引文件结构2.1 磁盘模拟磁盘是断电后内容不丧失的,因此用文件模拟磁盘.要求模拟系统存在两块硬盘: 用一个文件FATl模拟磁盘C 磁盘的每个盘块512字节,模拟磁盘共有128块. 磁盘中第O块存放专用块
6、内容,第1、2块存放根目录,其余存放子目录和文件.2.2 文件的逻辑结构文件的逻辑结构采用流式结构;文件的内容均采用文本文件,系统中有两种文件:一种是存放任意字符的文件一种是可执行文件:可执行文件的内容就是系统内进程的程序体.2.3 目录结构目录结构采用树型目录结构.2.3.1 目录项内容(16个字节):目录名、文件名:6个字节; 扩展名:3个字节(可执行文件扩展名为混新目录没有扩展名); 目录、文件属性:1字节; 文件长度:2字节(目录没有长度,字节数). 地址:直接地址项1个,一级索引项1个; 预留1字节1.1.2 根目录根目录位置固定,占用磁盘2块,大小固定,共16项,占用模拟磁盘第1、
7、2块;1.1.3 子目录位置不固定,大小不固定(至少建立一级子目录,最好支持多级子目录).1.1.4 磁盘分配磁盘的分配采用混合索引结构的分配方式.系统采用成组链接法记录磁盘空间的使用情况.空闲块每组登记10个空闲块,专用块占用第0块.索引块中每个盘块号占用4字节,登记32块15图21文件系统目录映射方式图22文件块的分配2.4用户接口用户接口提供用户接口操作命令,要求实现以下命令:(1)创立目录:mkdirdirname在当前目录下建立子目录,假设有同名文件夹存在或目录己满,那么程序进行提示,并拒绝创立.(2)删除目录:rmdirIdirname在删除目录前,系统要求用户进行确认删除(3)显
8、示当前目录下信息:Is输入Is命令后,系统会显示当前目录下所有子目录和文件的信息,包括文件名,文件类型等信息(4)改变当前目录:cddirname通过该命令可改变当前目录,进入上级目录或下级子目录(5)创立文件:createlename在目录下创立一个文本文件文件2.5屏幕显示屏幕显示要求包括:(1)用户命令接口,用于系统运行时用户输入命令;(2)磁盘目录显示,要求显示磁盘的树型目录结构;(3)磁盘使用情况,显示磁盘每一个磁盘块的空间是否空闲.第三章详细设计1程序功能模块图文件系统提供的目录操作有建立目录(mkdir)、删除目录(皿曲)、显示目录下内容(Is)、改变当前目录?办、创立文件(Cr
9、eate).可以通过键盘输入命令来模拟文件的操作.通过exit命令退出程序.图31模拟文件系统模块图2实体关系图图3-2实体关系图命令效劳使得用户能够输入命令,在需要时提供命令的帮助.同时能够分析命令,调用相应的命令模块对模拟磁盘、磁盘空间分配表、文件表、翻开文件表进行操作.磁盘空间分配表记录模拟磁盘的使用情况.文件表记录文件的信息和在磁盘里的位置等信息.打开文件表记录已翻开的文件,对应文件表中的文件信息,和文件表里的文件节点类似,记录了文件在模拟磁盘中的信息.3数据流图图3-3敷据布图4数据结构设计通过分析课程设计要求,具体设计出如下数据结构:(1)定义常量constchar*FilePat
10、h=C:myfiles”;constintBlockSize=512;盘块大小constintBlockCount=128;盘块数constintDiskSize=BlockSize*BlockCount;磁盘大小constintBlockFcbCount=BlockSize/sizeof(FCB);目录文件的最多FCB数通过定义常量确定模拟文件系统磁盘的路径,以及文件块的大小,盘块数,以及分配的磁盘大小和目录文件的最多文件限制块0人8)数目.(2)文件限制块结构体定义structFCB文件限制块charfname16;文件名chartype;文件类型intsize;文件大小intfather
11、BIockNum;父目录块号intCurrentBlockNum;当前的盘块voidchushihua()(strcpy(fname,0);type=NULL;size=O;fatherBIockNum=CurrentBlockNum=O;;通过结构体类型定义了文件限制块,文件限制块包括文件名,文件类型,文件大小,父目录块号,以及当前盘块,并且对文件限制块进行了初始化操作.文件限制块用来对文件进行治理.(3)目录文件结构structdirFile(structFCBfcbBlockFcbCount;voidinit(int_FatherBlockNum,int_CurrentBlockNum,
12、char*name)父块号,当前块号,目录名(strcpy(fcb0.fname,name);本身的FCBfcb0.fatherB1ockNum=_FatherBIockNum;fcb0.CurrentBlockNum=_CurrentBlockNum;fcb0.type=DIRECTORY;标记目录文件for(inti=l;iBlockFcbCount;i+)fcbi.fatherBlockNum=_CurrentB1ockNum;标记为子项fcbi.type=NULL;/标记为空白项);该结构体定义了目录文件结构,目录文件采用现8结构体数组方式进行组织治理,用来存储新创立的目录,把目录的相
13、关信息保存在文件限制块结构体中.(4)磁盘结构体定义structDISK(intFATlBlockCount;/FATlintFAT2BlockCount;/FAT2structdirFileroot;根目录chardataBlockCount-3BlockSize;voidformat()(memset(FAT1,O,BlockCount);/FATlmemset(FAT2,O,BlockCount);/FAT2FATl0=FATll=FATl2=-2;/0,1,2盘块号依次代表FATl,FAT2,根目录区FAT20=FAT21=FAT22=-2;/FAT作备份root.init(2,2,C
14、:);根目录区memset(data,O,sizeof(data);/数据区);用文件模拟磁盘.要求模拟系统存在两块硬盘: 用一个文件FATl模拟磁盘c 磁盘的每个盘块512字节,模拟磁盘共有128块. 磁盘中第O块存放专用块内容,第1、2块存放根目录,其余存放子目录和文件.5.1建立文件目录(mkdir)程序流程图显示创立成功/回图3-4mUib程序流程图开始第四章程序运行与测试1程序运行主界面BS-E二、新洋文李I丈、作q卜、DebU籽、uk.CicLdimanicCdliname1.dlpna.vncCdliname字T晶再录下信.定数箭目录CF1度口日.|加载焚件系纺成E副1号I臬作图4-1程序主界面2用mkdirdirname命令创立子目录口载文件系统成功,可以进行操作IMikdii,三yfiLs图4-2mkdir命令运行结果3用IS命令显示当前目录下信息图4-3IS命令运行结果4用rmdirdirname命令删除子目录通过执行该命令可以看到,假设删除的子目录