实验五__动态分区分配方式内存管理模拟内容摘要:

t ch。 //算法选择标记 cout 动态分区分配方式的模拟 \n。 cout************************************\n。 cout** 1)首次适应算法 2)最佳适应算法 **\n。 cout************************************\n。 cout请选择分配算法:。 cinch。 Initblock()。 //开创空间表 int choice。 //操作选择标记 while(1) { cout********************************************\n。 cout** 1: 分配内存 2: 回收内存 **\n。 cout** 3: 查看分配 0: 退 出 **\n。 cout********************************************\n。 cout请输入您的操作 :。 cinchoice。 if(choice==1) alloc(ch)。 // 分配内存 else if(choice==2) // 内存回收 { int ID。 cout请输入您要释放的分区号:。 cinID。 free(ID)。 } else if(choice==3) show()。 //显示主存 else if(choice==0) break。 //退出 else //输入操作有误 { cout输入有误,请重试。 endl。 continue。 } } } 运行示例及结果截图 实验数据可以设计要求:至少完成 10 次以上内存分配、 5 次以上内存回收(其中分配与回收需要混合进行,且回收过程中至少涉及 2次以上内存合并处理) ( 1)运行代码: //*************************************************************** //******** 动态分区分配方式的模拟 ********* //*************************************************************** include include define Free 0 //空闲状态 define Busy 1 //已用状态 define OK 1 //完成 define ERROR 0 //出错 define MAX_length 640 //最大内存空间为 640KB typedef int Status。 typedef struct freearea//定义一个空闲区说明表结构 { int ID。 //分区号 long size。 //分区大小 long address。 //分区地址 int state。 //状态 }ElemType。 // 线性表的双向链表存储结构 typedef struct DuLNode //double linked list { ElemType data。 struct DuLNode *prior。 //前趋指针 struct DuLNode *next。 //后继指针 }DuLNode,*DuLinkList。 DuLinkList block_first。 //头结点 DuLinkList block_last。 //尾结点 Status alloc(int)。 //内存分配 Status free(int)。 //内存回收 Status First_fit(int,int)。 //首次适应算法 Status Best_fit(int,int)。 //最佳适应算法 void show()。 //查看分配 Status Initblock()。 //开创空间表 Status Initblock()//开创带头结点的内存空间链表 { block_first=(DuLinkList)malloc(sizeof(DuLNode))。 block_last=(DuLinkList)malloc(sizeof(DuLNode))。 block_firstprior=NULL。 block_firstnext=block_last。 block_first=3。 block_lastprior=block_first。 block_lastnext=NULL。 block_last=0。 block_last=MAX_length。 block_last=0。 block_last=Free。 return OK。 } // 分 配 主 存 Status alloc(int ch) { int ID,request。 cout请输入作业 (分区号(整数) ):。 cinID。 cout请输入需要分配的主存大小 (单位 :KB):。 cinrequest。 if(request0 ||request==0)。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。