模拟UNIX文件系统的设计及实现

上传人:飞*** 文档编号:32468046 上传时间:2018-02-11 格式:DOC 页数:36 大小:521KB
返回 下载 相关 举报
模拟UNIX文件系统的设计及实现_第1页
第1页 / 共36页
模拟UNIX文件系统的设计及实现_第2页
第2页 / 共36页
模拟UNIX文件系统的设计及实现_第3页
第3页 / 共36页
模拟UNIX文件系统的设计及实现_第4页
第4页 / 共36页
模拟UNIX文件系统的设计及实现_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《模拟UNIX文件系统的设计及实现》由会员分享,可在线阅读,更多相关《模拟UNIX文件系统的设计及实现(36页珍藏版)》请在金锄头文库上搜索。

1、*实践教学*兰州理工大学计算机与通信学院2008 年秋季学期操作系统原理课程设计题 目: 模拟 UNIX 文件系统专业班级: 计算机一班 姓 名: 张树伟 学 号: 06240121 指导教师: 刘嘉 成 绩: 第 1 页 总 36 页目录1. 摘要 .22. 问题描述 .23. 设计目的 .24. 设计要求 .25. 详细设计 .25.1 界面设计 .35.1 算法设计. .36. 设计总结 .37. 参考文献 .48. 致谢 .49. 附录 .22第 2 页 总 36 页模拟 UNIX 文件系统的设计及实现1. 课程设计内容多用户的多级目录的文件系统设计。2. 概述 UNIX 采用树型目录

2、结构,每个目录表称为一个目录文件。一个目录文件是由目录项组成的。每个目录项包含 16B,一个辅存磁盘块(512B)包含32 个目录项。在目录项中,第 1、2 字节为相应文件的外存 i 节点号,是该文件的内部标识;后 14B 为文件名,是该文件的外部标识。所以,文件目录项记录了文件内、外部标识的对照关系。根据文件名可以找到辅存 i 节点号,由此便得到该文件的所有者、存取权、文件数据的地址健在等信息。UNIX 的存储介质以 512B 为单位划分为块,从 0 开始直到最大容量并顺序加以编号就成了一个文件卷,也叫文件系统。UNIX 中的文件系统磁盘存储区分配图如下:0# 1# 2# K# K+1# K

3、+2# K+3# n#本次课程设计是要实现一个简单的模拟 UNIX 文件系统。我们在内存中开辟一个虚拟磁盘空间(1MB)作为文件存储器,并将该虚拟文件系统保存到磁盘上 (以一个文件的形式),以便下次可以再将它恢复到内存的虚拟磁盘空间中。文件存储空间的管理可采用位示图方法。3. 课程设计任务及要求3.1. 设计任务多用户、多级目录结构文件系统的设计与实现。可以实现下列几条命令login 用户登录logout 退出当前用户dir 列文件目录creat 创建文件delete 删除文件open 打开文件close 关闭文件read 读文件write 写文件mkdir 创建目录ch 改变文件目录rd 删

4、除目录树i 节点区 文件存储区引导区 管理区第 3 页 总 36 页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) 列出文件目

5、录:dir 14) 退出: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 节点,在

6、位图区占用 8B;其余 2045 块作为数据区(本课设要求只用到512 块) ,在位图区占用接近 256B(2045 位)。文件系统存储区分配图如下:位图区 i 节点区 数据区位图:用 0 表示未使用,1 表示使用;i 节点:文件控制块(FCB),描述文件信息的一个数据结构;数据区:存放用户数据,包括目录文件。位示图用以反映整个存储空间的分配情况,由若干字节构成,每个字节中的每一位对应文件存储器中的一块, “1”状态表示相应块已占用, “0”状态表示该块为空闲。存储块分配时,只要把找到的空闲块所对应的位由 0 改为 1, 而在释放时,只要把被释放的物理块所对应的位由 1 改为 0 即可。分配和

7、释放都可以在内存的位示 图上完成,第 4 页 总 36 页而且速度较快。磁盘 i 节点利用在内存中生成链表或者数组的方法来生成,并且限制磁盘节点数的最大值。同样内存 i 节点利用链表的方法在内存中生成。同时在往文件中 写或者读的时候我们都是对内存中有内容进行读写。在该文件系统中,规定一个文件最多只能占用 2 个数据块,这两个数据块可以是不连续的,其块号记录在一个索引块中,该索引块称为 inode 结构。读入一个文件时,先根据目录找到相应的 i 节点号,将 i 节点读入主存 i 节点,建立打开文件表指向该主存 i 节点,再将文件内容读入主存数据区。4.2. 系统总体框架图4.3. 系统总体流程图

8、第 5 页 总 36 页开始文件系统是否建立?在内存中申请 1M 内存空间将磁盘上的文件系统读入内存YN用户登录模块,输入用户名和密码,可以在程序中设定,不用保存在文件系统中用户名、密码对吗?执行 init(),进行初始化操作,进入用户子目录执行 command(),对用户输入的命令进行解析和执行。若数据被修改或新建立,则保存主存 i 节点和数据块的内容到内存的文件系统,并写回磁盘,保存修改。若输入错误命令则显示出错信息。退出用户(logout)吗?用户输入 quit 吗?结束执行 format(),建立文件系统NNNYYY4.4. 各模块功能说明4.4.1format 模块功能:格式化文件系

9、统,即初始化文件系统,相当于硬盘的格式化。将其中原有的用户及用户下的文件系统全部还原初始状态,即没有任何用户和目录、文件,也就是按设计的文件系统格式重建新的文件系统。4.4.2 get_blknum 和 release_blk 模块功能:实现 i 节点的分配和回收;算法:当一个新的文件被建立时,在给该文件分配磁盘存储区之前,应为该文件分配存放该文件的说明信息的磁盘 i 节点。反之,当从文件系统中删除某个文件时,则要首先删除它的 i 节点项。4.4.3init()模块功能:进入文件系统算法:初始化用户打开文件系表。在内存中申请一个虚拟存储空间,此空间必须大于第 6 页 总 36 页或等于可格式化

10、时的空间。将文件系统文件读入虚拟磁盘。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

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号