动态可变分区存储管理模拟系统(3)

2020-02-21 00:06

图(9) 申请内存图

图(10)查看已分配区图

图(11)查看空闲区图

图(12)释放内存图

图(13)查看内存状态图

最佳算法和最先算法的比较:

图(13)两算法的对比图

五、程序清单 #include using namespace std; #include struct area {

int start; 定义分区的首地址 int end; 定义分区的尾地址 int len; 定义分区的长度 int sign;定义分区的进程号 struct area * next;定义进程的指针 };

struct area*freehead=NULL;声明 freehead 是型结构指针。 初始freehead指针为空。 struct area*usedhead=NULL;声明 usedhead 是型结构指针。初始usedhead指针为空。 void create();创建内存区 void print(area*); void ask(area*); void ask1(area*); void correct(area*,int);

area * delempty();初始化 void inserused(area *,int ,int ); void inserfree(area * ); void setfree();

void listID();//最先适应法 void listlen();/最优适应法 void swap(area *,area *); //初始化

area * delempty(){ }

//最优适应法 void listlen(){

int n=0; 初始为零

area *p9=freehead->next,*p0=freehead,*p11,*p12,*p13; while(p0!=NULL){不为空 }

p0=freehead;把空闲区赋值给p0 if (n==1)

return;

{

else

while(p9!=NULL)

p12=p0; 把p0空闲区给p12 p13=p9;把p9空闲区给p13 p0=p0->next; p0指向下一个地址 p0=p0->next;指向下一个地址 n++;n加一

area * p1=freehead;把空闲区首地址赋值给p1

if(p1->next==NULL)

if(p1->len==0){

return NULL; else { } }

p1=p1->next;指向下一个地址


动态可变分区存储管理模拟系统(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:机务理论深化班《无线电罗盘》课程教学设计-2019年教育文档

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: