(内存管理模拟系统.docxVIP

  1. 1、本文档共32页,可阅读全部内容。
  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文档。上传文档
查看更多
(内存管理模拟系统

摘要操作系统的内存管理是指系统软件对其他应用程序使用内存时所作的管理,是一种统筹关系。本设计采用活动分区方案,但不采用紧凑算法。假设系统内存容量为100KB。能处理内存回收的时候上下邻合并的问题;对随机出现的进程i申请jKB内存,程序能判断是否能分配;释放随机的首地址为Handle的内存块;同时输出内存使用情况和空闲情况。分区管理是把内存划分成若干个大小不等的区域,除操作系统占用一个区域之外,其余由多道环境下的各并发进程共享。分区管理是满足多道程序设计的一种最简单的存储管理方法。本实验过程都在Windows XP操作系统下完成,运用C++当中的链表结构比较容易实现本程序所要求功能,所以采用C++编程语言编写程序。关键词:C语言、内存管理、操作系统、管理系统、内存的分配和回收概要设计1.1设计题目内存管理模拟系统1.2设计目的 本次课程设计的目的是通过该题目的设计过程,掌握内存管理的原理、活动分区的内存分配与回收,设计出一个可以申请内存、释放内存、显示内存情况的基础程序。通过程序的编写让学生通过该题目的设计过程熟悉C语言的使用、算法的应用以及软件开发的方法、掌握内存管理的原理、软件开发方法并提高解决实际问题的能力。本次课程设计采用活动分区方案,但不采用紧凑算法。假设系统内存容量为100KB。要能处理内存回收的时候上下邻合并的问题;对随机出现的进程i申请jKB内存,程序能判断是否能分配;释放随机的首地址为Handle的内存块;要求输出内存使用情况和空闲情况。有使用界面,并且可以自动演示和手动演示内存的申请、释放和显示内存情况。1.3设计分析操作系统的内存管理是指系统软件对其他应用程序使用内存时所作的管理,是一种统筹关系。内存管理对于编写出高效率的Windows程序是非常重要的,这是因为Windows是多任务系统,它的内存管理和单任务的DOS相比有很大的差异。DOS是单任务操作系统,应用程序分配到内存后,如果它不主动释放,系统是不会对它作任何改变的;但Windows却不然,它在同一时刻可能有多个应用程序共享内存,有时为了使某个任务更好地执行,Windows系统可能会对其它任务分配的内存进行移动,甚至删除。因此,我们在Windows应用程序中使用内存时,要遵循Windows内存管理的一些约定,以尽量提高Windows内存的利用率。本设计应采用活动分区方案,假定固定内存容量,能处理内存回收时上下邻合并问题,并在申请内存判断能否分配。1.4设计思想(1)分区存储管理:分区管理是把内存划分成若干个大小不等的区域,除操作系统占用一个区域之外,其余由多道环境下的各并发进程共享。分区管理是满足多道程序设计的一种最简单的存储管理方法。 (2) 动态分区法:动态分区法在作业执行前并不建立分区,分区的建立是在作业的处理过程中进行的,且其大小可随作业或进程对内存的要求而改变。改变了固定分区法中那种即使是小作业也要占据大分区的浪费现象,从而提高了内存的利用率。 (3)动态分区时的分配与回收:动态分区时的分配与回收主要解决三个问题:a.对于请求表中的要求内存长度,从可用表或自由链中寻找出合适的空闲区分配程序。b.分配空闲区之后,更新可用表或自由链。c.进程或作业释放内存资源时,和相邻的空闲区进行链接合并,更新可用表或自由链。 (4)最先适应法:最先适应法要求可用表或自由链按起始地址递增的次序排列。该算法的最大特点是一旦找到大于或等于所要求内存长度的分区,则结束探索。然后,该算法从所找到的分区中划出所要求的内存长度分配给用户,并把余下的部分进行合并后留在可用表中,但要修改其相应的表项。 3.概要设计内存管理是计算机系统以一种优化性能的方式,在需要内存的不同进程(如操作系统或应用程序调用)之间将有限的内存进行分配的过程。执行这种任务的通用技术叫做虚拟内存技术,这项技术利用保留的磁盘空间存储不在物理内存中的对象,来模拟比实际可用的内存大得多的地址空间。在多道程序设计中,会有多个用户同时要求加载到内存,通常它们先进入到一个输入队列中,等待CPU从中选择下一个执行程序。但是内存容量是有限的,这就要求操作系统能够按照某种策略,将这些内存空间合理地分配给队列中的每一个程序。此设计为了了解操作系统活动分区内存管理的分配与回收方式,掌握内存的申请、释放、显示的运行过程,学会如何把学到的知识用于解决实际问题。这次课程设计练习并掌握了编译C++程序,学会调试C++程序,学会如何把学到的知识用于解决实际问题,培养了我们的动手能力。?3.1函数调用关系图释放内存Display自动演示Main() 图3.13.2程序流程图开始初始化菜单演示内存分配状况自动演示内存管理自动创建新进程自动申请进程空间可用内存空间充足内存空间不足自动演示结束手动管理退出申请内存释放内存显示内存状况退出输入

文档评论(0)

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

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

1亿VIP精品文档

相关文档