操作系统课程设计-文件系统目录管理.docx





《操作系统课程设计-文件系统目录管理.docx》由会员分享,可在线阅读,更多相关《操作系统课程设计-文件系统目录管理.docx(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、操作系统课程设计-文件系统目 录治理 扩展名:3个字节(可执行文件扩展名为混新目录没有扩展名); 目录、文件属性:1字节; 文件长度:2字节(目录没有长度,字节数). 地址:直接地址项1个,一级索引项1个; 预留1字节1.1.2 根目录根目录位置固定,占用磁盘2块,大小固定,共16项,占用模拟磁盘第1、2块;1.1.3 子目录位置不固定,大小不固定(至少建立一级子目录,最好支持多级子目录).1.1.4 磁盘分配 磁盘的分配采用混合索引结构的分配方式.系统采用成组链接法记录磁盘空间的使 用情况. 空闲块每组登记10个空闲块,专用块占用第0块. 索引块中每个盘块号占用4字节,登记32块文件说明信息
2、 直接地址项1文性信息图2文件系统目录映射方式图2-2文件块的分配246号2.4用户接口用户接口提供用户接口操作命令,要求实现以下命令:(1)创立目录:mkdir dirname在当前目录下建立子目录,假设有同名文件夹存在或目录已满,那么程序进行提 示,并拒绝创立.(2)删除目录:rmdir dirname在删除目录前,系统要求用户进行确认删除(3)显示当前目录下信息:1s输入1s命令后,系统会显示当前目录下所有子目录和文件的信息,包括文件名,文件 类型等信息(4)改变当前目录:cd dirname通过该命令可改变当前目录,进入上级目录或下级子目录(5)创立文件:create filename
3、在目录下创立一个文本文件文件2.5屏幕显示屏幕显示要求包括:(1)用户命令接口,用于系统运行时用户输入命令;磁盘目录显示,要求显示磁盘的树型目录结构;磁盘使用情况,显示磁盘每一个磁盘块的空间是否空闲.第三章详细设计1程序功能模块图文件系统提供的目录操作有建立目录(mkdir)、删除目录(皿曲)、显示目录下内容(Is)、 改变当前目录?办、创立文件(create).可以通过键盘输入命令来模拟文件的操作.通过exit命 令退出程序.图31模拟文件系统模块图2实体关系图图3-2实体关系图命令效劳使得用户能够输入命令,在需要时提供命令的帮助.同时能够分析命令,调用 相应的命令模块对模拟磁盘、磁盘空间分
4、配表、文件表、翻开文件表进行操作.磁盘空间分配表记录模拟磁盘的使用情况.文件表记录文件的信息和在磁盘里的位置等信息.打 开 文件表记录已翻开的文件,对应文件表中的文件信息,和文件表里的文件节点类似,记录了 文件在模拟磁盘中的信息.3数据流图图3-3敷据布图图3-3敷据布图4数据结构设计通过分析课程设计要求,具体设计出如下数据结构:(1)定义常量constconstchar* FilePath = C:myfiles;constconstintBlockSize = 512; 盘块大小constintBlockCount = 128; 盘块数constintDiskSize = BlockSiz
5、e*BlockCount; 磁盘大小constintBlockFcbCount= BlockSize/sizeof (FCB); 目录文件的最多 FCB 数通过定义常量确定模拟文件系统磁盘的路径,以及文件块的大小,盘块数,以及分配 的磁盘大小和目录文件的最多文件限制块0八8)数目.(2)文件限制块结构体定义struct FCB 文件限制块char fnameE16; 文件名char type; 文件类型int size; 文件大小int fatherBlockNum; 父目录块号int currentBlockNum; 当前的盘块void chushihuaO(strcpy(fname, 0)
6、;type = NULL;size =0;fatherBlockNum = currentBlockNum = 0;);通过结构体类型定义了文件限制块,文件限制块包括文件名,文件类型,文件大小,父 目录块号,以及当前盘块,并且对文件限制块进行了初始化操作.文件限制块用来对文 件进 行治理.(3)目录文件结构struct dirFile(struct FCB fcbBlockFcbCount;void init (int _FatherBlockNum, int _CurrentBlockNum, char *name) 父块 号,当前块号,目录名(strcpy (fcb0. fname, na
7、me); 本身的 FCBfcb 0. fatherBlockNum=_FatherBlockNum;fcb 0. currentBlockNum=_CurrentBlockNum;fcb 0. type=DIRECTORY; 标记目录文件for (int i=l;iBlockFcbCount;i+) fcbEi, fatherB 1 ockNum=_CurrentB 1 ockNum; 标记为子项fcbi. type=NULL; / 标记为空白项);该结构体定义了目录文件结构,目录文件采用现8结构体数组方式进行组织治理,用 来 存储新创立的目录,把目录的相关信息保存在文件限制块结构体中.(4)
8、磁盘结构体定义struct DISKint FAT1BlockCount;/FAT1int FAT2BlockCount;/FAT2struct dirFile root;根目录char dataBlockCount-3BlockSize;void format ()(memset (FAT1, 0, BlockCount); /FAT1memset (FAT2, 0, BlockCount);/FAT2FATl0=FATll=FATl2=-2; /0, 1,2 盘块号依次代表 FAT1, FAT2,根目录 区FAT2 0 =FAT2 1 =FAT2 2 =-2; /FAT 作备份root.
9、init(2, 2, C:);根目录区memset (data, 0, sizeof (data);/ 数据区);用文件模拟磁盘.要求模拟系统存在两块硬盘: 用一个文件FAT1模拟磁盘c 磁盘的每个盘块512字节,模拟磁盘共有128块. 磁盘中第0块存放专用块内容,第1、2块存放根目录,其余存放子目录和文件.5程序流程图5.1建立文件目录(mkdir)程序流程图申谙磁盘空间文件治理系统5.2删除文件目录(rmdir濯序流程图开始查询翻开文件表删除翻开文件表 中该文件条目图3-5 rmdir程序流程图第四章程序运行与测试1程序运行主界面除除怕“子晶再录下信.定 内牵节箭目录Ldimanic Cd
10、liname Ldlpna.vnc Cdliname BSE二、新洋文李I丈、作q卜、Debu籽、 ulu.cic家冶 EkdixIs cd.匚用IS H七号CF1 度口日.加载焚件系纺成E副1号1聚作图4-1程序主界面2用mkdir dirname命令创立子目录口载文件系统成功,可以进行操作:Mikd 11 myf i Ls图4-2 mkdir命令运行结果3用Is命令显示当前目录下信息图4-3 Is命令运行结果4用rmdir dirname命令删除子目录通过执行该命令可以看到,假设删除的子目录不存在,系统将给出提示.W : Xis Lij/f ils roroject 文件夹考目录下共1 有
11、0个文本文件,2个文件夹fc : Xind ir myf i le s当前目录下不存在该子目录?fC : M*ndir myf ils修目录下共有0个文本文件.1个文件夹图4-4 rmdir命令运行结果5用cd dirname命令改名当前目录通过该图可看到当前目录已从C:变为C:project,命令执行成功p 15Project 文件夹.*目录下共有0个文本文件,1个文件夹C=cd projectC: projectX图4-5 cd命令运行结果t: Xcd projectC - Xpio J e c t 5 1* e at: e q: IFC - Xprojec t Xis,工 文本文件.除目
12、录卜共有1个文本文件,0个文件夹图4-6在子目录下创立文件第五章课程设计总结通过本次的课程设计,使我能够正确运用操作系统课程中所学的根本理论和知识,加 深了对文件系统根本概念的理解,以及磁盘文件系统的文件操作.还有让我感受挺深的是 对软件工程方法的应用.设计一个软件,先要做好需求分析,这一点很重要,如果没有分 析 好需求,到软件设计的最后,发现所做的功能不符合要求,那么一切都得重做,前面所 有的 努力都付诸东流.还有比较重要的是,写好E-R图,至少画出语境级的数据流图,以 及仔细 画好程流程图.在程序设计的开始,由于分析工作做得不够深入和细致,吃了点小 苦头.对 于这样一个小设计来说,都会吃苦
13、头,要是大工程更是无法想像,有可能会工程 失败.以后 得增强对软件工程的学习.另外在运用C语言的时候,感觉有点生疏,在组织 语言时时而出 错,在编程和调试的过程中,经常会出现意想不到的问题,并非每个问题都 可以从相关资料 中找到解决方法,有些问题是无法预料到的,这就需要通过自己理性的分 析得出问题的解 决方案.在设计过程中,查询了不少相关资料,不断的发现问题、提出问题、解决问题.在对己所编写的源程序段的纠错的过程中,使我更好的理解了操作系统中文件系统的理论知 识, 同时在编程时用到了模块化的设计思想,这种编程方法可以使我们的编程变的更简单,可 以使我们的查错与纠错变的更方便.总的来说通过这次的
14、设计的学习使我学到了很多在 平 时的学习中学不到的很多东西,通过这次课程设计,使我对操作系统和编程产生兴趣,我想 我会在这条路上继续前进下去.我相信,只要不断的严格要求自己,注意培养自己的 思维水 平,就一定会有更大更辉煌的开展和提升.附录I参考文献1张尧学等编著.计算机操作系统教程.北京:清华大学出版社,2006.02汤子瀛等编 著.计算机操作系统.西安:西安电子科技出版社,1996.12陈向群编著.操作系统教 程.北京:北京大学出版社,2007.01罗宇等编著.操作系统课程设计.北京:机械工业出版社,2005.9附录11程序清单#include #include tfinclude # i
15、nclude using namespace std;define GENERAL 1 普通文件# define DIRECTORY 2 目录文件define NULL 0 空文件 struct FCB 文件限制块char fname16; 文件名char type; 文件类型int size; 文件大小int fatherBlockNum; 父目录块号 int currentBlockNum; 当前的盘块 void chushihuaOstrcpy(fname, 0);type = NULL;size =0;fatherBlockNum = currentB1ockNum = 0;);定义常
16、量 const char* FilePath 二const int BlockSizeconst int BlockSize512; 盘块大小const int 0PEN_MAX = 5; 多的文件数const int 0PEN_MAX = 5; 多的文件数能翻开最const intconst intBlockCount = 128; 盘块数const int DiskSize = BlockSize*BlockCount;磁盘大小const int BlockFcbCount =BlockSize/sizeof (FCB) ;/ 目录文件的最多 FCB 数int OpenFileCount
17、= 0;struct OPENLISTstruct OPENLIST用户文件翻开表int files; 当前翻开文件数FCB f OPEN_MAX; FCB 复制OPENLIST () files=0;for (int i=O;iOPEN_MAX;i+)fi. fatherBlockNum=-l;/ 为 分配翻开fi.type=GENERAL;/目录文件结构struct dirFile struct FCB fcbBlockFcbCount;void init(int _FatherBlockNum, intCurrentBlockNum, char *name)父块号,当前块号, 目录名st
18、rcpy (fcbOj. fname, name); /本身的FCB fcbOL fatherBlockNum=_FatherBlockNum;fcb0. currentBlockNum=_CurrentBlockNum;fcb 0. type=DIRECTORY; / 标记 目录 文件for(int i=l;iFAT1 2 =-2;0, 1, 2盘块号依次代表FAT1, FAT2,根目录区FAT2 0=FAT2 1FAT2 2=-2; /FAT 作备份roo七?近1 (2, 2, 6); 根目录区 memset(data, 0, sizeof(data);/ 数 据区 );全局变量FILE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 课程设计 文件系统 目录 管理

限制150内