操作系统课程设计报告打印.doc
文本预览下载声明
操作系统课程设计报告
模拟文件系统设计
班 级:计0301
学 号:
姓 名:
指导老师:
提交时间:2006-7-11
实验地点:西配楼机房
太原理工大学计算机与软件学院
一、课程设计题目和目的
通过模拟文件系统的实现,深入理解操作系统中文件系统的理论知识。
二、课程设计要求
通过课程设计,要求学生主要掌握如下内容:
1.设计出文件系统中常用的数据结构;
2.理解文件系统的工作流程,给出程序流程图;
3.设计出文件系统中关键的算法;
4.模拟实现二级目录文件系统,并给出一组运行结果。
三、课程设计内容
本课程设计要求模拟采用二级目录结构的磁盘文件系统的文件操作。其主要内容有:
1、采用二级目录结构为主文件目录MFD和用户文件目录UFD。
2、为每个用户设置一张“用户打开文件表”(UOT),用以说明用户当前使用文件的情况。
3、假定文件系统提供的文件操作有建立文件;打开文件;关闭文件;读文件;写文件和撤消文件。
4、用输入命令来模拟用户程序中调用的文件操作,其命令格式和处理要求见指导书。
5、在各命令的实现流程中“寻找空闲块”的工作可以用一个随机数来模拟,取到的随机数即为空闲块号。
四、文件系统实现
1、数据结构设计
通过分析设计题目,具体设计出主要的三个数据结构。
UFD:通过结构体,将文件名,文件属性,记录长度和文件的地址结合在一体。
UOF:同样是通过结构体,将文件名,文件属性,记录长度,当前状态,读指针,写指针以及最后一块的指针结合在一起。
MFD:通过一个类来实现其功能。类中包括用户名,UFD及UOF中的文件个数,以及与用户相对应的UFD和UOF。另外还包括两个初始化函数。
模拟二级目录结构时,第一级为主文件目录MFD,第二级为用户文件目录UFD。假定系统可同时管理N个用户的文件,每个用户最多在磁盘上保存L个文件,则二级目录结构可用如下形式表示:
用户名 用户文件目录
文件名 文件属性 记录长度 文件地址
N L
栏 栏
主文件目录MFD 用户文件目录UFD
整个系统只有一张主文件目录表,但有N张用户文件目录表。用户文件UFD中的“文件属性”规定文件的使用权限为“只可读”或“只可写”或“可读可写”。
可为每个用户设置一张“用户已打开文件表(UOF)”,用以说明该用户当前正在使用文件的情况。如果用最多同时打开或建立S个文件,那么,用户已打开文件表UOF应该有S个登记栏,其结构如下:
文件名 文件属性 记录长度 状态(打开/建立) 读指针 写指针
S
栏
用户请求打开或建立一个文件时,相应的文件操作把在关该文件的信息登记到UOF中,读指针和写指针用于指出对文件的进行存取的当前位置。
2、程序流程设计
1、程序结构框图:
文件系统提供的文件操作有建立文件(create),打开文件(open),关闭文件(close),读文件(read),写文件(write)和撤消文件(delete)。在模拟程序中可从键盘上输入文件操作命令来模拟各用户程序中所调用的各种文件操作,用一个结束命令(end)停止程序的执行,其程序的结构图如下:
2、用输入命令来模拟用户程序中调用的文件操作,这些命令的格式和处理要求如下:
(1).建立文件:create(文件名,记录长度,文件属性)
模拟文件系统进行“建立文件”的处理流程如下:
“建立文件”模拟流程:
(2).打开文件:open(文件名,操作类型)
其中操作类型指出文件打开后用户将对文件进行读还是写。约定操作类型与文
属性不符合或正处于“建立”状态的文件不允许打开,处理流程如下:
“打开文件”模拟流程
(3).读文件:Read(文件名,读文件)
文件打开后,可用“读文件”操作请求读指定文件中的若干记录,既可顺序读写也可随机读。这里约定总是顺序读文件中的记录本,读长度表示本次操作需计的记录个数。处理流程如下:
“读文件”模拟流程:
(4).关闭文件:close(文件名)
对某个文件不需要再读或写时,用户应关闭文件。若关闭一个新建立的文件,则要建立文件的结束标志。对链接文件来说,最后一块中的链接字应为“0”。关闭文件的工作流程如下:
“关闭文件”模拟流程
显示全部