首页 内存分区实验报告

内存分区实验报告

举报
开通vip

内存分区实验报告操作系统与Linux 实 验 报 告 实验名称 动态分区算法实验报告 姓    名               学    号       班    级                             教    师                                 日    期         一、 实验目的 1.加深对可变分区的存储管理的理解;            2.掌握用指针实现链表和在链表上的基本操作。 二、 实验内容 用循环首次适应和最佳适应算法法模拟UNIX 可变分区...

内存分区实验报告
操作系统与Linux 实 验 报 告 实验名称 动态分区算法实验报告 姓    名               学    号       班    级                             教    师                                 日    期         一、 实验目的 1.加深对可变分区的存储管理的理解;            2.掌握用指针实现链表和在链表上的基本操作。 二、 实验 内容 财务内部控制制度的内容财务内部控制制度的内容人员招聘与配置的内容项目成本控制的内容消防安全演练内容 用循环首次适应和最佳适应算法法模拟UNIX 可变分区内存管理,实现对该内存区的分配和释放管理的功能。 三、 实验原理 (1)循环首次适应算法    模拟UNIX 的进程管理程序采用的是循环首次适应算法,具体算法如下:      系统每次为进程分配资源时,从上次找到的空闲分区的下一个空闲分区开始查找,直到找到一个能满足要求的空闲分区,从中划出一块与请求大小相等的内存空间分配给作业。 (2)循环最佳适应算法 模拟UNIX 的进程管理程序采用的是最佳适应算法,具体算法如下:      系统每次为进程分配资源时,从上次找到的空闲分区的下一个空闲分区开始查找,直到找到一个能满足要求且最小的的空闲分区,从中划出一块与请求大小相等的内存空间分配给作业。 2.物理设计 (1)struct WORK { string NAME;        //作业名称 int After_SPACE;    //该作业跟上一个作业之间的空闲内存空间 int SPACE;            //需要的内存空间 int StartPoint;        //作业在内存里开始的位置 int EndPoint;        //作业在内存里结束的位置 WORK *next; }; WORK* FWork ; // 从内存开始0位置向下数第一个作业 #define FULL_ MEM 640    //定义内存空间大小为640KB 四、 开发环境 Vs2010 五、 程序流程图,具体步骤截图与代码注释 1.程序流程图 2.代码段: #include #include #include #include using namespace std; /*****************/ /*  定义作业类  */ /*****************/ struct WORK { string NAME;        //作业名称 int After_SPACE;    //该作业跟上一个作业之间的空闲内存空间 int SPACE;            //需要的内存空间 int StartPoint;        //作业在内存里开始的位置 int EndPoint;        //作业在内存里结束的位置 WORK *next; }; /*****************/ /*  定义基础信息 */ /*****************/ #define FULL_MEM 640  // 总内存为640K int 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<<"请输入写有你内存申请的文件:"; string File; getline(cin,File); system("cls"); cout<<"请输入你选择的算法:"<>n; system("cls"); switch(n) { case 1:cout<<"首次适应服务"<StartPoint == 0) { cout<NAME<<"    00"<StartPoint<<"      "<EndPoint<<"        "<SPACE<NAME<<"    "<StartPoint<<"      "<EndPoint<<"        "<SPACE<next; } cout<>CurrentWork->NAME ;) { ifile>>Action; if(Action == "申请") { ifile>>CurrentWork->SPACE; cout<NAME<SPACE<<"kb"< CurrentWork->SPACE)        //查看内存O到第一作业间是否有足够空间存放申请的作业 { fWork->NAME = CurrentWork->NAME; fWork->SPACE= 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; } else { for(fWork = FWork ; fWork!=NULL ; fWork = fWork->next) { if(fWork->After_SPACE > CurrentWork->SPACE ) { CurrentWork->After_SPACE = fWork->After_SPACE - CurrentWork->SPACE; CurrentWork->StartPoint = fWork->EndPoint; CurrentWork->EndPoint = CurrentWork->StartPoint + CurrentWork->SPACE; fWork->After_SPACE = 0;        //新作业进入,fWork与新作业之间的空闲内存空间变为0 CurrentWork->next = fWork->next; fWork->next = CurrentWork; CurrentWork = new 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; } } else { iFile>>CurrentWork->SPACE; cout<NAME<SPACE<<"kb"<NAME == CurrentWork->NAME)    { if( FWork->SPACE == CurrentWork->SPACE ) { First_FreeSpace = CurrentWork->SPACE + First_FreeSpace + FWork->After_SPACE; FWork = FWork->next; } else { FWork->SPACE = FWork->SPACE - CurrentWork->SPACE; FWork->After_SPACE = FWork->After_SPACE + CurrentWork->SPACE;
本文档为【内存分区实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_721103
暂无简介~
格式:doc
大小:27KB
软件:Word
页数:0
分类:互联网
上传时间:2019-08-31
浏览量:13