计算机操作系统课程设计说明书--Linux-ext文件系统.doc

计算机操作系统课程设计说明书--Linux-ext文件系统.doc

  1. 1、本文档共49页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机操作系统 课程设计说明书 起止日期: 年 月 日 至 年 月 日 学生姓名 班级 学号 07408100321 成绩 指导教师(签字) 年 月 日1 课程设计简介 1 1.1 课程设计的目的 1 1.2 课程设计内容 1 2 数据结构的设计 2 2.1 预定义 2 2.2 结构体 2 2.3 全局变量和函数 2 3 功能模块(或算法)描述 3 3.1 模块划分 4 3.2 模块流程图 6 4 程序运行结果 4 5心得体会 5 参考文献 6 附源代码 7 1 课程设计简介 1.1 课程设计的目的 课程设计目的使学生熟悉文件管理系统的设计方法;加深对所学各种文件操作的了解及其操作方法的特点。通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识, 加深对教材中的重要算法的理解。同时通过编程实现这些算法,更好地掌握操作系统的原理及实现方法,提高综合运用各专业课知识的能力。 1.2 课程设计内容 课程设计内容设计一个简单的多用户文件系统。即 ①在系统中用一个文件来模拟一个磁盘; ②此系统至少有:Create、delete、open、close、read、write等和部分文件属性的功能。 ③实现这个文件系统。 ④能实际演示这个文件系统。基本上是进入一个界面(此界面就是该文件系统的界面)后,可以实现设计的操作要求。 1)设计一个10个用户的文件系统,每次用户可保存10个文件,一次运行用户可以打开5个文件。 2)程序采用二级文件目录(即设置主目录MFD)和用户文件目录(UFD)。另外,为打开文件设置了运行文件目录(AFD)。 3)为了便于实现,对文件的读写作了简化,在执行读写命令时,只需改读写指针,并不进行实际的读写操作。 4)因系统小,文件目录的检索使用了简单的线性搜索。 5)文件保护简单使用了三位保护码:允许读写执行、对应位为1,对应位为0,则表示不允许读写、执行。 6)程序中使用的主要设计结构如下:主文件目录和用户文件目录(MFD、UFD),打开文件目录(AFD)即运行文件目录,如图5.1所示。 2 数据结构的设计 2.1 预定义 #define BLOCKSIZ 512 //磁盘块的大小 #define DATABLKNUM 512 //数据块的数目 #define BLKGRUPNUM 50 //数据块组包含多少数据块 #define P_N_BLOCKS 15 //inode节点中 指向数据块的指针个数 #define GROUPNUM DATABLKNUM/BLKGRUPNUM+1 //数据块组 组数 #define DINODESIZ 512 //磁盘i结点区的大小(空间32×512) #define DINODENUM 32 //磁盘i结点区的块数 #define SYSOPENFILE 40 #define DIRNUM 32 //一个目录下的最多目录和文件的总和数 #define DIRSIZ 14 //文件、目录名的长度(字节) #define UPWDSIZ 15 //密码的长度 #define UNAMSIZ 15 //用户名的长度 #define PWDSIZ sizeof(struct pwd) //密码结构的长度 #define PWDNUM BLOCKSIZ/PWDSIZ //密码数据空间的大小(pwd为单位) #define NOFILE 20 //一个用户最多可以打开的文件数目 #define DINODESTART 4*BLOCKSIZ //i结点区的开始地址-inodes table ,1引导 2超块 3block bitmap 4inode bitmap #define DATASTART (2+DINODENUM)*BLOCKSIZ //数据区的开始地址 #define DATASTARTNO 36 //数据区开始指针 #define DIMODE_EMPTY 00000/*可以用的空间*/ #define DIMODE_FILE 00001 #define DIMODE_DIR 00002 #define DIMODE_PASSWD 00004 #define GRUP_0 0 //管理员组 #define GRUP_1 1 #define GRUP_2 2 #define GRUP_4 4 2.2 结构体 //磁盘i结点结构, struct inode{ // char di_name[DIRSIZ]; unsigned __int16 di_

文档评论(0)

ze122230743 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档