动态分区管理的主存分配模拟设计--最先适应法、最差适应法.docVIP

动态分区管理的主存分配模拟设计--最先适应法、最差适应法.doc

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
动态分区管理的主存分配模拟设计--最先适应法、最差适应法

学 号: 课 程 设 计 课程名称 操作系统 设计题目 动态分区管理的主存分配模拟设计--最先适应法、最差适应法 学 院 计算机科学与技术 专 业 计算机科学与技术 班 级 姓 名 指导教师 2011 年 1 月 18 日 目录: 1任务分析 3 1.1 最先适应法 3 1.2 最差适应法 4 1.3算法的比较 5 2 功能设计 6 2.1 数据结构设计 6 2.2 算法设计 6 2.2.1最先适应算法设计 6 2.2.2 最差适应算法设计 7 2.2.3 内存回收和碎片处理 7 2.2.4 输出设计 7 3开发平台及源程序的主要部分 8 3.1开发平台 8 3.2源程序的主要部分 8 3.2.1最先适应算法 8 3.2.2 最差适应算法设计 10 3.2.3 内存回收和碎片处理 11 4. 测试用例,运行结果与运行情况分析 13 4.1最先适应算法运行结果 13 4.2最差适应算法运行结果 15 5 自我评价与总结 16 5.1设计的优点 16 5.2设计的缺点 16 5.3收获与体会(在编写,调试,执行过程中的经验和教训) 17 5.4对实验题的评价和改进意见 17 6 参考文献 17 课程设计任务书 学生姓名: 王益 专业班级: 计算机科学与技术 0809班 指导教师: 汪祥莉 能够处理以下的情形:随机出现的进程i申请jKB内存,程序能判断是否能分配,如果能分配,要分配的首地址address,要求输出内存使用情况和空闲情况。内存情况输出的格式为:address该分区的首地址Eaddress该分区的尾地址Len 分区长度Process 如果使用,使用的进程号,否则为0i)你认为你完成的设计哪些地方做得比较好或比较出色; ii)什么地方做得不太好,以后如何改正; iii)从本设计得到的收获(在编写,调试,执行过程中的经验和教训); iv)完成本题是否有其他的其他方法(如果有,简要说明该方法); v)对实验题的评价和改进意见,请你推荐设计题目。 时间安排: 设计安排一周:周1、周2:完成程序分析及设计。 周2、周3:完成程序调试及测试。 周4、周5:验收、撰写课程设计报告。 (注意事项:严禁抄袭,一旦发现,抄与被抄的一律按0分记) 指导教师签名: 年 月 日 系主任(或责任教师)签名: 年 月 日 1任务分析 1.1 最先适应法 最先适应法要求可用表或自由链按起始地址递增的次序排列(本次设计用自由链)。该算法的最大特点是一旦找到大于等于所要求内存长度的分区,则结束探索。然后,该算法从所找到的分区啊划出所要求的内存长度分配给用户,并把余下的部分进行合并(如果有相邻空闲区存在)后留存可用表中,但要修改其相应的表项。最先适应算法的流程图如图1所示。 图1 最先适应算法 则在回收的时候将释放的空闲块插入在链表的表头即可,但在本次设计当中用了一个标量为tag来识别空间是否为闲,当tag的值为0时说明其空间是闲的,可以分配给比它空间小的请求分配,如果值为1,说明该块内存正在被别的用户所占用。当所请求的空间比所有单块内存片都要在时,就看看所有的零碎片加起来是否大于或等于请求的空间,如果不满足则内存分配失败;如果满足,就用collecting_debris函数对所有的碎片进行收集,集中在离表头最近的一个碎片,然后调整所有的已经分配的内存的地址,再进行分配。 在本次任务设计中,在内存的回收中,对每个用户提出的内存占用时间作了一个简单的处理,假设其所有对内存的占用时间(从分配成功开始到内存释放),刚好了两个用户对内存请示成功的时间,在本次设计中,在程序中还不停的输出内存的分配的情况,如内存在什么时候分配成功,在什么时候释放内存,等等。 1.2 最差适应法 最差适应算法要求空闲区按其大小递减的顺序组成空闲区可用表或自由链(本次设计用自由链),当用户作业或进程申请一个空闲区时,先检查空闲区可用表或自由链的第一个空闲区的大小是否大于或等于所要求的内存长度,若可用表或自由链的第一个项长度小于所要求的,则分配失败,否则从空闲区可用表或自由链中分配相应的存储空间给用户,然后修改和调整空闲区可用表或自由链。 但在本次设计中,每当有新的用户请求内存时,就首先从链表中先出最大的空闲区来与所请求的空间进行比较,若链表中的最大空闲区大于或等于请求的空间大小,则分配成功,否则,就得作第二次比较,看看所有的零碎片加起来是否大于或等于请求的空间,如果不满足则内存分配失败;如果满足,就用collecting_debris函数对所有的碎片进行收集,集中在离表头最近的一个碎

文档评论(0)

baoyue + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档