操作系统课程设计-内存管理.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE1 / NUMPAGES26 仲恺农业工程学院 课程设计报告 课程名称:操作系统 实验题目:内存管理 院 系:信息科学与技术学院 班 级: 姓 名: 学 号: 二○十五年十二月三十日 目录 TOC \o 1-3 \h \z \u 1 系统分析 3 1.1 目的和意义 3 1.2 目标分析 3 2总体设计 4 2.1 程序设计组成框图 4 系统分为4个子模块:初始化模块, 4 初始化模块: 4 2.2 流程图 5 3详细设计 6 3.1 设计思路 6 3.1.1. 动态分区分配 6 3.1.2. 动态分区分配中的数据结构 6 3.1.3. 动态分区分配算法 6 3.1.4. 回收内存 7 3.2 参数定义 7 3.3 数据结构 7 3.4 函数定义 7 3.5 算法分析 8 4 核心代码实现 8 4.1 首次适应算法 8 4.2 最佳适应算法 9 4.3 最差适应算法 11 5 程序调试 13 3.3分配内存 14 3.4回收内存及合并分区 15 6 总结 17 7参考文件 17 8源代码 18 1 系统分析 目的和意义 操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。 本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统开发的基本技能。 目标分析 采用可变分区方式完成对存储空间的管理(即存储空间的分配与回收工作)。 设计用来记录主存使用情况的数据结构:已分区表和空闲分区表或链表。 在设计好的数据结构上设计一个主存分配算法。 在设计好的数据结构上设计一个主存回收算法。其中,若回收的分区有上邻空闲分区和(或)下邻空闲分区,要求合并为一个空闲分区登记在空闲分区表的一个表项里。 2总体设计 程序设计组成框图 系统分为4个子模块:初始化模块,首次适应算法模块、最佳适应算法模块、最差适应算法模块的四个算法模块。 初始化模块:allocation( )初始化函数,给每个相关的算法分配内存赋值。 首次适应算法模块,利用首次适应算法实现主存空间的分配并可以查看主存空间的分配情况和内存的回收。 最佳适应算法模块,利用首次适应算法实现主存空间的分配并可以查看主存空间的分配情况和内存的回收。 最差适应算法模块,利用首次适应算法实现主存空间的分配并可以查看主存空间的分配情况和内存的回收。 M Main() allocation allocation( )初始化 最差适应算法最佳适应算法 最差适应算法 最佳适应算法 首次适应算法 首次适应算法 回收内存分配内存回收内存分配内存 回收内存 分配内存 回收内存 分配内存 回收内存分配内存 回收内存 分配内存 流程图 分配成功表头移动错误退出查找下一个 分配成功表头移动 错误退出 查找下一个 可用内存是否足够 设定内存 分配可用内存 回收内存 回收内存 表头不变,区间 表头不变,区间 合并 表头移动至上领区间 并合并 是否含有上领或下领区间 3详细设计 设计思路 动态分区分配 动态分区分配又称为可变分区分配,它是根据进程的实际需要,动态的为之分配内存空间。在实现动态分区分配时,将涉及到分区分配中所用的数据结构,分区分配算法和分区的分配与回收操作这样三方面的问题。 动态分区分配中的数据结构 为了实现动态分区分配,系统中必须配置相应的数据结构,用以描述空闲分区和已分配分区的情况,为分配提供依据。常用的数据结构有以下两种形式: (1)空闲分区表,在系统中设置一张空闲分区表,用于记录每个空闲分区的情况。每个空闲分区占一个表目,表目中包括分区号,分区大小和分区始址等数据项。 (2)空闲分区链,为实现对空闲分区的分配和链接,在每个分区的其实部分设置一些用于控制分区分配的信息,以及用于链接各分区所用的前向指针,在分区尾部则设置一后向指针。通过前后相链接指针,可将所有的空闲分区链接成一个双向链。 动态分区分配算法 首次适应算法(FF算法):FF算法要求空闲分区链以地址递增的次序链接。在分配内存时,从链首开始顺序查找,直至找到一个大小能满足要求的空闲分区为止。然后再按照作业的大小,从该分区中划出一块内存空间,分配给请求者,余下的空闲分区仍留在空闲链中。若从链首直至链尾都不能找到一个能满足要求的分区,则表示系统中已没有足够大的内存分配给该

文档评论(0)

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

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

1亿VIP精品文档

相关文档