- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
多用户多目录文件系统(实验报告、完整源代码版)
广东工业大学课程设计任务书
(源代码在附录)
题目名称 多用户多级目录文件系统的实现文件系统
(1)具有login (用户登录)
(2)系统初始化(建文件卷、提供登录模块)
(3)文件的创建: create
(4)文件的打开:open
(5)文件的读:read
(6)文件的写:write
(7)文件关闭:close
(8)删除文件:delete
(9)创建目录(建立子目录):mkdir
(10)改变当前目录:cd
(11)列出文件目录:dir
(12)退出:logout
系统必须可实际演示,选用程序设计语言:
一、设计思想说明 2
1.1设计环境 2
1.2设计思想 2
1.3存储空间管理 2
1.4目录结构 2
二、数据结构 3
2.1虚拟磁盘 3
2.2用户的数据文件 3
2.3目录文件 3
2.4管理目录文件的类 3
2.5管理用户的类 4
三、功能实现 4
3.1登陆系统 4
3.2系统初始化 4
3.3文件的创建 5
3.4文件的打开 5
3.5文件删除 5
3.6文件的读 5
3.7创建目录 5
3.8查看当前目录 5
3.9删除目录 5
3.10返回上一级目录 5
3.11退出 5
四、操作思想 5
五、界面演示 6
5.1登陆界面 6
5.2管理员登陆成功后的界面 6
5.3用户登陆成功后的界面 6
六、系统具体运行演示 7
6.1文件的创建与查看(读文件) 7
6.2目录的创建与查看 7
6.3文件系统空间的查看 7
七、实验体会 8
八、收集的资料及主要参考文献 8
一、设计思想说明
1.1设计环境
a)程序设计语言:C++语言
b)计算机及操作系统:PC机,WindowsXP
c)开发平台:Microsoft Visual C++ 6.0企业版
d)运行平台:PC机,WindowsXP
1.2设计思想
文件系统是操作系统中负责管理和存取文件信息的机构,它具有“按名存取”的功能。文件系统主要实现对具体的文件存取空间的管理、文件的物理结构、目录结构管理和文件操作。
本实验中的文件系统是多用户多级目录的文件系统。实验中定义用户的上限为5个,目录结构采用多级目录结构。
1.3存储空间管理
系统中的数据文件,需要为之分配磁盘空间。采用模拟方法,虚拟磁盘为一个10000大小的一维数组:disk_block[10000],0表示空闲,1表示已分配出去。
使用混合索引分配方式来为存储文件分配所在外存的块号:当文件大小较小时,采用直接地址,索引结点的每项存放文件数据的盘块的盘块号;当文件大小较大时,采用一次间接地址,即一级索引;当文件非常大时,采用多次间接地址,即二级索引。
1.4目录结构
目录结构的组织,关系到文件系统的存取速度、安全性、共享性。为了提高目录的检索速度和文件系统的性能,采用了多目录结构来组织目录,即树形目录结构,主目录称为根目录,数据文件为树叶,其他的目录为树的结点。如下图所示。
二、数据结构
2.1虚拟磁盘,初始化时所有盘块置0
for(i=0;i10000;i++) //初始化所有磁盘块为空闲
disk_block[i]=0;
disk_empty=10000;
2.2用户的数据文件,即树叶
typedef struct UFD //存储文件信息
{
char name[10]; //文件名
int attribute; //属性
int length; //长度
int a[10]; //为文件本身分配10个空间
int *p1; //一级索引,100个空间
int (*p2)[100]; //二级索引,100*100个空间
struct UFD *next; //文件链的下一结点
}UFD;
2.3目录文件,即树结构中树的结点
typedef struct DIR //存储目录信息
{
DIR* above; //上一结点
char name[10]; //目录名
int length; //目录的大小
DIR *next; //下一结点
UFD *File_head; //此目录下的文件指针
DIR *Dir_head; //此目录下目录链表指针
}DIR;
2.4管理目录文件的类,每个用户都是其的对象
class Cuse //定义管理用户目录的类
{
DIR *now; //当前目录
UFD *Fhead; //文件的头结点
DIR *Dhead; //根目录的目录链头结点
char code[10]; //密码
char name[10]; //用户名
int length; //用户空间大小
int status; //是否获得空间
public:
//……//代码
文档评论(0)