主存储器空间的分配与回收.docx
《主存储器空间的分配与回收.docx》由会员分享,可在线阅读,更多相关《主存储器空间的分配与回收.docx(8页珍藏版)》请在冰豆网上搜索。
主存储器空间的分配与回收
闽南师范大学
实验报告
班级网络一班学号1408180124姓名傅景成绩
同组人实验日期
课程名称:
操作系统
实验题目:
主存储器空间的分配与回收
实验目的与要求
1.熟悉主存储器空间的分配与回收过程
实验环境的配置
Windows环境下VC应用程序编程
实验内容与具体步骤
闽南师范大学实验报告
以下代码为补充代码
if(k!
=-1&&j==-1){
free_table[k].length=free_table[k].length+L;
used_table[s].address=0;
used_table[s].length=0;
}elseif(k==-1&&j!
=-1){
free_table[j].address=S;
free_table[j].length=free_table[j].length+L;
used_table[s].address=0;
used_table[s].length=0;
}elseif(k!
=-1&&j!
=-1){
free_table[k].length=free_table[k].length+L+free_table[j].length;
free_table[j].length=0;
free_table[j].address=0;
free_table[j].flag=0;
used_table[s].address=0;
used_table[s].length=0;
}else{
free_table[cur].address=S;
free_table[cur].length=L;
free_table[cur++].flag=1;
used_table[s].address=0;
used_table[s].length=0;
}
实验操作及结果:
查看初始空闲区和工作区的状态,截图所示
现添加作业c,长度200
查看结果:
继续添加作业b,长度100和作业a,长度50
查看工作区、空闲区剩余可分配
情况一:
即存在上邻也存在下邻的情况,以及回收后相邻空闲区合并
按c、b、a顺序依次回收,结果如图
回收c
回收b
发现回收b时存在下邻,合并得到空闲区长度为300
回收a
以上结果为同时存在上邻和下邻,空闲区将合并回收后相邻的想部分,得到如图结果
情况二:
既没有上邻也没有下邻时,单独回收
按b、c、a顺序回收,实验结果如下:
先回收b
实验内容与具体步骤
该实验表明,先回收b时,既不存在上邻也不存在下邻,所以此时单独回收b,如图所示回收空闲区长度刚好等于b作业的长度
回收c
该次回收存在上邻,合并后结果如上
回收a
合并相邻空闲区
此时工作区没有任何作业
实验内容与具体步骤
测试三:
当添加作业时某一可用空闲区分配后剩余的长度小于最小空闲区长度(避免过多碎片存在)时,将不对该空闲区进行分割直接分配给作业
添加作业c,长度100000
添加作业b,长度2350
由以上截图可以看出,当空闲区减去作业长度后小于等于最小空闲区长度(100)时,将不进行分割直接分配给该作业工作使用,从第一张图可以看出b的实际工作需要长度为2350,而第二张图说明了系统将剩余的空闲区不进行分割分配给了b,长度为2400
接下来进行回收,回收b
将长度为2400的空闲区全部回收
回收c
实验心得
本次实验非常有趣,进一步了解到了主存储器空间的分配与回收,这次实验意义非凡。
注:
如果填写内容超出表格,自行添加附页。