欢迎来到天天文库
浏览记录
ID:56211352
大小:167.50 KB
页数:21页
时间:2020-03-21
《模拟文件系统的设计与实现.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、中北大学操作系统课程设计说明书 学院、系:软件学院专业:软件工程学生姓名:xxx学号:xxx设计题目:模拟文件系统的设计与实现起迄日期:2015年12月28日-2016年1月8日指导教师:xxx 2016年1月8日1需求分析通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识,加深对教材中的重要算法的理解。同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力;掌握操作系统结构、实现机理和各种典型算法,系统地了解操作系统的设计和实现思路,并了解操作系统的发展动向和趋势。模拟二级文件管理系统
2、的课程设计目的是通过研究Linux的文件系统结构,模拟设计一个简单的二级文件系统,第一级为主目录文件,第二级为用户文件。2总体设计结合数据结构、程序设计、计算机原理等课程的知识,设计一个二级文件系统,进一步理解操作系统。文件的创建:create文件关闭:close文件的打开:open文件的读:read文件的写:write文件关闭:close删除文件:delete创建子目录:mkdir删除子目录:rmdir列出文件目录:dir退出:exit开始系统执行流程图选择操作创建文件删除文件读文件写文件创建文件夹删除文件夹删除子目录显示当前子目录创建
3、子目录更改目录退出退出3.详细设计主要数据结构:#defineMEM_D_SIZE1024*1024//总磁盘空间为1M#defineDISKSIZE1024//磁盘块的大小1K#defineDISK_NUM1024//磁盘块数目1K#defineFATSIZEDISK_NUM*sizeof(structfatitem)//FAT表大小#defineROOT_DISK_NOFATSIZE/DISKSIZE+1//根目录起始盘块号#defineROOT_DISK_SIZEsizeof(structdirect)//根目录大小#defineD
4、IR_MAXSIZE1024//路径最大长度为1KB#defineMSD5//最大子目录数5#defineMOFN5//最大文件深度为5#defineMAX_WRITE1024*128//最大写入文字长度128KBstructfatitem/*size8*/{intitem;/*存放文件下一个磁盘的指针*/charem_disk;/*磁盘块是否空闲标志位0空闲*/};structdirect{/*-----文件控制快信息-----*/structFCB{charname[9];/*文件/目录名8位*/charproperty;/*属性1位
5、目录0位普通文件*/intsize;/*文件/目录字节数、盘块数)*/intfirstdisk;/*文件/目录起始盘块号*/intnext;/*子目录起始盘块号*/intsign;/*1是根目录0不是根目录*/}directitem[MSD+2];};structopentable{structopenttableitem{charname[9];/*文件名*/intfirstdisk;/*起始盘块号*/intsize;/*文件的大小*/}openitem[MOFN];intcur_size;/*当前打文件的数目*/};管理文件的主要代码
6、:intcreate(char*name){inti,j;if(strlen(name)>8)/*文件名大于8位*/return(-1);for(j=2;jdirectitem[j].name,name))break;}if(jdirectitem[i].firstdisk==-1)br
7、eak;}if(i>=MSD+2)/*无空目录项*/return(-2);if(u_opentable.cur_size>=MOFN)/*打开文件太多*/return(-3);for(j=ROOT_DISK_NO+1;j=DISK_NUM)return(-5);fat[j].em_disk='1';/*将空闲块置为已经分配*//*-----------填写目录项-----------------*/strcpy(
8、cur_dir->directitem[i].name,name);cur_dir->directitem[i].firstdisk=j;cur_dir->directitem[i].size
此文档下载收益归作者所有