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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

内存分区实验报告.docx

1、内存分区实验报告操作系统与Linux实 验 报 告实验名称 动态分区算法实验报告姓 名 学 号 班 级 教 师 日 期 一、 实验目的1加深对可变分区的存储管理的理解; 2掌握用指针实现链表和在链表上的基本操作。二、 实验内容用循环首次适应和最佳适应算法法模拟UNIX 可变分区内存管理,实现对该内存区的分配和释放管理的功能。三、 实验原理(1)循环首次适应算法 模拟UNIX 的进程管理程序采用的是循环首次适应算法,具体算法如下: 系统每次为进程分配资源时,从上次找到的空闲分区的下一个空闲分区开始查找,直到找到一个能满足要求的空闲分区,从中划出一块与请求大小相等的内存空间分配给作业。(2)循环最

2、佳适应算法模拟UNIX 的进程管理程序采用的是最佳适应算法,具体算法如下: 系统每次为进程分配资源时,从上次找到的空闲分区的下一个空闲分区开始查找,直到找到一个能满足要求且最小的的空闲分区,从中划出一块与请求大小相等的内存空间分配给作业。2物理设计(1)struct WORKstring NAME; /作业名称int After_SPACE; /该作业跟上一个作业之间的空闲内存空间int SPACE; /需要的内存空间int StartPoint; /作业在内存里开始的位置int EndPoint; /作业在内存里结束的位置WORK *next;WORK* FWork ; / 从内存开始0位置

3、向下数第一个作业 #define FULL_ MEM 640 /定义内存空间大小为640KB四、 开发环境Vs2010五、 程序流程图,具体步骤截图与代码注释1.程序流程图2.代码段:#include #include #include #include using namespace std;/*/* 定义作业类 */*/struct WORKstring NAME; /作业名称int After_SPACE; /该作业跟上一个作业之间的空闲内存空间int SPACE; /需要的内存空间int StartPoint; /作业在内存里开始的位置int EndPoint; /作业在内存里结束的位

4、置WORK *next;/*/* 定义基础信息 */*/#define FULL_MEM 640 / 总内存为640Kint state = 1; /提示作业申请状态(1-申请成果;0-申请失败)int First_FreeSpace = 640; /内存0到第一个作业间的空闲内存(初始化状态下,为640K即为整个内存)WORK* FWork = NULL; /第一个作业void FCFS(string File);void Best_Adaptation(string File);/*/* 界面设计 */*/void display_main()cout请输入写有你内存申请的文件:;stri

5、ng File;getline(cin,File);system(cls);cout请输入你选择的算法:endl;cout1.首次适应算法endl;cout2.最佳适应算法endl;cout3.退出n;system(cls);switch(n)case 1:cout首次适应服务endlendl;FCFS(File);break;case 2:cout最佳适应算法endlendl;Best_Adaptation(File);break;case 3:exit(0);break;void display() /输出每次作业活动的结果WORK* temp = FWork;cout作业 起始位置 终止

6、位置 占用内存大小endl;coutStartPoint = 0)coutNAME 00StartPoint EndPoint SPACEendl;elsecoutNAME StartPoint EndPoint SPACEnext;coutCurrentWork-NAME ;)ifileAction;if(Action = 申请)ifileCurrentWork-SPACE;coutNAMEActionSPACEkb CurrentWork-SPACE) /查看内存O到第一作业间是否有足够空间存放申请的作业fWork-NAME = CurrentWork-NAME;fWork-SPACE=

7、CurrentWork-SPACE;fWork-StartPoint = 0;First_FreeSpace = 0;fWork-EndPoint = fWork-StartPoint + fWork-SPACE;fWork-After_SPACE = FWork-StartPoint - fWork-EndPoint; /计算作业之间的空闲内存空间fWork-next = FWork;FWork = fWork;elsefor(fWork = FWork ; fWork!=NULL ; fWork = fWork-next)if(fWork-After_SPACE CurrentWork-S

8、PACE )CurrentWork-After_SPACE = fWork-After_SPACE - CurrentWork-SPACE;CurrentWork-StartPoint = fWork-EndPoint;CurrentWork-EndPoint = CurrentWork-StartPoint + CurrentWork-SPACE;fWork-After_SPACE = 0; /新作业进入,fWork与新作业之间的空闲内存空间变为0CurrentWork-next = fWork-next;fWork-next = CurrentWork;CurrentWork = new

9、WORK();break;else /第一次有作业申请 或 内存完全空闲时有作业申请fWork-NAME = CurrentWork-NAME;fWork-SPACE= CurrentWork-SPACE;fWork-After_SPACE = First_FreeSpace - fWork-SPACE;fWork-StartPoint = 0;fWork-EndPoint = fWork-StartPoint + CurrentWork-SPACE;fWork-next = NULL;FWork = fWork;First_FreeSpace = 0;elseiFileCurrentWork-SPACE;coutNAMEActionSPACEkbNAME = CurrentWork-NAME) if( FWork-SPACE = CurrentWork-SPACE )First_FreeSpace = CurrentWork-SPACE + First_FreeSpace + FWork-After_SPACE;FWork = FWork-next;elseFWork-SPACE = FWork-SPACE - CurrentWork-SPACE;FWork-After_SPACE = FWork-After_SPACE + CurrentWork-SPACE;

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

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