计算机操作系统内存管理.docVIP

  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文档。上传文档
查看更多
计算机操作系统内存管理

操作系统课程设计(内存管理) 班级: 学号: 姓名: 指导老师: 一、设计目的 操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统开发的基本技能。 二、设计题目 操作系统模拟软件的设计与开发 三、设计内容(内存部分) 模拟各种内存分配算法及回收过程,并能动态演示。结合进程调度算法,能为进程模拟分配内存,并设计一个跟踪该内存模拟分配的进程或线程,记录内存分配的结果 四、设计的步骤(内存部分) 1.总体设计: ①存储管理: 功能描述: 存储管理负责完成对内存存储器的地址转换,采用最优适应算法完成对内存储器进行分配与去配,解决多用户对内存储器的共享和保护,通过软件手段,实现对内存储器容量的扩充。 简要描述: 可变分区管理方式预先不将内存划分成几个区域,而将内存除操作系统占用区域外的空间看作一个大的空闲区。 存储管理部分,系统为提供了存储管理界面,用户可以实现内存空间的管理、内存分配、内存回收和存储保护操作。 事件流 当用户请求管理内存分配时,启用该用例,系统显示内存分配,内存回收和内存存储保护。当用户请求内存分配时,系统执行内存的分配;当用户内存使用完成后,系统执行内存的回收。内存分配出现问题时,需要执行对内存储器的保护。 用例图 子用例图 ②内存空间的分配 功能描述: 源程序经过编译、链接、并装入内存后才能运行。内存空间的分配即对内存空闲区的分配。 简要描述: 可变分区管理方式预先不将内存划分成几个区域,而将内存除操作系统占用区域外的空间看作一个大的空闲区。当作业要求装入内存时,根据作业需要内存空间的大小查询内存内各个空闲区,当内存空间中找到一个大于或等于该作业大小的内存空闲区时,选择其中一个空闲区,按作业需求量划出一个分区装入该作业。 事件流 当用户请求管理内存回收时,启用该用例,系统显示内存分配,内存回收和内存存储保护。当用户请求内存分配时,系统执行内存的分配;当用户内存使用完成后,系统执行内存的回收。内存分配出现问题时,需要执行对内存储器的保护。 内存空间的分配图 ③内存空间的回收 功能描述: 实现回收时,将作业归还区域在已分配表中找到.将栏目状态变为‘空’.然后检查空闲区表中标志为“未分配”的栏目.查找是否有相邻空闲区;最后,合并空闲区,修改空闲区表。完成内存空间回收. 简要描述: 可变分区方式下回收内存空间时,首先将作业归还的区域在与分配表中找到,将该栏目的状态变为“空”;然后,检查空闲区表中标志为“未分配”的栏目,找到是否有相邻的空闲区;最后,合并空闲区,修改空闲区表。 事件流 当用户请求管理内存分配时,启用该用例,系统显示内存分配,内存回收和内存存储保护。当用户请求内存分配时,系统执行内存的分配;当用户内存使用完成后,系统执行内存的回收。内存分配出现问题时,需要执行对内存储器的保护。 内存空间的回收 2.详细设计 VeriableIndex类 概述:这个类封装了变量到内存地址的映射关系,variable代表变量,index代变量在内存中的地址。 作用:当用户的程序要运行时,系统将为用户定义的变量分配内存空间,并把每个变量的名字与它的地址封装在一个VeriableIndex类型的对象中,然后将这些VeriableIndex对象加入到一个队列中,当执行到改变变量值的语句时,就查询这个队列并找到相应变量对应的VeriableIndex对象,然后取出这个对象中保存的内存地址,再在内存中按此地址读出变量的值,接下来执行相应的操作后再放回到内存中去。 举例说明:假如用户定义的程序段如下: VeriableIndex对象队列的指针将会被保存在PCB(进程控制块)中。 DataTable类 这个类实际上是构造了一个VeriableIndex的队列,这样为每一个进程创建VeriableIndex队列的时候便省去了很多不必要的麻烦。 DataTable类 这个类实际上是构造了一个VeriableIndex的队列,这样为每一个进程创建VeriableIndex队列的时候便省去了很多不必要的麻烦。 Memory类 概述:该类是为模拟内存而创建的,为了实现方便我们用了一个String类型的数组来模拟内存的大小,另外设置了一个PCB类型的数组来模拟系统区,系统区的大小正好可以容纳10个进程控制块。 功能:响应用户申请PCB以及内存空间的请求,内存分配算法采用首次适应算法,用动态分区加以管理。具体来说,当用户申请内存时,如果尚有可以分配的内存空间则相应的方法会返回一个只包含两个元素的一维数组,数组的第一个元

文档评论(0)

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

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

1亿VIP精品文档

相关文档