付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验项目名称可变分区存储管理方式的内存分配回收实验目的及要求深入了解采用可变分区存储管理方式的内存分配回收的实现实验内容编写程序完成可变分区存储管理方式的内存分配回收实验步骤确定内存空间分配表采用最优适应算法完成内存空间的分配和回收编写主函数对所做工作进行测试实验环境WindowsXP、visualstudio2005实验结果与分析#definen10#definem10#defineminisize100struct{ floataddress; floatlength; intflag;}usedtable[n];struct{ floataddress; floatlength; intflag;}free_table[m];allocate(j,xk)charj;floatxk;{ inti,k; floatad; k=-1; for(i=0;i<m;i++) if(free_table[i].length>=xk&&free_table[i].flag==1) if(k==-1||free_table[i].length<free_table[k].length) k=i; if(k==-1) {printf("无T可¨¦用®?空?闲D区?\n"); return; } if(free_table[k].length-xk<=minisize) { free_table[k].flag=0; ad=free_table[k].address; xk=free_table[k].length; } else {free_table[k].length=free_table[k].length-xk; ad-free_table[k].address+free_table[k].length; } i=0; while{used_table[i].flag!=0&&i<n) i++; if(i>=n) {printf("无T表À¨ª目?填¬?写¡ä已°?分¤?分¤?区?,ê?错䨪误¨®\n"); if(free_table[k].flag==0) free_table[k].flag=1; else {used_table[i].address=ad; used_table[i].length=xk; used_table[i].flag=j; } return; }reclaim(j)charJ;{inti,k,j,s,t;floatS,L;s=0;while((used_table[s].flag!=J||used_table[s].flag==0)&&s<n) s++;if(s>=n){printf("找¨°不?到Ì?该?作Á¡Â业°¦Ì\n");return;}used_table[s].flag=0;s=used_table[s].address;L=used_table[s].length;j==1;k=-1;i=0;while(i<m&&(j==-1||k==-1)){ if(free_table[i].glag==0) {if(free_table[i].address+free_table[i].length==s)k=i; if(free_table[i].address==S+L)j=i; } i++;}if(k!=-1) if(j!=1) {free_table[k].length=free_table[j].length+free_table[k].length+L;free_table[j].flag=0;} else free_table[k].length=free_table[k].length+L;else if(j!=-1) {free_table[j].address=S;free_table[j].length=free_table[j].length+L;} else { t=0; while(free_table[t].flag==1&&t<m) t++; if(t>=m) { printf("内¨²存ä?空?闲D表À¨ª没?有®D空?间?,ê?回?收º?空?间?失º¡ì败㨹\n"); used_table[s].flag=J; return; } free_table[t].address=S; free_table[t].length=L; free_table[t].flag=1; } return(ture); main() { inti,a; floatxk; charJ; free_table[0].address=10240; free_table[0].length=102400; free_table[0].flag=1; for(i=1;i<m;i++) free_table[i].flag=0; for(i=0;i<n;i++) used_table[i].flag=0; while(l) {printf("选?择?功|能¨¹项?(ê¡§0退ª?出?,ê?1分¤?配?内¨²存ä?,ê?2回?收º?内¨²存ä?,ê?3显?示º?内¨²存ä?)ê?\n"); printf("选?择?功|能¨¹项?(ê¡§0~3)ê?:êo"); scanf("%d",&a); switch(a) {case0;exit(0); case1; printf("输º?入¨?作Á¡Â业°¦Ì名?J和¨ª作Á¡Â业°¦Ì所¨´需¨¨长¡è度¨¨xk:êo"); scanf("%*c%c%f",&J,&xk); allocate(J,xk); break; case2; printf("输º?入¨?要°a回?收º?分¤?区?的Ì?作Á¡Â业°¦Ì名?"); scanf("%*c%c",&J); reclaim(J); break; case3; printf("输º?入¨?空?闲D区?表À¨ª:êo\n起e始º?地Ì?址¡¤分¤?区?长¡è度¨¨标À¨º志?\n"); for(i=0;i<m;i++) printf("%5.0f%10.0f%6d\n",free_table[i].address,free_table[i].length,free_table[i].flag); printr("按ã¡ä任¨?意°a键¨¹,ê?输º?出?已°?分¤?分¤?区?表À¨ª\n"); getch(); printf("输º?出?已°?分¤?分¤?区?表À¨ª:êo\n起e始º?地Ì?址¡¤分¤?区?长¡è度¨¨标À¨º志?\n"); for(i=0;i<n;i++) if(used_table[i].flag!=0) printf{"%6.0f%9.0f%6c\n",used_table[i].address,used_table[i].length,used_table[i]flag); else
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 五年级(下)数学思维提升十大类应用题 26新
- 2026年药房管理系统合同协议
- 2026年邮件外包投递合同(1篇)
- 皮肤受损后的护理要点
- 传染病防控管理制度
- 绘本在幼儿情绪管理教育中的选择标准与应用案例库
- 考研政治马原部分必背核心原理及答题模板框架
- 全国计算机等级考试二级MS-office-难点易错题总结笔记
- 纹唇过程中的卫生与安全
- 新型冠状病毒个人防护技巧
- 化工安全设计课件
- 2025中国智慧停车行业研究报告
- 诊所财务室制度规范要求
- 2026云南三支一扶考试(810人)易考易错模拟试题(共500题)试卷后附参考答案
- CRRT治疗时机及剂量
- 智能网联汽车运营监管平台解决方案
- 伊利纯奶品牌介绍
- 设备主管转正述职报告
- (统编版2026新教材)三年级语文上册晨读必背知识
- 2025辽宁沈阳地铁集团有限公司所属公司拟聘用人员模拟试卷含答案
- 国企管理内部控制办法
评论
0/150
提交评论