计算机操作系统课程设计-内存管理.doc_第1页
计算机操作系统课程设计-内存管理.doc_第2页
计算机操作系统课程设计-内存管理.doc_第3页
计算机操作系统课程设计-内存管理.doc_第4页
计算机操作系统课程设计-内存管理.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

操作系统课程设计(内存管理)班级:学号:姓名:指导老师:一、设计目的操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统开发的基本技能。二、设计题目操作系统模拟软件的设计与开发三、设计内容(内存部分)模拟各种内存分配算法及回收过程,并能动态演示。结合进程调度算法,能为进程模拟分配内存,并设计一个跟踪该内存模拟分配的进程或线程,记录内存分配的结果四、设计的步骤(内存部分)1总体设计:存储管理:功能描述:存储管理负责完成对内存存储器的地址转换,采用最优适应算法完成对内存储器进行分配与去配,解决多用户对内存储器的共享和保护,通过软件手段,实现对内存储器容量的扩充。简要描述:可变分区管理方式预先不将内存划分成几个区域,而将内存除操作系统占用区域外的空间看作一个大的空闲区。存储管理部分,系统为提供了存储管理界面,用户可以实现内存空间的管理、内存分配、内存回收和存储保护操作。 事件流 当用户请求管理内存分配时,启用该用例,系统显示内存分配,内存回收和内存存储保护。当用户请求内存分配时,系统执行内存的分配;当用户内存使用完成后,系统执行内存的回收。内存分配出现问题时,需要执行对内存储器的保护。用例图子用例图内存空间的分配功能描述: 源程序经过编译、链接、并装入内存后才能运行。内存空间的分配即对内存空闲区的分配。简要描述: 可变分区管理方式预先不将内存划分成几个区域,而将内存除操作系统占用区域外的空间看作一个大的空闲区。当作业要求装入内存时,根据作业需要内存空间的大小查询内存内各个空闲区,当内存空间中找到一个大于或等于该作业大小的内存空闲区时,选择其中一个空闲区,按作业需求量划出一个分区装入该作业。事件流 当用户请求管理内存回收时,启用该用例,系统显示内存分配,内存回收和内存存储保护。当用户请求内存分配时,系统执行内存的分配;当用户内存使用完成后,系统执行内存的回收。内存分配出现问题时,需要执行对内存储器的保护。内存空间的分配图内存空间的回收功能描述:实现回收时,将作业归还区域在已分配表中找到.将栏目状态变为空.然后检查空闲区表中标志为“未分配”的栏目.查找是否有相邻空闲区;最后,合并空闲区,修改空闲区表。完成内存空间回收.简要描述: 可变分区方式下回收内存空间时,首先将作业归还的区域在与分配表中找到,将该栏目的状态变为“空”;然后,检查空闲区表中标志为“未分配”的栏目,找到是否有相邻的空闲区;最后,合并空闲区,修改空闲区表。 事件流 当用户请求管理内存分配时,启用该用例,系统显示内存分配,内存回收和内存存储保护。当用户请求内存分配时,系统执行内存的分配;当用户内存使用完成后,系统执行内存的回收。内存分配出现问题时,需要执行对内存储器的保护。内存空间的回收2.详细设计VeriableIndex类概述:这个类封装了变量到内存地址的映射关系,variable代表变量,index代变量在内存中的地址。作用:当用户的程序要运行时,系统将为用户定义的变量分配内存空间,并把每个变量的名字与它的地址封装在一个VeriableIndex类型的对象中,然后将这些VeriableIndex对象加入到一个队列中,当执行到改变变量值的语句时,就查询这个队列并找到相应变量对应的VeriableIndex对象,然后取出这个对象中保存的内存地址,再在内存中按此地址读出变量的值,接下来执行相应的操作后再放回到内存中去。举例说明:假如用户定义的程序段如下:VeriableIndex对象队列的指针将会被保存在PCB(进程控制块)中。VeriableIndex队列的内容如下:X=5;X+;Y=6;Z=6;Y+;End;VeribaleIndexOne VeriableIndexTwo VeriableIndexThreeZ Z地址Y Y地址X x地址DataTable类这个类实际上是构造了一个VeriableIndex的队列,这样为每一个进程创建VeriableIndex队列的时候便省去了很多不必要的麻烦。DataTable类这个类实际上是构造了一个VeriableIndex的队列,这样为每一个进程创建VeriableIndex队列的时候便省去了很多不必要的麻烦。Memory类概述:该类是为模拟内存而创建的,为了实现方便我们用了一个String类型的数组来模拟内存的大小,另外设置了一个PCB类型的数组来模拟系统区,系统区的大小正好可以容纳10个进程控制块。功能:响应用户申请PCB以及内存空间的请求,内存分配算法采用首次适应算法,用动态分区加以管理。具体来说,当用户申请内存时,如果尚有可以分配的内存空间则相应的方法会返回一个只包含两个元素的一维数组,数组的第一个元素是予以的内存的首地址,第二个元素是空间的大小;如果没有可以分配的内存空间则相应的方法会返回一个null值等待进一步的处理。当用户申请PCB时过程类似不再赘述。另外Memory类提供了对已经分配出去的PCB与内存空间进行回收的功能。当需要这些功能时调用相应的方法即可。PCB类概述:主要是为了模拟进程控制块,其中包含了进程标示符信息、进程控制信息、进程调度信息、处理机状态信息。为了方便起见,我们已经将它的所有实例域的访问性设为public。此类没有提供任何的构造方法,但是这丝毫不会影响到后继类对它的使用。鉴于篇幅我们在这里不便说明其中的原因。可以查阅有关JAVA中访问控制的相关章节。MemoryPanel类此类的设计目的是为了利于实现界面设计,它有一个Memory类型的私有实例域代表内存,而它的所有方法都是静态的,这样做的一个好处就是调用它的方法时无须构造一个对象,这就类似于C中的全局函数,在任何时候任何地方都能够被我们调用,我们应该注意到这些方法的签名与Memory中的对应方法相同,实际上他们正是间接调用了Memory中的相应方法。从某种意义上说,它的设计只是为了给我们使用Memory中的方法提供一种方便。对内存单元的外观显示我们是借助JButton来实现的,选用它有两个好处,一个是它的外观小巧精致,利于实现美观大方的界面。二是它除了可以设置背景颜色还可以设置内容显示,可以随时把内存单元中的内容作为一个字符串显示在JButton上,这样可以使我们的模拟操作系统更加形象地展现真实的操作系统是怎样访问内存单元的。当对内存单元进行读写时,相应的单元会通过动画来展示系统正在读或者写这个单元。3.运行界面:五:设计心得在这次课程设计中,我们的收获应该说是非常大的。在今后的学习中,一定要扩大自己的知识面,如:多从网上寻找可实现的项目,同学之间组成团队,多学习,自己用代码实现;还有就是要精通一们语言,熟练掌握其数据结构,算法思想,以至于能够熟

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论