实验报告,内存的认识

上传人:bin****86 文档编号:59980520 上传时间:2018-11-13 格式:DOCX 页数:13 大小:18.77KB
返回 下载 相关 举报
实验报告,内存的认识_第1页
第1页 / 共13页
实验报告,内存的认识_第2页
第2页 / 共13页
实验报告,内存的认识_第3页
第3页 / 共13页
实验报告,内存的认识_第4页
第4页 / 共13页
实验报告,内存的认识_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《实验报告,内存的认识》由会员分享,可在线阅读,更多相关《实验报告,内存的认识(13页珍藏版)》请在金锄头文库上搜索。

1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划实验报告,内存的认识信息科学与技术学院实验报告课程名称:实验项目:实验地点:指导教师:日期:实验类型:专业:计算机外包班级:14外三姓名:周鹏飞学号:一、实验目的及要求通过此次实验,加深对内存管理的认识,进一步掌握内存的分配,回收算法的思想。二、实验仪器、设备或软件Windows操作系统PC一台;VC+三、实验内容及原理原理:设计程序模拟内存的动态分区内存管理方法。内存空闲区使用空闲分区表进行管理,采用最先适应算法从空闲分区表中寻找空闲区进行分配,内存回收时不考虑与相邻空闲分区的合并

2、。假定系统的内存共640k,初始状态为操作系统本身占用时刻,为作业A,B,C分配80k,60k,100k的内存空间;t2时刻作业B完成;t3时刻为作业D分配50k的内存空间;t4时刻作业C,A完成;t5时刻作业D完成。要求编程序分别输出t1,t2,t3,t4,t5时刻内存的空闲区的状态。实验内容:#include#include#definemaxPCB6/最大进程数#definemaxPart6/最大空闲分区数#definesize10/不再切割剩余分区的大小typedefstructPCB_typecharname;/进程名intaddress;/进程所占分区首地址intlen;/进程所占

3、分区的长度intvalid;/PCB标识符PCB;Typedefstructseqlist/进程信息队列PCBPCBelemmaxPCB;/maxPCB为为系统中允许的最多进程数inttotal;/系统中实际的进程数PCBseql;/分区类型的描述typedefstructPartitionintaddress;/分区起址intlen;/分区的长度intvalid;/有标识符Part;/内存空闲分区表描述typedefstructPartlist/空白分区链PartPartelemmaxPart;/maxPart为系统中可能的最多空闲分区数intsum;/系统中世纪的分区数Partseql;/

4、全局变量PCBseql*pcbl;/进程队列指针Partseql*part1;/空闲队列指针#intclude“”voidinitpcb()/初始化进程表vpcb1inti;pcb1-PCBelem0.address=0;pcb1-PCBelem0.len=0;pcb1-PCBelem0.name=s;pcb1-PCBelem0.valid=1;pcb1-total=0;for(i=1;iPCBelem0.name=0;pcb1-PCBelem0.address=0;pcb1-PCBelem0.len=0;pcb1-PCBelem0.valid=0;voidinitpart()/初始化空闲分区

5、表vpart1intI;pcb1-PCBelem0.address=40;pcb1-PCBelem0.len=600;pcb1-PCBelem0.valid=1;for(i=1;iPCBelem0.address=0;pcb1-PCBelem0.len=0;pcb1-PCBelem0.valid=0;part1-sum=1;voidrequest(charname,intlen)/进程name请求len大小的内存inti,j,k;intaddress;for(i=0;isum;i+)if(partl-Partelemi.len=len)address=partl-Partelemi.addre

6、ss;if(partl-Partelemi.len-len=size)partl-Partelemi.address+=len;partl-Partelemi.len-=len;partl-Partelemi.valid=1;elsefor(j=i;jPartelemj=partl-Partelemj+1;partl-Partelemj.valid=0;partl-Partelemj.address=0;partl-Partelemj.len=0;partl-sum-;for(k=0;kPCBelemk.valid=0)pcbl-PCBelemk.address=address;pcbl-PC

7、Belemk.len=len;pcbl-PCBelemk.name=name;pcbl-PCBelemk.valid=1;pcbl-total+;break;break;elseprintf(“内存紧张,暂时不予分配,请等候!”);voidrelease(charname)/回收name进程所占的内存空间inti;for(i=0;iPCBelemi.name=ame)if(pcb1-PCBelemi.valid=0)printf(“%c进程非运行进程,无法结束!”,name);elsepcb-PCBelemi.valid=0;pcb-total-;part-Partelempart1-sum.

8、address=pcb1-PCBelemi.address;part1-Partelempart1-sum.valid=1;part1-sum+;voidprint()/输出内存空闲分区inti;printf(“当前的进程有:n”);printf(“nameaddresslengthn”);for(i=1;iPCBelemi.name,pcb1-PCBelemi.address,pcb-PCBelemi.len);printf(“当前的空闲分区有:n”);printf(“addresslengthn”);for(i=0;iPartelemi.valid=1)printf(“%d%dn”,par

9、t1-Partelemi.address,part1-Partelemi.len);voidmain()charch;charpcbname;intpcblen;PCBseqlpcb;Partseqlpcb;Pcb1=%part;initpcb();initpart();printf(“t*MENU*n”);printf(“t*Enter:r请求分配内存*n”)printf(“t*Enter:s进程结束*n”)printf(“t*Enter:p打印分配情况*n”)printf(“t*Enter:e退出操作系统与Linux实验报告实验名称动态分区算法实验报告姓名学号班级教师日期一、实验目的1加深

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

11、个能满足要求且最小的的空闲分区,从中划出一块与请求大小相等的内存空间分配给作业。2物理设计structWORKstringNAME;/作业名称intAfter_SPACE;/该作业跟上一个作业之间的空闲内存空间intSPACE;/需要的内存空间intStartPoint;/作业在内存里开始的位置intEndPoint;/作业在内存里结束的位置WORK*next;WORK*FWork;/从内存开始0位置向下数第一个作业#defineFULL_MEM640/定义内存空间大小为640KB四、开发环境VsXX五、程序流程图,具体步骤截图与代码注释1.程序流程图2.代码段:#include#includ

12、e#include#includeusingnamespacestd;/*/*定义作业类*/*/structWORKstringNAME;/作业名称/该作业跟上一个作业之间的空闲内存空间/需要的内存空间/作业在内存里开始的位置/作业在内存里结束的位置intAfter_SPACE;intSPACE;intStartPoint;intEndPoint;WORK*next;/*/*定义基础信息*/*/#defineFULL_MEM640/总内存为640Kintstate=1;/提示作业申请状态intFirst_FreeSpace=640;/内存0到第一个作业间的空闲内存(初始化状态下,为640K即为整个内存)WORK*FWork=NULL;voidFCFS(stringFile);voidBest_Adaptation(stringFil

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号