可变分区分配与回收——采用最坏算法,操作系统课程设计(6)

2019-03-28 19:47

哈尔滨理工大学课程设计报告

// 调用分配算法 if(option == 0) { firstFit(taskId, size); } else if(option==1){ bestFit(taskId, size); } else

worstFit(taskId, size);

// 显示空闲分区链情况 showSubArea(); } else if(ope == 2) { // 模拟回收内存

printf(\请输入要回收的作业号: scanf(\ freeSubArea(taskId); // 显示空闲分区链情况 showSubArea(); } else if(ope==3){ goto l1;

}

else {

printf(\错误:请输入 0/1/2\\n\ } }

printf(\分配算法模拟结束\\n\ return 0; }

\

哈尔滨理工大学课程设计报告

六、 运行与测试(调试通过的程序,主要测试用例和运行界面截图)

1.测试数据:预设总的内存大小为100k。选择首次适应算法,分别输入作业号及作业的大小(1,200k),(2,200k),(3,155k),(4,445k),然后回收作业2和作业4,最后退出系统。

2.运行截图如下:

1. 主界面:图6

图6

2.选择首次适应算法:图7

图7

3.利用首次适应算法分配内存:图8

哈尔滨理工大学课程设计报告

图8

4.回收内存:图9

哈尔滨理工大学课程设计报告

图9

5.退出系统:图10

图10

七、 收获及改进意见

每一次的实践,都会有很大的收获。做这个题目的时候,就针对此题要解决的几个问题反复思考,重新翻开教科书把相关内容特别是算法原理认真细致的看了一遍,设想会

哈尔滨理工大学课程设计报告

遇到的问题。在内存动态分配程序设计中,最佳适应算法比首次要难一些,要加上对分配后该分区是否能最好地利用的判断。再一个问题是回收时候的合并,对地址的修改不是很有把握。着手写程序后,半天才理清回收的内存和上下邻合并的条件与关系,写此处的代码时,逻辑上比较混乱,反复错误反复修改了很多次才调试正确,这也是花了最多时间才得以正确实现的部分。之前大多用的c语言,对结构体,对象等知识淡忘了很多,这一次的实践让我找回了很多学过的知识点,也弥补了很多的不足之处。逻辑思维也得到了锻炼,写代码也不再像初学的时候那么繁琐,自己都能感觉到那一点点的进步,顿时也觉得充实起来。还有一个难点就是为作业找到最佳空闲区,此处是参照了一些资料后,理清了条件,然后用一个while()两个if()语句循环嵌套就实现了此功能。实践中也发现自身很多的不足,比如上理论课时认为已经理解了的算法原理在用代码实践时,发现还是有模糊和思考不周的地方。

学习着,收获着,并快乐着,这真是我的感触。对于自身不足的地方,我也有了比较清晰的认识,对未来的发展,也有了个参照,将遇到的困难一个个跨过,并最终完成此次课程设计,真的感觉很有收获很有成就感。动手能力也得到了提高,当然,我的设计还有很多的不足之处,有些问题没能很好解决,但通过不断学习和实践,我一定会做的更好。

题目1 进程软中断通信

1.1 题目的主要研究内容及预期达到的目标

实现进程的软中断通信:父进程发信号控制子程序的终止。

1.2 题目研究的工作基础或实验条件

(1)硬件环境:Linux平台。 (2)软件环境:标准C语言。


可变分区分配与回收——采用最坏算法,操作系统课程设计(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:司法考试《刑法》知识点:破坏社会主义市场经济秩序罪每日一练(2

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: