主存储器空间的分配与回收讲述.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
闽 南 师 范 大 学 实 验 报 告 班 级 网络一班 学号 1408180124 姓名 傅景 成绩 同组人 实验日期 课程名称:操作系统 实验题目:主存储器空间的分配与回收 实验目的与要求 1. 熟悉主存储器空间的分配与回收过程 实验环境的配置 Windows环境下VC应用程序编程 实验内容与具体步骤 以下代码为补充代码 if(k!=-1j==-1){ free_table[k].length=free_table[k].length+L; used_table[s].address=0; used_table[s].length=0; }else if(k==-1j!=-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; }else if(k!=-1j!=-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 实验心得 本次实验非常有趣,进一步了解到了主存储器空间的分配与回收,这次实验意义非凡。 注:如果填写内容超出表格,自行添加附页。 闽 南 师 范 大 学 实 验 报 告

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档