1 / 17
文档名称:

主存空间的分配实验.doc

格式:doc   大小:527KB   页数:17页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

主存空间的分配实验.doc

上传人:pppccc8 2019/9/14 文件大小:527 KB

下载得到文件列表

主存空间的分配实验.doc

相关文档

文档介绍

文档介绍::..1•采用可变分区管理,使用首次适应算法实现主存的分配与回收#include<iostream>#include<>#inelude<vector>#inelude<algorithm>#include<>usingnamespacestd;structblock{ 〃定义空闲块的记录表;intbegin;intlength;};boolcmp(constblock&pl,constblock&p2){讦(・begin)returntrue;returnfalse;}vector<block>mem_table;vector<block>free_table;voidinit(){ 〃初始化空闲块,并将空闲信息记录到空闲分区说明表中;blocknow;while(cin»»now」ength,>=0){(now);}sort((),(),cmp);if(mem_table[0].begin>0){=0;now」ength=mem_table[O].begin;(now);}vector<block>::iteratorp=();while(p!=()&&p+l!=()){if(p->begin+p->lengthv(p+l卜〉begin){・>begin+p・>length;now」ength=(p+l)・>begin-;(now);}P++;}if(mem_table[()-l].begin+mem_table[()-l].length<256){=mem_table[()-l].begin+mem_table[()-l].length;now」ength=256-;(now);}sort((),(),cmp);}voidapplacation(constintlenght){ 〃内存申请操作;vector<block>::iteratorp=();while(p!=()){if(p->length>=lenght){blocknow;・>begin;now」ength=lenght;(now);if(p->length==lenght) 〃查找成功就将内存分配岀去;(p);else{p->begin+=lenght;p->length-=leright;}cout«H分配成功!"«endl;return;}P++;}cout«"内存不够,无法分配"«endl;exit(O);}voidprint(){ 〃主存空间占用表和空闲分区说明表的打卬;coutvv”主存空间占用情况"vvendl起始地址 长度"«endl«endl;for(inti=O;i<();i++)cout«mem_table[i].beginvv" "vvmem_table[i]」ength«endl;cout«endlvv“空闲区表n«endl«“起始地址 长度"«endl;for(inti=O;i<();i++)cout«free_table[i].begi "«free_table[i].lengthvvendl;}voidrecover(){ 〃内存的回收;intt;t=rand()%(); 〃随机选取一个非系统内存块进行回收;while(t==0)t=rand()%();vector<block>::iteratorp=t+();(*p);(p);〃将内存块与空闲分区进行合sort((),(),cm