主存空间的分配与回收—
首次适应法
This manuscript was revised by the office on December 10, 2020.
南通大学操作系统实验课
实验报告
学生姓名
所在院系
专业
学号
指导教师
南通大学
2014年 5 月 16 日主存空间的分配与回收
——首次适应法
一、实验目的
主存是中央处理机能直接存取指令和数据的存储器,能否合理而有效地使用它,在很大程度上将影响整个计算机系统的性能。
本实验主要熟悉主存的管理方法以及相应的分配与回收算法。
所谓分配,就是解决多道程序或多进程如何共享主存空间的问题,以便各个进程能获得所希望的主存空间,正确运行。
所谓回收,就是当进程运行完成时,将其所占用的主存空间归还给系统。
二、实验要求
采用空闲区链法管理空闲区,并增加已分配区表。
分配算法采用首次适应法。
三、设计思路:
(1)采用空闲区链法管理空闲区,并增加已分配区表。
分配算法采用首次适应法(内存空闲区的地址按照从小到大的自然顺序排列),实现内存的分配与回收。
(2)设计一个进程申请序列以及进程完成后的释放顺序,实现主存的分配与回收。
(3)进行分配时应该考虑这样3种情况:进程申请的空间小于、等于或大于系统空闲区的大小。
回收时应该考虑这样4种情况:释放区上邻、下邻、上下都邻和都不邻接空闲区。
(4)每次的分配与回收都要求把记录内存使用情况的各种数据结构的变化情况以及各进程的申请、释放情况显示出来。
四、主要思想
(1)输入主存空间的最大长度n创建最大长度总和为n的若干空闲区的主存空闲区链;
(2)输入待存作业的长度x,从链头开始找第一个合适作业的空闲区:分区长度小于x时,指针后移,继续寻找;分区长度等于x时,分配空间,
修改作业分区;分区长度大于x时,分配空间,修改分区数据。
五、流程图
1.空闲区链的首次适应算法分配流程图
2.空闲区链的首次适应算法回收流程图
六、调试结果
1.内存的分配
2.内存的回收
3.内存清空
七、总结与感悟
说实话我操作系统学得不是很好,一开始看到题目觉得自己要完成这个实验有些难度。
好在老师提醒书上有另一道类似题目的程序代码,另外书上也有首次适应法的流程图,可以给我们一些提示。
之后我也参考了网上的相关资料,看看别人是如何实现的,他们都是怎么样的思路和方法,与我一开始的想法相比,比我精妙在哪里。
最后自己调试时,遇到了许许多多问题和错误,请教了学得比较好的同学、经过不断的修改和完善之后,终于做完实验。
这次的实验使我了解到,平时对知识的积累相当重要,同时也要注重课上老师的讲解,老师在课上的延伸是课本上所没有的,这些知识对于我们对程序的编写有很大的作用,同时,编程也要求我们有足够的耐心,细细推敲。
越着急可能就越无法得到我们想要的结果,遇到不会的问题要多多请教,知识是在实践与向别人请教的过程中积累的,所以问是至关重要的,只要肯下功夫很多东西都是可以完成的。
操作系统这门课不但重要而且十分有用,我一定要下功夫把这门课学好。