30690201操作系统实验报告Word格式.docx
- 文档编号:19010186
- 上传时间:2023-01-03
- 格式:DOCX
- 页数:11
- 大小:362.77KB
30690201操作系统实验报告Word格式.docx
《30690201操作系统实验报告Word格式.docx》由会员分享,可在线阅读,更多相关《30690201操作系统实验报告Word格式.docx(11页珍藏版)》请在冰豆网上搜索。
实验题目
DOS的文件分配表策略的模拟实现
成绩
教师签名
1)、需求分析:
通过模拟DOS的文件分配表策略的实现,理解DOS管理磁盘空闲空间和文件系统空间的方法。
2)、概要设计:
<
1>
程序中定义的一些量:
#defineRequest_num13//循环次数
usingnamespacestd;
intFAT[30][10];
intiname=1;
intLT_length=0;
intLN_length=0;
typedefstructFile{
intfilename;
//文件名
intfilesize;
//簇数
intstart;
//起始
structFile*next;
}File,*FileLink;
FileLinkLT,LN,p;
LT=(FileLink)malloc(sizeof(File));
记录已分配入磁盘的文件链表
LN=(FileLink)malloc(sizeof(File));
记录已申请但未分配入磁盘的文件链表
2>
本程序的13个模块:
1——main()主程序
2——Initialize()初始化FAT数组
3——CheckSpace(intsize)检查数组空闲空间大小
4——xRandom(intlength)随机产生删除的结点
(即随机产生删除第几个文件)
5——Random()随机生成文件大小
6——Allocate(intsize)分配簇
7——Recycle(intstart,intsize)回收空间,释放簇
8——Modification(FileLink&
L)修改(增加/减少)簇
9——FileInsert(FileLink&
L,FileLinkp)链接链表插入
结点(插入文件目录项)
10——FileDelete(FileLink&
L,intfflag)删除结点
11——FileCreate(FileLink&
p)生成新结点
12——FileAllocation(FileLink&
LT,FileLink&
LN)分配结点
13——Show(FileLink&
L)显示输出
3>
主程序的流程图
4>
各程序模块之间的层次关系:
3)、详细设计:
1——main()
主程序,负责控制整个程序,以及调用所有的子程序,提示输入之类的,无什么好说的!
2——Initialize()
初始化FAT数组的函数,很小,不说!
3——CheckSpace(intsize)
检查数组空闲空间大小的函数,很小,也不说!
4——xRandom(intlength)
随机产生删除的结点
(即随机产生删除第几个文件)的函数,也就是调用rand()方法生成一些随机数,再删除。
5——Random()
随机生成文件大小的函数,也就是调用rand()方法生成一些随机数来用。
6——Allocate(intsize)
分配簇的函数,也就是设置一些标志位,再利用循环来放入到FAT空间中。
也没甚好说的。
7——Recycle(intstart,intsize)
回收空间,释放簇的函数。
也就是用循环查看FAT空间的值,来判断是否可回收。
8——Modification(FileLink&
L)
修改(增加/减少)簇的函数。
也就是调用FileDelete()、CheckSpace(intsize)、Allocate(intsize)、xRandom(intlength)等函数完成问题。
十分复杂,时间不多,就不说了。
L,FileLinkp)
链接链表插入结点(插入文件目录项)的函数,也就是用循环来实现插入结点的函数。
L,intfflag)
删除结点函数,
也就是用循环把需要删除的结点找出来,设标志位,再调用recycle的函数实现回收空间与释放簇。
p)
生成新结点的函数,也就是用Random()随机生成来实现。
LN)
分配结点的函数,申请空间,查看空间是否已满,未满则分配,已满则等待分配,通过调用FileCreate(FileLink&
p)、CheckSpace(intsize)、Allocate(intsize)、FileInsert(FileLink&
L,FileLinkp)来实现。
时间关系,不再多说。
显示输出的函数,根据以上的函数输出结果,其间可利用循环来实现。
4)、调试分析:
(1)调试过程中遇到的问题是如何解决的以及对设计与实现的讨论和分析
问题的话,上一下网又或者问一下同学就大概可以解决了,毕竟大家都是做这个。
要讨论的,上面都指出了,所以就不说了。
程序的结构很重要,如果加入太多的括号而又不多弄几个回车的话,连我自己都会犯迷糊,这一点我要注意了。
(2)算法的时间复杂性和改进设想
时间复杂度这个概念我不太清楚,一般都是O(n2)吧!
至于改进的设想的话,有一点,就是把程序的界面弄得更好看一些,但因为能力问题,再加上时间紧迫,逼不得已,只好就这样了事。
其他的改进设想暂时还想不到,因为想到的话就会把它运用到我的程序中了,不是吗?
(3)设计过程的经验和体会
经验嘛,就是把程序设计成多个模块要比把程序放到一个主函数里来的简单明了。
大一的时候我都是把所有的程序代码都放到main函数之中的说!
还有就是,还是在程序中加入注释比较好,因为即使是自己,要在一段长的代码中找出编到那里还是不容易的,因为程序不是在一两天就能编好的东西……
经过这次操作系统的实验,我再次回想起c语言到底是如何使用的,因为毕竟都这么久没有用过了,生疏是当然的了。
以前,我还没想过用c语言还能编出这种程序出来,毕竟我的c语言底子很薄,记忆力又差,想到的都不是什么了不起的东西。
但这次实验之后,我又再次感觉到c语言的强大了,即使自己的c语言编程能力也不比之前好多少。
(4)实现过程中出现的主要问题和解决方法
这个实验到底要做什么东西就是一开始我所面对的主要问题了。
不过经过了查书的阶段之后,问题就转化成如何把这个程序实现出来了。
还是用了c语言的那套main占主要而其他子函数占一角的策略来编。
另一个问题就是我的编程水平的问题,做成这样也就是我的极限了,当然问同学就成了家常便饭了(这也就是我的解决方法了)。
5)、用户使用说明:
本程序的功能就是一个DOS的文件分配表策略的模拟实现。
程序一开始就提示你按任意键继续,也没甚好说的,跟着提示按就对了……
6)、测试与运行结果:
主目录
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 30690201 操作系统 实验 报告