- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TONGJI UNIVERSITY
《操作系统》
课程设计报告
实验名称 二级文件系统设计 姓名 夏荣艳(040678) 学院(系) 电子与信息工程学院计算机系 专 业 计算机科学与技术 日 期 2007年8月16日
摘要
该文件设计旨在
1、掌握文件系统的工作原理,对文件系统的静态结构进行模拟
2、对文件系统的动态的操作过程 3、了解缓冲、层作用在文件系统中的重要体现
它实现的功能如下:
多用户创建、删除、登录、显示用户列表
创建目录、删除目录
创建文件、删除文件
打开文件、关闭文件
读文件、写文件。
目录
一、实验原理及知识准备 4
二、需求分析 6
三、总体设计 7
四、详细设计 9
4.1、数据结构设计 9
4.2、模块设计 10
4.2.1、系统管理模块 10
4.2.2、用户管理模块 14
4.2.3、目录管理模块 17
4.2.4、文件管理模块 21
五、测试及存在的问题 24
六、参考文献 27
一、实验原理及知识准备
文件管理系统:
操作系统中负责管理和存取文件信息的软件机构成为文件管理系统。它给用户提供了一种简便统一的存取和管理信息的方法,一般的文件系统应该具有以下几种功能:对文件进行增删操作、读写操作、对存放文件的空间进行管理,为各个文件自动分配必要的物理存储空间、按文件名对文件进行存取、向用户提供是用文件系统的接口。
目录结构:
文件系统的一个重要功能就是按文件名对所有文件进行管理,实现从文件符号到文件实体的映照。而实现这种功能的主要结构就是文件目录。本实验进行的是二级文件系统结构,所以主要说下多用户情况下的二级目录结构。
二级目录结构:
二级目录结构把目录分成主文件目录(MFD)和用户文件目录(UFD)两级。主文件目录表中的每一项包括以下两个内容:用户名和该用户文件目录(或称子目录)所在存储区的物理位置。而用户文件目录表中的每一项则对应一个文件。如下图所示:
当一个用户开始使用文件系统时,系统为其在主文件目录开辟一项,登记上他的用户名,并且为他准备好一个存放在文件目录的存储区,然后把该区域的其实地址填写到主文件目录项中。然后每当该用户创建一个新文件时,文件系统先按其用户名从主文件目录中找到其文件目录的起始地址,然后再其中为新文件建立一目录项。每当用户用文件名访问他的某个文件时,也是先按用户名从主文件目录中查找到他的文件目录的起始地址,并按文件名从中找到相应目录项。当要取消一个文件时,也先执行上述操作找到相应目录项,然后取消该项并释放该文件占用的其他存储资源。
在二级文件目录结构中,不同用户可以使用相同的文件名,表示他们各自拥有的一个文件,不会产生混淆。
Unix6文件系统基本结构及基本概念:
A、卷结构:
一个卷实际上就是一张逻辑磁盘,磁盘中存储的信息一块为单位(512字节/块)。本试验用某个大文件存储整个卷中的所有信息。
B、inode:
每个文件实体有一个inode, 目录的信息载体也是文件。因此,每个目录
亦有一个inode与之对应。inode实际是文件控制块,登记有关此文件存储
在卷中的位置和其它与使用有关的信息。
C、目录项:
D、每个目录对应一个目录文件,其中登记着该目录属下所有文件和子目录
的目录项。
UNIX6用于提高文件系统性能的磁盘缓冲区管理技术。
二、需求分析
(1)文件系统安装、卸载命令
(2)用户添加、删除、登陆、显示命令
(3)目录创建、删除命令
(4)文件创建、删除、打开命令
(5)多用户登录功能
(6)文件、目录权限分配
(7)格式化文件系统命令
三、总体设计
根据第一部分对文件系统原理的理解,真正的文件系统在对外存进行管理时,会涉及到许多有关硬件、设备管理方面的底层技术。在这里由于本设计的宗旨是要获得对文件系统的更好的理解,所以采用内存来模拟外存的方式。这样就可以不用考虑硬件等的技术而将重点放在数据结构合算法的实现上面。以及如下的需求分析,
文件系统可用VC6.0的MFC来实现模拟机制。文件系统结构可分为四个大模块,10个小模块。
详细的函数信息如下:
四、详细设计
4.1数据结构设计
1、用户和口令数据结构
// 用户和口令数据结构
typedef struct {
BYTE UserName[12] ; // 用户名
BYTE Pwd[12] ; // 口令
BYTE bReserve[8] ; // 保留
} USER ;
typedef USER User ;
typedef USER* p_User ; struct pwd
2、 文件目录项结构
typedef struct {
BYT
文档评论(0)