• 大小: 343KB
    文件类型: .rar
    金币: 2
    下载: 0 次
    发布日期: 2024-02-04
  • 语言: C/C++
  • 标签: C++  

资源简介

存储器的分配与回收算法其中有最先适应法、最佳适应法、最坏适应法三种 另外还有运行结果截图

资源截图

代码片段和文件信息

//Memory allocation and recovery algorithm
#include 
#include 
#include 

typedef struct Freelink{//定义自由链
struct Freelink *prior;
char name;
int start;
int size;
bool flag;
struct Freelink *next;
}* ptr*head;

head top;
ptr p;

void print(){//将内存分配情况打印到屏幕上
p=top;
cout<<“************************内存分配情况表************************“< cout<<“区号\t\t“<<“起始位置\t“<<“区间长度\t“<<“区间状态\t“< do{
cout<name<<“\t\t“<start<<“\t\t“<size<<“\t\t“;
if(p->flag==false){cout<<“空闲“< else{cout<<“已占用“< p=p->next;
}
while(p!=NULL);
}

void clear(){//结束操作时清空“内存”以备其他操作
do{
p=top;
top=top->next;
free(p);
}
while(top!=NULL);
}

void asc(ptr &p){//最佳适应法的内存分配函数
int min;
ptr op;
Freelink *fl=(Freelink *)malloc(sizeof(Freelink));
cout<<“请输入要分配内存的进程名“< cin>>fl->name;
cout<<“请输入要分配内存的大小“< cin>>fl->size;
min=256;
fl->flag=true;
do{
if(p->flag==false&&p->size<=min&&p->size>=fl->size){
min=p->size;
op=p;
}
p=p->next;
}
while(p!=NULL);
if(op->size>fl->size){
   fl->start=op->start;
   op->start=fl->start+fl->size;
   op->size=op->size-fl->size;
   fl->next=op;
   fl->prior=op->prior;
   op->prior->next=fl;
       op->prior=fl;
       goto flag1;
}
if(op->size==fl->size){
       op->flag=fl->flag;
       op->name=fl->name;
   free(fl);
       goto flag1;
}
cout<<“内存过小,分配失败!“<flag1:  cout<<“分配成功!“<flag2:  ;
}

void dec(ptr &p){//最坏适应法的内存分配函数
int max;
ptr op;
Freelink *fl=(Freelink *)malloc(sizeof(Freelink));
cout<<“请输入要分配内存的进程名“< cin>>fl->name;
cout<<“请输入要分配内存的大小“< cin>>fl->size;
max=fl->size;
fl->flag=true;
do{
if(p->flag==false&&p->size>=max){
max=p->size;
op=p;
}
p=p->next;
}
while(p!=NULL);
if(op->size>fl->size){
   fl->start=op->start;
   op->start=fl->start+fl->size;
   op->size=op->size-fl->size;
   fl->next=op;
   fl->prior=op->prior;
   op->prior->next=fl;
       op->prior=fl;
       goto flag3;
}
if(op->size==fl->size){
       op->flag=fl->flag;
       op->name=fl->name;
   free(fl);
       goto flag3;
}
cout<<“内存过小,分配失败!“<flag3:  cout<<“分配成功!“<flag4:  ;
}

void splice(ptr &p){//若被操作的内存有相邻空闲区则将空闲区拼接合并
int x;
if(p->prior->flag==false&&p->next->flag==false)x=1;
if((p->prior->flag==false&&p->next->flag==true)||(p->prior->flag==false&&p->next==NULL))x=2;
if((p->prior->flag==true&&p->next->flag==false)||(p->prior==NULL&&p->next->flag==false))x=3;
if((p->prior->flag==true&&p->next->flag==true)||(p->prior==NULL&&p->next->flag==true)||(p->prior->flag==true&&p->next==NULL))x=4;
    switch(x){
case 1:p->next->prior=p->prior;
   p->prior->next=p->next;
   p->prior->size=p->prior->size+p->size+p->next->size;
   p->prior->next=p->next->next;
   if(p->next->next!=NULL)p->next->next->prior=p->next->prior;
   free(p->n

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       8526  2009-06-15 22:24  存储器的分配与回收算法实现\MAAR\maar.cpp

     文件       4260  2009-06-11 21:31  存储器的分配与回收算法实现\MAAR\MAAR.dsp

     文件        533  2009-06-11 20:05  存储器的分配与回收算法实现\MAAR\MAAR.dsw

     文件      50176  2009-06-15 22:51  存储器的分配与回收算法实现\MAAR\MAAR.ncb

     文件      53760  2009-06-15 22:51  存储器的分配与回收算法实现\MAAR\MAAR.opt

     文件       1287  2009-06-15 22:14  存储器的分配与回收算法实现\MAAR\MAAR.plg

    I.A....     80400  2009-06-15 21:32  存储器的分配与回收算法实现\截图\最佳适应法\bfa.jpg

    I.A....     47781  2009-06-15 21:35  存储器的分配与回收算法实现\截图\最佳适应法\bfa2.jpg

    I.A....     49431  2009-06-15 21:40  存储器的分配与回收算法实现\截图\最佳适应法\bfa3.jpg

    I.A....     49254  2009-06-15 21:42  存储器的分配与回收算法实现\截图\最佳适应法\bfa4.jpg

    I.A....     80267  2009-06-15 22:04  存储器的分配与回收算法实现\截图\最先适应法\ffa.jpg

    I.A....     42945  2009-06-15 22:06  存储器的分配与回收算法实现\截图\最先适应法\ffa2.jpg

    I.A....     44075  2009-06-15 22:07  存储器的分配与回收算法实现\截图\最先适应法\ffa3.jpg

    I.A....     80441  2009-06-15 21:52  存储器的分配与回收算法实现\截图\最坏适应法\wfa.jpg

    I.A....     64389  2009-06-15 21:54  存储器的分配与回收算法实现\截图\最坏适应法\wfa2.jpg

     目录          0  2009-06-15 22:54  存储器的分配与回收算法实现\截图\最佳适应法

     目录          0  2009-06-15 22:54  存储器的分配与回收算法实现\截图\最先适应法

     目录          0  2009-06-15 22:55  存储器的分配与回收算法实现\截图\最坏适应法

     目录          0  2009-06-15 22:52  存储器的分配与回收算法实现\MAAR

     目录          0  2009-06-15 22:55  存储器的分配与回收算法实现\截图

     目录          0  2009-06-15 22:56  存储器的分配与回收算法实现

----------- ---------  ---------- -----  ----

               657525                    21


评论

共有 条评论