欢迎来到优知文库! | 帮助中心 分享价值,成长自我!
优知文库
全部分类
  • 幼儿/小学教育>
  • 中学教育>
  • 高等教育>
  • 研究生考试>
  • 外语学习>
  • 资格/认证考试>
  • 论文>
  • IT计算机>
  • 法律/法学>
  • 建筑/环境>
  • 通信/电子>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 优知文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    动态分区存储管理方式的主存分配回收实验参考[].docx

    • 资源ID:1777725       资源大小:73.43KB        全文页数:13页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: QQ登录
    二维码
    扫码关注公众号登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,如果您不填写信息,系统将为您自动创建临时账号,适用于临时下载。
    如果您填写信息,用户名和密码都是您填写的【邮箱或者手机号】(系统自动生成),方便查询和重复下载。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    动态分区存储管理方式的主存分配回收实验参考[].docx

    动态分区存储管理方式的主存安排回收试验报告一、试验目的深化了解动态分区存储管理方式的主存安排回收的实现。二、试验要求编写程序完成动态分区存储管理方式的主存安排回收的实现。试验详细包括:首先确定主存空间安排表;然后采纳最优适应算法完成主在空间的安排,完成主存空间的回收:最终编写主函数对所作工作进程测试。三、试验原理:存储管理中动态分区的管理方式。四、试验程序设计1 .数据结构已分分区表的数据结构定义/definen10假定系统允许的最大作业数量为ntypedefstructusedf1.oataddress;已分分区起始地址f1.oat1.ength;已分分区长度,单位为字节CStringf1.ag;已安排区表登记栏标记,用"0"表示空栏目,作业名表示运用USED;已安排区表USEDused_tab1.en:空闲区表的数据结构定义definem10假定系统允许的空闲区表最大为mtypedefstructfree(f1.oataddress;空闲区起始地址f1.oat1.ength;空闲区长度,单位为字节intf1.ag;空闲区表登记栏标记,用"0”表示空栏目,用”1表示未安排FREE;空闲区表FREEfree_tab1.em;2 .功能函数设计I)系统数据初始化free-tab1.e0.address=10240:freetab1.e0.1.ength=102400:free-tab1.eO.fIag=I;空闲区表初始化for(i=1.:i<m;i+)freetab1.ei.f1.ag=0;空闲区表初始化for(i=0;i<n;i+)used_tab1.ei.f1.ag='。;2)安排函数voi<iCExp3D1.g:a1.1.ocatc(CStringJ,f1.oatxk)采纳最优安排算法安排xk大小的空间(inti,k;f1.oatad:k=-1.:for(i=0:i<m:i+)找寻空间大于Xk的最小空闲区登记项kif(free_tab1.ei.1.ength>=xk&&free_tab1.ei.f1.ag=1.)if(k=-1.Ifree_tab1.ei.1.ength<free_tab1.ek.1.ength)k=i;if(k=-1.)未找到可用空闲区,返回(11/5-刈60528680*("无可用空闲区”);return;)/*找到可用空闲区,起先安排:若空闲区大小与要求安排的空间差小于minisize大小,则空闲区全部安排:若空闲区大小与要求安排的空间差大于minisize大小,则从空闲区划出一部分安排*/if(free_tab1.ek1.1.ength-k<=minisize)(free-tab1.ek.f1.ag=O;ad=free_tab1.ek.address;xk=free_tab1.ek.1.ength;)e1.se(free_tab1.ek.1.ength=free_tab1.ek.1.ength-xk;ad=free_tab1.ek.address+free_tab1.ek.1.ength:修改已安排区表i=0;whi1.e(used-tab1.ei.f1.ag!三,O'&&i<m)/找寻空表目i+;if(i>=m)无表目填写已分分区(MessageBox("无表目填写已分分区,错误”);/修正空闲区表if(free-tab1.ek.f1.ag=O)前面找到的是整个空闲区free-tab1.ek.fIag=I;e1.se前面找到的是某个空闲区的一部分free-tab1.ek.1.ength=free-tab1.ek.1.ength+xk:return;修改已安排区表e1.seused_tab1.ei.address=ad:usedtab1.ei.1.ength=xk;used-tab1.ei.f1.ag=J;return;)3)回收函数voidCExp3D1.g:rec1.aim(CStringJ)回收作业名为J的作业所占主存空间(inti,k,j,s,t;f1.oatS11.;找寻已安排区表中对应登记项s=0;whi1.e(used_tab1.es.f1.ag!=J'used_tab1.es.f1.ag='0')&&s<n)s+;/在已安排区表中找不到名字为J的if(s>=n)作业MCSSageBox("找不到该作业”);return;)修改已安排区表USed_tabes.f1.ag=*0'取得归还分区的起始地址S和长度1.S=USed_tab1.es.address;1.=used_tab1.es.1.ength;j=-1.;k=-1.;i=0;找寻回收分区的上下邻空闲区,上邻表目k,下邻表目whi1.e(i<MIM&&(j=-1.|:k=-1.)(if(free_tab1.ei.f1.ag=0)(if(free_tab1.ei.address+free_tab1.ei.1ength=S)k=i;找到上邻if(free_tab1.ei.address=S+1.)j=i;找到下邻i+;if(k!=-1.)/上邻空闲区,下邻空闲区,三项合并free_tab1.ek.1.ength=free_tab1.ej.1.ength+free-tab1.ek.Iength+1.;free-tab1.ej.f1.ag=O;)e1.se/上邻空闲区,下邻非空闲区,与上邻合并free-tab1.ek.1.ength=free-tab1.ek.1.ength+1.:e1.seif(j!=-1.)上邻非空闲区,下邻为空闲区,与下邻合并(free_tab1.ej.address=S;free-tab1.ej.1.ength=free_tab1.ej,1.ength+1.:)e1.se上下邻均为非空闲区,回收区域干脆填入(在空闲区表中找寻空栏目t=0;whi1.e(free_tab1.et.f1.ag=1.&&t<MMM)t+;空闲区表满,回收空间失败,将已安排区表复原MeSSageBox("主存空闲表没有空间,回收空间失败”);used-tab1.es.fIag=J;return;free_tab1.et.address=S;free_tab1.et.Iength=1.:free_tab1.et.fIag=I;)return;)4)按钮函数设计 【安排】按钮voidCExp3D1.g:OnButtonA1.Ioc()(this->UpdateData(true);CStringname;f1.oatsize;name=this->m_EDIT_NAME;size=this->mEDITSIZE;a1.1.ocate(name,size);I 【回收】按钮voidCExp3D1.g:OnButtonRec1.aimO(this->UdateData(true);CStringname;nane=this->mEDITNAME;this->recIaim(name);) 【显示安排区】按钮voidCExp3D1.g:OnButtonA1.IocateO(CStringstr,xx;C1.istBox*1.:1.=&m_1.IST_A1.1.OC;1.->ResetContentO;分区长度1.->InsertString(O,”起始地址标记"):for(intj=0;j<10;j+)xx.Format(*%-8.2f*,used_tab1.ej.address);str+=xx+”;xx.Format(*%-8.2f*,used-tab1.ej.1.ength);str+=xx+”;xx.Format(*%s*,used-tab1.ej.f1.ag);str+=xx;1.->InsertString(j+1.,str);)【显示回收区】按钮voidCExp3D1.g:OnButtonFreeO(/TODO:Addyourcontro1.notificationhand1.ercodehereCStringstr,xx;C1.istBox*1.;1.=111.ISTFREE;1.->KesetContentO;1.->InsertString(O,”起始地址分区长度标记”);for(intj=O;j<MMM:j+)str=xx.Format(*%-8.2f*,free_tab1.ej.address);str+=xx+”;xx.Format(*%-8.2f*,free-tab1.ej.1.ength);str+=xx+z,”;xx.Format(*%5d*,free_tab1.ej.f1.ag);str+=xx;1.->InsertString(j+1.,str);)3.界面设计本程序的界面力求简洁、友好,每一步须要用户操作的提示以与每一次用户操作产生的调度结果都以中文的形式显示在屏幕上,运用户对要做什么和已经做了什么一目了然。五、试验结果与分析1.本程序可以模拟动态分区存储管理方式的主存安排回收过程,并在对话框中进行显示,经检验,结果正确。但是,这个程序的优化还是尚待完善的,比如:(I)应在分别在安排和回收时设置计数器,以记录当前空闲区和安排区中作业的数目,这样,就可以在显示时便于限制,不要一次显示数组中的全部储存信息,影响界面整齐程序只是简洁的实现了安排与Im收的过程,对于一些细微环节问题和边界问题出力的比较粗糙。例如当没有安排区没有作业时,【回收】按钮应失效:在进行回收过程时,不仅要输入作业名,还要输入作业大小,这在实际应用中是很不便利的。2.测试样本数据如下:1安排作业(作业名-作业大小)a-2,b-12,c-15,d-18应进行限制,使界面整齐,应进行限制,使界面整齐安排作业e-58,回收作业a

    注意事项

    本文(动态分区存储管理方式的主存分配回收实验参考[].docx)为本站会员(王**)主动上传,优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知优知文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 yzwku网站版权所有

    经营许可证编号:宁ICP备2022001189号-2

    本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。优知文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知优知文库网,我们立即给予删除!

    收起
    展开