资源简介
存储器的分配与回收算法其中有最先适应法、最佳适应法、最坏适应法三种 另外还有运行结果截图
代码片段和文件信息
//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
- 上一篇:数据结构实验——赫夫曼树相关
- 下一篇:数据结构与C语言综合习题集
相关资源
- C语言进阶源码---基于graphics实现图书
- Effective C++(第三版中文版) - Scott
- C和C++.rar
- 酒店餐饮管理系统visual c++编程
- C++ Doodle Jump源码
- 数据结构——C++语言描述 陈慧南
- C++学生考试系统源码
- BORLAND C++ 3.1精简版
- 学生成绩管理系统-----C++
- c++课程设计宾馆客房管理系统
- C++实现RSA加密解密算法
- MFC 在线考试系统
- 使用C++超级玛丽制作-100%源码公开-不
- 摄影测量相对定向VC++程序
- 井字棋三连棋的AI实现,C/C++
- 数据结构各种算法实现(C++模板),
- 扩展欧几里德算法c++代码
- c++编写的经典小游戏
- [BUPT]面向对象程序设计C++ - 平时作业
- 坦克大战 C++
- c++ 课程设计_中国象棋
- c++做的坦克大战源码
- c++使用ffmpeg把h264/h265和mp3写入mp4文件
- 信息学奥赛普及组2011年到2016年C++真题
- C++实现的斗地主游戏
- C++ 游戏疯狂的赛车
- 游戏开发 c语言 程序设计 飞机大战
- 网络游戏脱机外挂(辅助)C++源码(
- VC++数字图像处理典型算法及实现
- 《面向对象的程序设计语言——C++》
评论
共有 条评论