计算机操作系统课程设计内存管理.docx
- 文档编号:28467039
- 上传时间:2023-07-14
- 格式:DOCX
- 页数:7
- 大小:200.43KB
计算机操作系统课程设计内存管理.docx
《计算机操作系统课程设计内存管理.docx》由会员分享,可在线阅读,更多相关《计算机操作系统课程设计内存管理.docx(7页珍藏版)》请在冰豆网上搜索。
计算机操作系统课程设计内存管理
计算机操作系统课程设计-内存管理
操作系统课程设计(内存管理)
班级:
学号:
姓名:
指导老师:
一、设计目的
操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。
本课程设计的目的综合应用学生所学知识,建立系统和完整的计算机系统概念,理解和巩固操作系统基本理论、原理和方法,掌握操作系统开发的基本技能。
二、设计题目
操作系统模拟软件的设计与开发
三、设计内容(内存部分)
模拟各种内存分配算法及回收过程,并能动态演示。
结合进程调度算法,能为进程模拟分配内存,并设计一个跟踪该内存模拟分配的进程或线程,记录内存分配的结果
四、设计的步骤(内存部分)
1.总体设计:
①存储管理:
功能描述:
存储管理负责完成对内存存储器的地址转换,采用最优适应算法完成对内存储器进行分配与去配,解决多用户对内存储器的共享和保护,通过软件手段,实现对内存储器容量的扩充。
简要描述:
可变分区管理方式预先不将内存划分成几个区域,而将内存除操作系统占用区域外的空间看作一个大的空闲区。
存储管理部分,系统为提供了存储管理界面,用户可以实现内存空间的管理、内存分配、内存回收和存储保护操作。
事件流
当用户请求管理内存分配时,启用该用例,系统显示内存分配,内存回收和内存存储保护。
当用户请求内存分配时,系统执行内存的分配;当用户内存使用完成后,系统执行内存的回收。
内存分配出现问题时,需要执行对内存储器的保护。
用例图
子用例图
②内存空间的分配
功能描述:
源程序经过编译、链接、并装入内存后才能运行。
内存空间的分配即对内存空闲区的分配。
简要描述:
可变分区管理方式预先不将内存划分成几个区域,而将内存除操作系统占用区域外的空间看作一个大的空闲区。
当作业要求装入内存时,根据作业需要内存空间的大小查询内存内各个空闲区,当内存空间中找到一个大于或等于该作业大小的内存空闲区时,选择其中一个空闲区,按作业需求量划出一个分区装入该作业。
事件流
当用户请求管理内存回收时,启用该用例,系统显示内存分配,内存回收和内存存储保护。
当用户请求内存分配时,系统执行内存的分配;当用户内存使用完成后,系统执行内存的回收。
内存分配出现问题时,需要执行对内存储器的保护。
内存空间的分配图
③内存空间的回收
功能描述:
实现回收时,将作业归还区域在已分配表中找到.将栏目状态变为‘空’.然后检查空闲区表中标志为“未分配”的栏目.查找是否有相邻空闲区;最后,合并空闲区,修改空闲区表。
完成内存空间回收.
简要描述:
可变分区方式下回收内存空间时,首先将作业归还的区域在与分配表中找到,将该栏目的状态变为“空”;然后,检查空闲区表中标志为“未分配”的栏目,找到是否有相邻的空闲区;最后,合并空闲区,修改空闲区表。
事件流
当用户请求管理内存分配时,启用该用例,系统显示内存分配,内存回收和内存存储保护。
当用户请求内存分配时,系统执行内存的分配;当用户内存使用完成后,系统执行内存的回收。
内存分配出现问题时,需要执行对内存储器的保护。
内存空间的回收
2.详细设计
VeriableIndex类
概述:
这个类封装了变量到内存地址的映射关系,variable代表变量,index代变量在内存中的地址。
作用:
当用户的程序要运行时,系统将为用户定义的变量分配内存空间,并把每个变量的名字与它的地址封装在一个VeriableIndex类型的对象中,然后将这些VeriableIndex对象加入到一个队列中,当执行到改变变量值的语句时,就查询这个队列并找到相应变量对应的VeriableIndex对象,然后取出这个对象中保存的内存地址,再在内存中按此地址读出变量的值,接下来执行相应的操作后再放回到内存中去。
举例说明:
假如用户定义的程序段如下:
VeriableIndex对象队列的指针将会被保存在PCB(进程控制块)中。
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.运行界面:
五:
设计心得
在这次课程设计中,我们的收获应该说是非常大的。
在今后的学习中,一定要扩大自己的知识面,如:
多从网上寻找可实现的项目,同学之间组成团队,多学习,自己用代码实现;还有就是要精通一们语言,熟练掌握其数据结构,算法思想,以至于能够熟练运用。
应该说这是通过我们小组成员的共同努力和动脑完成的,虽然内容并不是很复杂,但是我们觉得设计的过程相当重要,学到了很多。
我觉得课程设计反映的是一个从理论到实际应用的过程,但是更远一点可以联系到以后毕业之后从学校转到踏上社会的一个过程。
小组人员的配合﹑相处,以及自身的动脑和努力,都是以后工作中需要的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 课程设计 内存 管理