欢迎来到天天文库
浏览记录
ID:32679717
大小:47.55 KB
页数:10页
时间:2019-02-14
《广工操作系统课设6》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、课程设计课程名称操作系统题目名称多用户多级目录文件系统的实现学生学院计算机学院专业班级学号学生姓名指导教师林穗2016年1月9日目录目录31设计思想说明41.1设计环境41.2设计思想42系统结构的说明43数据结构的说明54算法流程图65主要函数列表76测试与分析87用户使用说明108附录101设计思想说明1.1设计环境OSX10.11.2cc7.0.21.2设计思想模拟linux文件管理系统,设计一个多用户多级口录的文件管理系统。模拟linux文件管理系统的权限控制,777权限最高,4为「2为1为X。以1M的存储器空间作为
2、文件空间,空间“分块”,编号为0#〜2047#。“分块”就是规定对文件卷的读/写以块为单位,每次读/写的起点为块大小的整倍数。分块主要体现在文件卷的读/写模块上。前4个块用于存放位示图,后面2044个块用于存放用户创建储存的文件内容。可以通过具体的文件存储空间的管理、文件的物理结构、口录结构和文件操作的实现,加深对文件系统内部功能和实现过程的理解。2系统结构的说明命令解析模块:对用户输入的字符串进行解析,并调用对应的命令函数和传入参数。命令实现模块:文件系统命令的具体实现。工具模块:存放本文件系统中用到的工具类,例如字符串匹
3、配函数,各种打印函数,述冇鉴权函数。配置或系统文件读写模块:提供系统初始化用户,根口录的操作,述有读写fcb及目录索引的信息。文件块读写模块:提供位示图的读写,文件系统的文件的读写。主函数模块:展示版权和提供系统入口3数据结构的说明struetcommand{charst讥100];//命令内容struetcommand*pre;struetcommand*ncxt;};用于存放打过的命令,按上,下键可以显示历史命令,实现命令记忆功能。structdiretory{intinode;chard_name[10];//目录名s
4、truetdiretory*next;};用于存放目录,形成一条从根目录到当前目录的链表。struetgroup{charg_namc[10];//用户组名intgid;//用户组id};存放用户组的信息structuser{intgid;//用户所属组idintuid;//用户主idcharusername[10];//用户名charpasswd[8];//密码};用于存放用户的所有信息structindex{//索引目录intinode;//inode节点号chari_namcE10];//文件名(最大10个字符)int
5、flag;};用于存放文件名和文件对应的inode结点号structfcb{//文件控制块intinode;//inode节点号charf_type;//文件类型(f/d)d:目录,f:文件intuid;//文件主idintgid;//文件所属组idintf_size;//文件大小单位Bintext[10];//物理块号数组文件最大为5120Bcharaccess[3];//权限数组集eg:775structtmtm;//修改时间intflag;//启用标志};用于存放文件的所有信息。4算法流程图开始登录命令结束5主要函数列
6、表函数原型功能入口、出口参数说明voidrcad」nodc();在inode文件中读取所有索弓I冃录到全局变量indexs入口出口无无voidwrite_inode();将全局变量indexs的内容存入inode文件入口出口无无intread_file(FILE*fp);判断从传入文件指针开始到遇到换行符,空格,逗号和有多少个字符。入口出口文件指针字符数voidread_fcb();读取文件屮全部fcb入口出口无无voidwrite_fcb();把全局变量fcbs写入文件中入口出口无无voidread_user();将全部用
7、户信息读取进入到usernode入口出口无无voidwrite_user();将usernode里血的用户信息保存在文-user.ini中入口出口无无voidinit();初始化函数入口出口无无voidsave_config(inti);保存配遇函数入口出口无无voidread_group();读取用户组配置至!]groupnode入口出口无无voidread_block(structfcb*file);读取对应文件fcb的全部内容入口出口某个文件的fcb无voidwrite_block(structfcb*file,c
8、har^contents);为文件写入内容入口出口文件fcb,内容无voidrcad_rcal(intnum);读物理块内容并输出入11出口物理块号无voidwrite_filenode();将位示图内容数组filenode写入位示图入口出口无无voidread_filenode();将文
此文档下载收益归作者所有