电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本
换一换
首页 金锄头文库 > 资源分类 > DOC文档下载
分享到微信 分享到微博 分享到QQ空间

优秀毕业设计精品模拟UNIX文件系统的设计及实现

  • 资源ID:458561897       资源大小:394.50KB        全文页数:36页
  • 资源格式: DOC        下载积分:20金贝
快捷下载 游客一键下载
账号登录下载
微信登录下载
三方登录下载: 微信开放平台登录   支付宝登录   QQ登录  
二维码
微信扫一扫登录
下载资源需要20金贝
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

 
账号:
密码:
验证码:   换一换
  忘记密码?
    
1、金锄头文库是“C2C”交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时联系右侧客服;
2、如你看到网页展示的文档有jinchutou.com水印,是因预览和防盗链等技术需要对部份页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有jinchutou.com水印标识,下载后原文更清晰;
3、所有的PPT和DOC文档都被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;下载前须认真查看,确认无误后再购买;
4、文档大部份都是可以预览的,金锄头文库作为内容存储提供商,无法对各卖家所售文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;
5、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据;
6、如果您还有什么不清楚的或需要我们协助,可以点击右侧栏的客服。
下载须知 | 常见问题汇总

优秀毕业设计精品模拟UNIX文件系统的设计及实现

*实践教学* XX理工大学计算机与通信学院2008年秋季学期操作系统原理课程设计题 目: 模拟UNIX文件系统专业班级: 计算机 班 姓 名: xxxxx 学 号: xxxxxxx 指导教师: xxxx 成 绩: 目录1.摘要22.问题描述23.设计目的24.设计要求25.详细设计25.1界面设计35.1算法设计.36.设计总结37. 参考文献48.致谢49.附录22模拟UNIX文件系统的设计及实现1. 课程设计内容多用户的多级目录的文件系统设计。2. 概述 UNIX采用树型目录结构,每个目录表称为一个目录文件。一个目录文件是由目录项组成的。每个目录项包含16B,一个辅存磁盘块(512B)包含32个目录项。在目录项中,第1、2字节为相应文件的外存i节点号,是该文件的内部标识;后14B为文件名,是该文件的外部标识。所以,文件目录项记录了文件内、外部标识的对照关系。根据文件名可以找到辅存i节点号,由此便得到该文件的所有者、存取权、文件数据的地址健在等信息。UNIX的存储介质以512B为单位划分为块,从0开始直到最大容量并顺序加以编号就成了一个文件卷,也叫文件系统。UNIX中的文件系统磁盘存储区分配图如下:0#1#2#K#K+1#K+2#K+3#n#i节点区文件存储区引导区管理区本次课程设计是要实现一个简单的模拟UNIX文件系统。我们在内存中开辟一个虚拟磁盘空间(1MB)作为文件存储器,并将该虚拟文件系统保存到磁盘上(以一个文件的形式),以便下次可以再将它恢复到内存的虚拟磁盘空间中。文件存储空间的管理可采用位示图方法。3. 课程设计任务及要求3.1. 设计任务多用户、多级目录结构文件系统的设计与实现。可以实现下列几条命令login 用户登录logout退出当前用户dir列文件目录creat创建文件delete删除文件open打开文件close关闭文件read读文件write 写文件mkdir创建目录ch改变文件目录rd删除目录树format格式化文件系统quit退出文件系统3.2. 设计要求1) 多用户 :usr1,usr2,usr3,usr8 (1-8个用户) 2) 多级目录:可有多级子目录;3) 具有login (用户登录)4) 系统初始化(建文件卷、提供登录模块)5) 文件的创建:create (用命令行来实现) 6) 文件的打开:open7) 文件的读:read 8) 文件的写:write9) 文件关闭:close 10) 删除文件:delete11) 创建目录(建立子目录):mkdir 12) 改变当前目录:cd13) 列出文件目录:dir14) 退出:logout新增加的功能:15) 删除目录树:rd16) 格式化文件系统:format4. 算法及数据结构4.1. 算法的总体思想本课程设计是要求我们模拟UNIX文件系统功能设计一个虚拟文件系统,依据UNIX文件系统的特点,其设计思想是:申请1M的内存空间来虚拟文件系统,将其以512B每块划分2048块,采用位示图管理文件系统的方法,利用其原理将第1块作为位图区(512B),共有对i节点区和数据块区分别建立位图;每个i节点占16B,每块有512/16=32个i节点,用2、3共两块作为i节点,总共有64个i节点,在位图区占用8B;其余2045块作为数据区(本课设要求只用到512块),在位图区占用接近256B(2045位)。文件系统存储区分配图如下:位图区i节点区数据区位图:用0表示未使用,1表示使用;i节点:文件控制块(FCB),描述文件信息的一个数据结构;数据区:存放用户数据,包括目录文件。位示图用以反映整个存储空间的分配情况,由若干字节构成,每个字节中的每一位对应文件存储器中的一块,“1”状态表示相应块已占用,“0”状态表示该块为空闲。存储块分配时,只要把找到的空闲块所对应的位由 "0" 改为 "1", 而在释放时,只要把被释放的物理块所对应的位由 "1" 改为 " 0 " 即可。分配和释放都可以在内存的位示 图上完成,而且速度较快。磁盘 i 节点利用在内存中生成链表或者数组的方法来生成,并且限制磁盘节点数的最大值。同样内存 i 节点利用链表的方法在内存中生成。同时在往文件中 写或者读的时候我们都是对内存中有内容进行读写。在该文件系统中,规定一个文件最多只能占用2个数据块,这两个数据块可以是不连续的,其块号记录在一个索引块中,该索引块称为inode结构。读入一个文件时,先根据目录找到相应的i节点号,将i节点读入主存i节点,建立打开文件表指向该主存i节点,再将文件内容读入主存数据区。4.2. 系统总体框架图4.3. 系统总体流程图开始文件系统是否建立?在内存中申请1M内存空间将磁盘上的文件系统读入内存YN用户登录模块,输入用户名和密码,可以在程序中设定,不用保存在文件系统中用户名、密码对吗?执行init(),进行初始化操作,进入用户子目录执行command(),对用户输入的命令进行解析和执行。若数据被修改或新建立,则保存主存i节点和数据块的内容到内存的文件系统,并写回磁盘,保存修改。若输入错误命令则显示出错信息。退出用户(logout)吗?用户输入quit吗?结束执行format(),建立文件系统NNNYYY4.4. 各模块功能说明4.4.1format模块功能:格式化文件系统,即初始化文件系统,相当于硬盘的格式化。将其中原有的用户及用户下的文件系统全部还原初始状态,即没有任何用户和目录、文件,也就是按设计的文件系统格式重建新的文件系统。4.4.2 get_blknum和release_blk模块功能:实现i节点的分配和回收;算法:当一个新的文件被建立时,在给该文件分配磁盘存储区之前,应为该文件分配存放该文件的说明信息的磁盘i节点。反之,当从文件系统中删除某个文件时,则要首先删除它的i节点项。4.4.3init()模块功能:进入文件系统算法:初始化用户打开文件系表。在内存中申请一个虚拟存储空间,此空间必须大于或等于可格式化时的空间。将文件系统文件读入虚拟磁盘。4.4.4 quit()模块功能:退出文件系统函数quit()算法:将虚拟磁盘内容保存到磁盘上。释放虚拟磁盘所占据的空间。撤消用用户打开文件表。4.4.5 Creat()模块功能:创建文件用法:creat filename算法:分配一空目录项,分配磁盘块。可用位示图。填写该空目录项。如文件长度(0),文件名,类型等。分配一个用户打开文件表项,并填写相关目录,读写指针=0。4.4.6 open()模块功能:打开文件open()用法:open filename算法:if(该文件已打开or该文件不存在)报错(出错信息)。分配一个用户打开文件表项。4.4.7 close()模块功能:关闭文件close()用法:close filename算法:释放该文件的用户占据的内存空间。清空该文件的用户打开文件表目。4.4.8 write()模块功能:写文件write(fd,buf,len)用法:write filename,需要先打开文件。算法:指定写入内容长度。buf。修改打开文件表读/写指针。修改目录项中的文件长度。4.4.9 read()模块功能:read(fd,buf,len)用法:read filename,需先打开文件。算法:文件信息.修改读/写指针。4.4.10 delete()模块功能:删除文件delete()用法:delete filename算法:若文件不存在,报错。回收磁盘空间。回收目录项。4.5. 该文件系统的数据结构和申明函数/ 用户(20B)typedef structchar user_name10;/ 用户名char password10;/ 密码 User;/ i节点(32B)typedef structshortinum;/ 文件i节点号charfile_name10;/ 文件名chartype;/ 文件类型char user_name10; / 文件所有者shortiparent;/ 父目录的i节点号 shortlength;/ 文件长度shortaddress2;/ 存放文件的地址 Inode;/ 打开文件表(16B)typedef structshort inum;/ i节点号char file_name10;/ 文件名short mode;/ 读写模式(1:read, 2:write, 3:read and write)short offset;/ 偏移量 File_table;/ 申明函数void login(void); 用户登录,如果是新用户则创建用户void init(void); 程序初始化,将所有i节点读入内存int analyse(char *); 输入参数分析,分析用户命令void save_inode(int); 将num号i节点保存到虚拟磁盘文件hd.datint get_blknum(void); 申请一个数据块void read_blk(int); 将i节点号为num的文件读入tempvoid write_blk(int); 将temp的内容写入hd.dat的数据区void release_blk(int); 释放文件块号为num的文件占用的空间void pathset(); 打印当前路径void deltree(int innum); 实现删除目录树函数int check(int); 检查用户权限/ 用户命令处理函数void help(void); 命令提示帮助函数void cd(void); 改变当前目录void dir(void); 显示当前目录下所有文件和目录void mkdir(void); 创建目录void rd(void); 删除目录void creat(void);

注意事项

本文(优秀毕业设计精品模拟UNIX文件系统的设计及实现)为本站会员(M****1)主动上传,金锄头文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即阅读金锄头文库的“版权提示”【网址:https://www.jinchutou.com/h-59.html】,按提示上传提交保证函及证明材料,经审查核实后我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.