1 / 15
文档名称:

内存管理模型的设计与实现毕业论文.doc

格式:doc   页数:15
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

内存管理模型的设计与实现毕业论文.doc

上传人:799474576 2013/7/23 文件大小:0 KB

下载得到文件列表

内存管理模型的设计与实现毕业论文.doc

相关文档

文档介绍

文档介绍:操作系统课程实验报告
学生姓名:
班学号:
指导教师: 袁国斌
中国地质大学信息工程学院
2012年 12月 15日
实习题目:内存管理模型的设计与实现
【需求规格说明】
对于给定的一个存储空间自己设计数据结构进行管理,可以使用单个链表,也可以使用多个链表,自己负责存储空间的所有管理组织,要求采用分页方式(指定单元大小为页,如4K,2K,进程申请以页为单位)来组织基本内容;
当进程对内存进行空间申请操作时,模型采用一定的策略(如:首先利用可用的内存进行分配,如果空间不够时,进行内存紧缩或其他方案进行处理)对进程给予指定的内存分配;
从系统开始启动到多个进程参与申请和运行时,进程最少要有3个以上,每个执行申请的时候都要能够对系统当前的内存情况进行查看的接口;
对内存的申请进行内存分配,对使用过的空间进行回收,对给定的某种页面调度进行合理的页面分配。
利用不同的颜色代表不同的进程对内存的占用情况,动态更新这些信息。
【算法设计】
(1)设计思想:
通过建立一个链表,来描述已分配和空闲的内存分区。对于每一个分区,它可能存放了某个进程,也可能是两个进程间的空闲区。链表中的每一个结点,分别描述了一个内存分区,包括它的起始地址、长度、指向下一个结点的指针以及分区的当前状态。在基于链表的存储管理中,当一个新的进程到来时,需要为它分配内存空间,即为它寻找某个空闲分区,,最佳匹配法,最快匹配法.
最先匹配法是一种简单的算法,它的基本思路是:假设新进程的大小为M,那么从链表的首节点开始,将每一个空闲节点的大小与M相比较,,因而速度很快.
最佳匹配算法的基本思路是:搜索整个链表,将能够装得下该进程的最小空闲区分配出去.
为了克服最佳匹配算法把空闲区切割的太小的缺点,,在每次分配的时候,总是将最大的那个空闲区切去一部分,,可能仍然是一个比较大的空闲区,从而避免了空闲区越分越小的问题.
(2)设计表示:
分区结点设计:
template<class T>
class ChainNode
{
friend Chain<T>;
public:
char pro; //内存块存放的程序名"o" 代表操作系统‘’代表空闲区
T size; //内存块的大小
T begin; //内存块起始地址
ChainNode<T> *link; //下一个内存块
};
template<class T>
分区链表设计:
class Chain
{
public:
Chain()
{first=NULL;}
~Chain();
int ff(int manage,char pro,int size);
void assign(ChainNode<T> *q,char pro,int size);//动态分配内存
int bf(int manage,char pro,int size); //最佳适应法
int wf(int manage,char pro,int size); //最坏适应法
int delpro(int manage,char pro); //撤销进程,可能要进行内存块的合并
void del_pro(int manage);
void init(int manage); //内存的初始化
void assign_pro(int manage) ; //
public:
ChainNode<T> *first;
ChainNode<T> *p;
};
(3)详细设计表示:
Main()

childmenu(int manage) //子菜单蹋?
show()//显示内存使用情况

assign_pro(manage)
//给进程pro根据选择情况分配内存
wf(manage,pro,size)
bf(manage,pro,size)
ff(manage,pro,size)
//最先适应法//最佳适应法//最坏适应法
【调试报告】

【用户手册】
用户按照显示屏要求输入程序所需要的即可.
【附录】
#include <>
#include <>
#include <>
template<class T>
class ChainNode
{
friend Chain<T>;