一个简单的文件系统的详细设计操作系统课程设计.docx
- 文档编号:1731510
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:53
- 大小:505.96KB
一个简单的文件系统的详细设计操作系统课程设计.docx
《一个简单的文件系统的详细设计操作系统课程设计.docx》由会员分享,可在线阅读,更多相关《一个简单的文件系统的详细设计操作系统课程设计.docx(53页珍藏版)》请在冰豆网上搜索。
一个简单的文件系统的详细设计操作系统课程设计
计算机系综合性实验
实验报告
课程名称操作系统实验报告
实验学期2013至2014学年第一学期
学生所在系部计算机与信息管理系
年级2011专业班级计算机102
学生姓名王强黄新潮张蒙
学号110300821103007011030077
任课教师陆丽娜
实验成绩
计算机系制
一个简单的文件系统的详细设计
一、实验目的
(1)阅读并调试一个简单的文件系统,模拟文件管理的工作过程。
从而对各种文件操作命令的实质内容和执行过程有比较深入的了解。
(2)了解设计一个n个用户的文件系统,每个用户可以保存M个文件。
用户在一次运行中只能打开一个文件,对文件必须设置保护措施,且至少有create、delete、open、close、read、write等命令。
二、实验要求
1、根据流程图阅读所给文件系统源程序,并对源程序加以注释(注释量达70%以上)。
2、修改、完善该系统,指出程序的bug。
三、文件系统功能设计
1.功能设计
该文件系统是一个多用户、多任务的文件系统。
对用户和用户的文件数目并没有上限。
也就是说该系统允许任何用户申请空间,而且在其目录下的文件数目并不做任何的限制。
该系统可以支持的操作命令如下:
①bye——用户注销命令。
当使用该命令时,用户退出系统,注销该用户功能设计并回到登陆界面。
命令格式:
bye
②close——删除用户注册信息命令。
执行该命令后,用户在系统中的所有信息,包括该用户目录下的所有文件都被删除。
命令执行完成后返回登陆界面。
命令格式:
close
③create——在当前目录下创建一个文件,且该文件不能跟当前已有的文件重名。
该文件的管理信息登记在用户文件信息管理模块中。
执行完该命令后回到执行命令行。
命令格式:
create>file1
其中:
“>”符为提示符,file1为要创建的文件名。
④delete——删除当前用户目录下的一个文件,命令执行完毕返回至命令行。
命令格式:
delete>file1
其中:
file1为要删除的文件名。
⑤list——显示当前注册目录下的所有文件信息,包括文件名、文件长度、文件操作权限。
命令格式:
list
⑥chmod——改变某个文件的执行权限,但前提是该文件是该用户目录下的文件。
命令格式:
chmod>file1。
其中:
file1为要授权的文件名。
⑦open——在window界面下打开某个文件。
执行该命令后,文件file1将用在windows界面下的文件形式打开。
用户可以在这个方式中对文件进行修改,并将修改后的内容保存。
命令格式:
open>file1
其中:
file1为要打开的文件名。
⑧read——读文件信息。
将文件信息读入并显示在终端上。
命令格式:
read>file1
其中:
file1为要读的文件名。
⑨write——向某个文件写入新的信息。
用户可以选择用覆盖原来内容的方式或和在文件的末尾追加新信息的方式写入信息。
当要退出时输入“#”即可。
(2)系统采用二级文件目录。
设置主目录(MFD)和用户文件目录(UFD),分别以文件的方式保存在磁盘中。
在主目录中有注册用户的用户名和另一标志该用户目录下是否有文件的指针标记。
用户文件目录采用用户名作为文件名保存于磁盘,以便检索时方便对应。
在用户文件目录中保存着该目录下所有文件的文件名称、保护码、文件长度。
(3)该系统大量使用高级语言中的文件操作函数,所以能实际看到文件的创建、写入、读出、删除等效果。
2.功能设计实现总体流程
3.主要数据结构
structUFD
{//用户文件模块
charfilename[32];//文件名
intsafecode;//文件保护码
longlength;//文件长度
}*curfile=NULL;
这个是用户文件模块数据结构,结构体的名字是:
UFD,在结构体里面定义了三个成员,filename,safecode,length,分别用于存储用户文件的名字,文件保护码,文件的长度,*curfile=NULL;,这是一个结构体类型的指针,开始初始化为NULL.
structMFD
{//主文件模块
charusername[32];//存放用户名
boolfilepoint;
//用户目录下的文件指针,false表示目录为空,true为该用户目录中有文件
}*curuser=NULL,*elseuser=NULL;
这个是主文件模块的数据结构,有两个成员,username,filepoint,分别用于存放用户名,用户目录下面的文件指针.*curuser=NULL,*elseuser=NULL;这两个是主文件的结构体变量,用于访问结构体里面的数据成员
4.主要功能模块
1.intLoginDisplay()//登陆选项操作函数
2.boolLogin(intSELETE)//用户登陆,注册函数
3.voidDisplayUFD()//打印用户信息,包括用户的各个文件
4.voidByeFile(boolBOOL)//注销函数,调用次函数用户可以退出系统
5.boolClearUserFile()//用户要将自己的注册目录从系统彻底删除
6.voidClearUserMes()//删除用户全部信息
7.voidDeleteUser()//删除用户注册目录的操作
8.voidCreatFile()//在当前用户目录下创建文件
9.voidDeleteFile()//删除当前目录下一个文件的操作
10.boolQueryModElse(boolBOOL,bool&flag)
//查询其它用户目录下文件的文件
11.boolQueryMod(boolBOOL)//查询权限
12.boolWriteRight(intlen,boolBOOL)
//查看是否已经正确地写入到该文件信息中,是则返回真值
13.voidWriteLengthToFile(intLen,boolBOOL)
//将文件长度写入文件管理模块中
14.voidWriteFile()//向文件写入信息的操作
15.voidReadFile()//读文件函数
16.voidChangeMod()//修改某文件的执行权限
17.voidExecute(inti,intlen,intcmdset)//执行命令函数
18.voidCommand()
//读取用户输入的命令,并将其转换成系统能识别的命令
5.小组成员及分工
负责人:
姓名
模块
黄新潮
组长分配任务,总结实验心得,分析流程图,给组员讲解
王强
对源程序加以注释、修改
张蒙
对源程序读取,运行,截图,完善
四、文件系统功能模块详细设计流程图
1.intLoginDisplay()//登陆选项操作函数
2.boolLogin(intSELETE)//用户登陆,注册函数
3.voidDisplayUFD()//打印用户信息,包括用户的各个文件
4.voidByeFile(boolBOOL)//注销函数,调用次函数用户可以退出系统
5.boolClearUserFile()//用户要将自己的注册目录从系统彻底删除
6.voidClearUserMes()//删除用户全部信息
7.intDeleteUser()//删除用户注册目录的操作
8.voidCreatFile()//在当前用户目录下创建文件
9.voidDeleteFile()//删除当前目录下一个文件的操作
10.boolQueryModElse(boolBOOL,bool&flag)//查询其它用户目录下文件的文件
11.boolQueryMod(boolBOOL)//查询权限
12.boolWriteRight(intlen,boolBOOL)//查看是否已经正确地写入到该文件信息中,是则返回真值
13.voidWriteLengthToFile(intLen,boolBOOL)//将文件长度写入文件管理模块中
14.voidWriteFile()//向文件写入信息的操作
15.voidReadFile()//读文件函数
16.voidChangeMod()//修改某文件的执行权限
17.intExecute(inti,intlen,intcmdset)//执行命令函数
18.voidCommand()//读取用户输入的命令,并将其转换成系统能识别的命令
五、实验运行结果
/*****************************************************************
*文件名:
Simple_file_system.c
*功能:
简单文件管理系统模拟程序
*******************************************************************/
#include
#include
#include
#include
#include"conio.h"
#include
#defineNULL0
#definekeynum10
#definegetspace(type)(type*)malloc(sizeof(type))//宏定义申请内存
charcmd[64];//存放用户输入命令
charbuffer[36];//
charuser[32];//存放当前登陆的用户名
typedefcharALFA[12];
ALFAKWORD[keynum];
//------------------------------------------------------------------------------------------------
structUFD{//用户文件管理模块
charfilename[32];//文件名
intsafecode;//文件保护码
longlength;//文件长度
}*curfile=NULL;
//------------------------------------------------------------------------------------------------
structMFD{//用户登陆信息管理模块
charusername[32];//用户名
boolfilepoint;//用户目录下的文件指针,false表示目录为空,true为该用户目录中有文件
}*curuser=NULL,*elseuser=NULL;
typedefUFDUFD;//重命名
typedefMFDMFD;
voidmain();
//------------------------------------------------------------------------------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一个 简单 文件系统 详细 设计 操作系统 课程设计