- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一個简单的文件系统的详细设计稿操作系统课程设计稿
计算机系综合性实验
实 验 报 告
课程名称 操作系统实验报告
一个简单的文件系统的详细设计
一个简单的文件系统的详细设计
一、实验目的
(1)阅读并调试一个简单的文件系统,模拟文件管理的工作过程。从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。
(2)了解设计一个n个用户的文件系统,每个用户可以保存M个文件。用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有create、delete、open、close、read、write等命令。
二、实验要求
1、根据流程图阅读所给文件系统源程序,并对源程序加以注释(注释量达70%以上)。
2、修改、完善该系统,指出程序的bug。
三、文件系统功能设计
1. 功能设计
该文件系统是一个多用户、多任务的文件系统。对用户和用户的文件数目并没有上限。也就是说该系统允许任何用户申请空间,而且在其目录下的文件数目并不做任何的限制。
该系统可以支持的操作命令如下:
① bye——用户注销命令。当使用该命令时,用户退出系统,注销该用户功能设计并回到登陆界面。
命令格式: bye
② close——删除用户注册信息命令。执行该命令后,用户在系统中的所有信息,包括该用户目录下的所有文件都被删除。命令执行完成后返回登陆界面。
命令格式:close
③ create——在当前目录下创建一个文件,且该文件不能跟当前已有的文件重名。该文件的管理信息登记在用户文件信息管理模块中。执行完该命令后回到执行命令行。
命令格式:createfile1
其中:“”符为提示符,file1为要创建的文件名。
④ delete——删除当前用户目录下的一个文件,命令执行完毕返回至命令行。
命令格式:deletefile1
其中:file1为要删除的文件名。
⑤ list——显示当前注册目录下的所有文件信息,包括文件名、文件长度、文件操作权限。
命令格式:list
⑥ chmod——改变某个文件的执行权限,但前提是该文件是该用户目录下的文件。
命令格式:chmodfile1。
其中:file1为要授权的文件名。
⑦ open——在window界面下打开某个文件。执行该命令后,文件file1将用在windows界面下的文件形式打开。用户可以在这个方式中对文件进行修改,并将修改后的内容保存。
命令格式:openfile1
其中:file1为要打开的文件名。
⑧ read——读文件信息。将文件信息读入并显示在终端上。
命令格式:readfile1
其中:file1为要读的文件名。
⑨ write——向某个文件写入新的信息。用户可以选择用覆盖原来内容的方式或和在文件的末尾追加新信息的方式写入信息。 当要退出时输入“#”即可。
(2)系统采用二级文件目录。设置主目录(MFD)和用户文件目录(UFD),分别以文件的方式保存在磁盘中。在主目录中有注册用户的用户名和另一标志该用户目录下是否有文件的指针标记。用户文件目录采用用户名作为文件名保存于磁盘,以便检索时方便对应。在用户文件目录中保存着该目录下所有文件的文件名称、保护码、文件长度。
(3)该系统大量使用高级语言中的文件操作函数,所以能实际看到文件的创建、写入、读出、删除等效果。
2. 功能设计实现总体流程
3. 主要数据结构
struct UFD
{//用户文件模块
char filename[32]; //文件名
int safecode; //文件保护码
long length; //文件长度
}*curfile = NULL;
这个是用户文件模块数据结构,结构体的名字是:UFD,在结构体里面定义了三个成员,filename,safecode,length,分别用于存储用户文件的名字,文件保护码,文件的长度, *curfile = NULL;,这是一个结构体类型的指针,开始初始化为NULL.
struct MFD
{//主文件模块
char username[32]; //存放用户名
bool filepoint;
//用户目录下的文件指针,false表示目录为空,true为该用户目录中有文件
}*curuser = NULL,*elseuser=NULL;
这个是主文件模块的数据结构,有两个成员,username,filepoint,分别用于存放用户名,用户目录下面的文件指针. *curuser = NULL,*elseuser=NULL;这两个是主文件的结构体变量,用于访问结构体里面的数据成员
4. 主要功能模块
1. int LoginDisplay() //登陆选项操作函数
2. bool Login(int
文档评论(0)