计算机系综合性实验。
实验报告 课程名称操作系统实验报告。
实验学期 2013 至 2014 学年第一学期。
学生所在系部计算机与信息管理系。
年级 2011 专业班级计算机102
学生姓名王强黄新潮张蒙
学号 11030082 11030070 11030077
任课教师陆丽娜。
实验成绩。计算机系制。
一个简单的文件系统的详细设计。
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. 主要数据结构。
struct ufd
//用户文件模块。
char filename[32文件名。
int safecode文件保护码。
long lengt**件长度。
*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 selete)//用户登陆,注册函数。
3. void displayufd() 打印用户信息,包括用户的各个文件。
4. void byefile(bool bool)//注销函数,调用次函数用户可以退出系统。
5. bool clearuserfile()/用户要将自己的注册目录从系统彻底删除。
6. void clearusermes()/删除用户全部信息。
7. void deleteuser()/删除用户注册目录的操作。
8. void creatfile()/在当前用户目录下创建文件。
9. void deletefile() 删除当前目录下一个文件的操作。
10. bool querymodelse(bool bool,bool &flag)
/查询其它用户目录下文件的文件。
11. bool querymod(bool bool)//查询权限。
12. bool writeright(int len,bool bool)
/查看是否已经正确地写入到该文件信息中,是则返回真值。
13. void writelengthtofile(int len,bool bool)
/将文件长度写入文件管理模块中。
14. void writefile()/向文件写入信息的操作。
15. void readfile()/读文件函数。
16. void changemod()/修改某文件的执行权限。
17. void execute(int i,int len,int cmdset)//执行命令函数。
18. void command()
/读取用户输入的命令,并将其转换成系统能识别的命令。
5.小组成员及分工。
负责人:1. int logindisplay() 登陆选项操作函数。
2. bool login(int selete)//用户登陆,注册函数。
3. void displayufd() 打印用户信息,包括用户的各个文件。
4. void byefile(bool bool)//注销函数,调用次函数用户可以退出系统。
5. bool clearuserfile()/用户要将自己的注册目录从系统彻底删除。
6. void clearusermes()/删除用户全部信息。
7. int deleteuser()/删除用户注册目录的操作。
8. void creatfile()/在当前用户目录下创建文件。
9. void deletefile() 删除当前目录下一个文件的操作。
10. bool querymodelse(bool bool,bool &flag)//查询其它用户目录下文件的文件。
11. bool querymod(bool bool)//查询权限。
12. bool writeright(int len,bool bool) /查看是否已经正确地写入到该文件信息中,是则返回真值。
13. void writelengthtofile(int len,bool bool)//将文件长度写入文件管理模块中。
14. void writefile()/向文件写入信息的操作。
15. void readfile()/读文件函数。
16. void changemod()/修改某文件的执行权限。
17. int execute(int i,int len,int cmdset)//执行命令函数。
18. void command()/读取用户输入的命令,并将其转换成系统能识别的命令。
文件名: ******_file_
功能: 简单文件管理系统模拟程序
#include<>
#include<>
#include<>
#include<>
#include ""
#include<>
#define null 0
操作系统课程设计
课程设计 河北大学工商学院。装。订。线。操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专 操作系统课程设计。题目 操作系统课程设计 学院工商学院 学部信息科学与工程 专业计算机类 学号 姓名。指导教师。年 6 月 24 日。设备管理 2 2.1设计任务2 2.2设计要求...
操作系统课程设计
银行家算法模拟。系别 班级 组员 银行家算法模拟。1.课程设计目的。通过本次课程设计,加深对最经典的避免死锁的银行家算法的理解,掌握死锁形成必要条件 安全状态等概念的理解,通过用c语言编程模拟该算法,并在windows平台上实现,更好地掌握操作系统的原理及实现方法。2.任务及要求。设n为系统进程的个...
操作系统课程设计
学生实习实训报告。实习类型 操作系统课程设计 学号 0901110005 学生姓名 田兴杰 指导教师 曹春梅 专业班级 信息安全技术0901班 院 部 电子信息系 2011年 1 月 7日。实习实训成绩评定表。目录。目录3 摘要4关键字4 1.1虚拟机简介5 1.1.1 一般意义的虚拟机5 1.1....