主存空间的分配实验

主存空间的分配实验

ID:42561169

大小:527.08 KB

页数:17页

时间:2019-09-17

主存空间的分配实验_第1页
主存空间的分配实验_第2页
主存空间的分配实验_第3页
主存空间的分配实验_第4页
主存空间的分配实验_第5页
资源描述:

《主存空间的分配实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、1•采用可变分区管理,使用首次适应算法实现主存的分配与回收#include#include#inelude#inelude#includeusingnamespacestd;structblock{〃定义空闲块的记录表;intbegin;intlength;};boolcmp(constblock&pl,constblock&p2){讦(pl.beginvp2・begin)returntrue;returnfalse;}vectormem_tabl

2、e;vectorfree_table;voidinit(){〃初始化空闲块,并将空闲信息记录到空闲分区说明表中;blocknow;while(cin»now.begin»now」ength,now.begin>=0){mem_table.push_back(now);}sort(mem_table.begin(),mem_table.end(),cmp);if(mem_table[0].begin>0){now.begin=0;now」ength=mem_table[O].begin;free_table.push_back(now);}v

3、ector::iteratorp=mem_table.begin();while(p!=mem_table.end()&&p+l!=mem_table.end()){if(p->begin+p->lengthv(p+l卜〉begin){now.begin二p・>begin+p・>length;now」ength=(p+l)・>begin-now.begin;free_table.push_back(now);}P++;}if(mem_table[mem_table.size()-l].begin+mem_table[mem_table.si

4、ze()-l].length<256){now.begin=mem_table[mem_table.size()-l].begin+mem_table[mem_table.size()-l].length;now」ength=256-now.begin;free_table.push_back(now);}sort(free_table.begin(),free_table.end(),cmp);}voidapplacation(constintlenght){〃内存申请操作;vector::iteratorp=free_table.beg

5、in();while(p!=free_table.end()){if(p->length>=lenght){blocknow;now.begin二p・>begin;now」ength=lenght;mem_table.push_back(now);if(p->length==lenght)〃查找成功就将内存分配岀去;free_table.erase(p);else{p->begin+=lenght;p->length-=leright;}cout«H分配成功!"«endl;return;}P++;}cout«"内存不够,无法分配"«endl;exit(O

6、);}voidprint(){〃主存空间占用表和空闲分区说明表的打卬;coutvv”主存空间占用情况"vvendl起始地址长度"«endl«endl;for(inti=O;i

7、vendl;}voidrecover(){〃内存的回收;intt;t=rand()%mem_table.size();〃随机选取一个非系统内存块进行回收;while(t==0)t=rand()%mem_table.size();vector::iteratorp=t+mem_table.begin();free_table.push_back(*p);mem_table.erase(p);〃将内存块与空闲分区进行合sort(free_table.begin(),free_table.end(),cmp);for(p=free_table.b

8、egin();p!=free_table.end();p++){并;if(p+l

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。