实验报告—内存分配模拟.pdfVIP

  • 10
  • 0
  • 约1.12万字
  • 约 21页
  • 2020-06-22 发布于广东
  • 举报
计算机组成结构 实验报告 实验题目:内存分配模拟 报告人: 学号: 实验报告 实验题目:内存分配模拟 报告人: 学号: 实验目的: 通过模拟内存分配过程,了解掌握计算机存储方式 实验原理: 计算机进行存储时,常采用段式、页式、段页式存储方式 实验环境: Codeblock C++ 实验过程记录: 通过查询资料了解到,计算机分配内存时常采用的分配算法有三 种:首次适应算法、最佳适应算法、最差适应算法 一、上述算法的基本思想: ()首次适应算法1 使用该算法进行内存分配时,从首个空闲分区开始查找,直至 找到一个能满足其大小需求的空闲分区为止。然后再按照作业的大 小,从该分区中划出一块内存分配给请求者,余下的空闲分区进行更 新操作 ()最佳适应算法2 为了加速查找,该算法需求将所有的空闲区以递增顺序排序, 这样每次找到的第一个满足需求的空闲区,必然是最优的 ()最差适应算法3 最差适应算法中,该算法需求将所有的空闲区以递减顺序排序, 分配时直接从第一个空闲分区中分配(不能满足需要则不分配) 二、数据结构 1、定义结构体对空闲空间、已分配空间进行标记 struct_list { intstart; //起始地址 intend; //终止地址 doublenumber;//空间大小 }; _listlist_[257]; //标记已分配空间 _listFree_list[257];//标记未分配空间 添加比较函数 boolcomparep(const_lista,const_listb)//按照首地址由低到高排序 { return(a.start)(b.start); } boolcompare(const_lista,const_listb) //按照空间由小到大排序 { return(a.number)(b.number); } boolcompared(const_lista,const_listb) //按照空间由大到小排序 { return(a.number)(b.number); } 2、每个内存块用数组进行表示 intFree[257]; intUsed[257]; 三、功能模块 voidInitblock()//初始化 voidcalculate_FREE()//计算空余空间 voidFREESPACE()//释放空间 voidfirst_suit(intoperation) //首次适应算法 { if(operation==1)//申请空间 firs_suit_ap(); if(operation==2sum!=0)//释放空间 FREESPACE(); voidbest_suit(intoperation) //最佳适应算法 { if(operation== 1)//申请空间 worst_suit_ap(); if(operation==2sum!=0)//释放空间 FREESPACE(); } voidworst_suit(intoperation) //最差适应算法 { if(operation== 1)//申请空间 bes

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档