存储器的分配与回收(c#实现)

存储器的分配与回收(c#实现)

ID:3922966

大小:651.72 KB

页数:12页

时间:2017-11-25

存储器的分配与回收(c#实现)_第1页
存储器的分配与回收(c#实现)_第2页
存储器的分配与回收(c#实现)_第3页
存储器的分配与回收(c#实现)_第4页
存储器的分配与回收(c#实现)_第5页
资源描述:

《存储器的分配与回收(c#实现)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Collections;namespaceOS_2{classsuit//分配主存空间的类{publicvoidzxSuit(ArrayListkzfq,intneedSize)//最先适应法{inti=0;for(;i0)//与空闲分区相等{Console.WriteL

2、ine("存放在第{0:00}块",i+1);kzfq[i]=-(int)kzfq[i];break;}if(needSize0)//小于空闲分区大小{Console.WriteLine("存放在第{0:00}块",i+1);kzfq.Insert(i+1,(int)kzfq[i]-needSize);kzfq[i]=-needSize;break;}}if(i==kzfq.Count){Console.WriteLine("没有足够大的空闲分区来存储!");}}publicvoidzSuit

3、(ArrayListkzfq,intneedSize,boolway)//最…适应法{//布尔变量way为true时表示最优适应法,为false时表示最差适应法inti=-1,balance;//int存储块号balance表示选择分区与目标大小的差额if(way){balance=int.MaxValue;//int.MaxValue表示int类型中最大数}else第1页共12页{balance=int.MinValue;//int.MinValue表示int类型中最in数}for(intj=0;j0){intt

4、empBal=(int)kzfq[j]-needSize;if(tempBal>=0){if(way){if(tempBalbalance){balance=tempBal;i=j;}}}}}if(i==-1){Console.WriteLine("没有足够大的空闲分区来存储!");}else{Console.WriteLine("存放在第{0:00}块",i+1);if(balance==0){kzfq[i]=-(int)kzfq[i];}else{kzfq.Insert(i

5、+1,(int)kzfq[i]-needSize);kzfq[i]=-needSize;}第2页共12页}}}classrecover//回必主存的类{publicrecover(ArrayListfqlb){this.fqlb=fqlb;}publicvoidfindOccupied()//找到可以回收的分区{Console.Write("目前第");for(inti=0;i

6、cvoidrecMemory(intsite)//回收分区的函数{intrecSize=(int)fqlb[site];if(recSize>0)//当分区未占用时直接返回{Console.WriteLine("此分区未占用");return;}intfontSize=0,afterSize=0;if(site!=0){fontSize=(int)fqlb[site-1];}if(site!=fqlb.Count-1){afterSize=(int)fqlb[site+1];}if(fontSize>0&&afterSize==0)//回收分区为最后一块且前一块空闲{fq

7、lb[site-1]=fontSize+(-recSize);fqlb.RemoveAt(site);第3页共12页}if(fontSize<0&&afterSize==0)//回收分区为最后一块且前一块被占用{fqlb[site]=-recSize;}if(fontSize==0&&afterSize>0)//回收分区为第一块且后一块被空闲{fqlb[site]=-recSize+afterSize;fqlb.RemoveAt(site+1);}if(fontSize==0&&

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

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

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