ImageVerifierCode 换一换
格式:DOCX , 页数:16 ,大小:115.17KB ,
资源ID:14945460      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/14945460.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(内存分配算法实验报告Word下载.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

内存分配算法实验报告Word下载.docx

1、要求:1. 设计数据结构,存储结构;2. 在c兼容环境完成上述题目的代码编写与调试;3. 程序运行及诶按交互性好;4. 软件运行,给出测试数据。工作计划与进度安排: 第14周:布置课程设计任务,查阅资料,分组设计,程序调试。 第15周:程序调试,编写课程设计报告,验收,答辩。指导教师:2015年11月 28日专业负责人:学院教学副院长:1设计目的1) 了解多道程序系统中,多个进程并发执行的内存资源分配;2) 模拟可变分区内存储管理算法实现分区管理的最佳适应分配算法;3) 通过实现最佳算法来进一步了解静态分区模式的优缺点;4) 掌握最佳适应分配算法,深刻了解各进程在内存中的具体分配策略。2总体设

2、计3关键技术allocate(): 实现内存分配,并当中调用display(pbc),以及display(S)两个函数显示内存分配完成后的空闲块链表和进程链表情况。requireback():实现内存回收,在满足情况的条件下调动allocate()对用户社情的内存块进行回收并在当中调用display(pbc),以及display(S)两个函数显示内存分配完成后的空闲块链表和进程链表情况。callback(): 按内存回收时的四种情况对内存进行回收。display(pbc): 对空闲块链表中的空闲快惊醒从小到大排序并显示空闲链情况。display(S): 对进程链表中的进程进行从小到大排序并显示

3、进程链情况。main(): 创建并初始化空闲块链表和进程链链表,用户选择操作功能。4程序流程图4-1图4-25主要源代码#include iostream.hstring.hiomanip.hconst int MAXJOB=100; /定义表最大记录数 typedef struct node int start; /空闲分区的起始地址int length; /空闲分区的长度 char tag20; /分区信息是否已分配job;job freesMAXJOB; /定义空闲区表 int free_quantity; /空闲区的个数job occupysMAXJOB;/定义已分配区表 int oc

4、cupy_quantity; /已分配区的个数/初始化函数 void initial() int i;for(i=0;iMAXJOB;i+)freesi.start=-1;freesi.length=0;strcpy(freesi.tag,free);occupysi.start=-1;occupysi.length=0;strcpy(occupysi.tag, free_quantity=0;occupy_quantity=0; /读数据函数 int readData() FILE *fp;char fname20;coutendlfname;if(fp=fopen(fname,r)=NUL

5、L) /读文件 cout 错误,文件打不开,请检查文件名! else while(!feof(fp) /文件结束 fscanf(fp,%d,&freesfree_quantity.start);freesfree_quantity.length); free_quantity+;return 1;return 0;/sort选择排序 void sort() int i,j,p;free_quantity-1;i+) p=i; for(j=i+1;jfree_quantity;j+)/空闲分区按地址递增的顺序排列 if(freesj.startfreesp.start) p=j;if(p!=i)

6、 freesfree_quantity=freesi;freesi=freesp;freesp=freesfree_quantity; /显示函数 void view() -当前空闲表:起始地址 长度 状态cout.setf(2);cout.width(12);freesi.start;cout.width(10);freesi.length;cout.width(8);freesi.tag-当前已分配表:起始地址 长度 占用作业名occupy_quantity;i+) occupysi.start;occupysi.length;occupysi.tag=job_length) flag=1

7、; /可以分配 if(flag=0) Sorry,当前没有能满足你申请长度的空闲内存,请稍候再试else t=0; i=0;while(t=0) =job_length) /从空闲分区表顺序查找,直到找到第一能满足其大小要求的空闲分区为止 t=1;i+;i-;occupysoccupy_quantity.start=freesi.start; /修改已分区的相关信息strcpy(occupysoccupy_quantity.tag,job_name);occupysoccupy_quantity.length=job_length;occupy_quantity+;job_length) fr

8、eesi.start+=job_length;freesi.length-=job_length;else /刚好分配则空闲分区数减一 for(j=i;j+) freesj=freesj+1;free_quantity-; 内存空间成功!/最优适应分配算法 void excellent() /空闲分区按大小递增的顺序排列=job_length) if(flag=0) Sorry,当前没有能满足你申请长度的空闲内存,请稍候再试!t=0;i=0;while(t=0) t=1;for(j=0;if(freesj.length=job_length)&(freesj.lengthfreesi.length) i=j;job_length) for(j=i;j+) freesj=freesj+1;free_quantity-

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1