资源描述:
《请求分页存储管理实验报告》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划请求分页存储管理实验报告 存储管理实验报告 题目:1。存储管理 描述请求分页存储管理。 一.产生一个作业及作业页面序列 P(0,2,3,4,1,5,2,3,0,4,1,5)。 二.分配物理内存块数M。 三.采用FIFO,LRU置换算法。 四.设计原理:本程序提供两种分区管理法供用户使用,这两种算法是最佳适应算法和首次适应算法。 最佳适应算法要求将所有的空闲区,按其大小以递增的顺序形成一空闲区链。这样,第一次找到的
2、满足要求的空闲区,必然是最优的。但该算法会留下许多这样难以利用的小空闲区。 首次适应算法要求空闲分区链以地址递增的次序链接。在进行内存分配时,从链首开始顺序查找,直至找到一个能满足其大小要求的空闲分区为止。然后,再按照作业的大小,从该分区中划出一快内存空间分配该请求者,余下的空闲分区仍留在空闲链中。 三.不足之处:目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素
3、质的培训计划 该程序可以用文件形式输入作业的信息,但是该文件没有绑定在程序中。不过,用户用键盘输入的作业的信息会自动保存到该文件中,下次当以文件形式输入作业信息时,文件中的内容是上一次用户用键盘输入的内容。P(pi),例如: 四.源程序以及解释: #include #include #include intmemor(来自:写论文网:请求分页存储管理实验报告)yStartAddress=-1; intmemorySize=-1; structjobList //作业后备队列的链结点 { intid;//作业的ID号in
4、tsize;//作业的大小intstatus;//作业状态structjobList*next; }; structfreeList//空闲链的链结点{ intstartAddress;//空闲分区的首地址intsize;//空闲分区的大小structfreeList*next; }; structusedList//已分配内存的作业链{ intstartAddress;//以分配内存的首地址intjobID;目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安
5、全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 structusedList*next; }; voiderrorMessage(void)//出错信息{ printf("t错误!a"); printf("按任意键继续!"); getch(); exit(1); } voidopenFile(FILE**fp,char*filename,char*mode)//打开文件函数{ if((*fp=fopen(filename,mode))==
6、NULL) { printf("不能打开%s.",filename); errorMessage(); } } voidmakeFreeNode(structfreeList**empty,intstartAddress,intsize)//申请内存空间{ if((*empty=malloc(sizeof(structfreeList)))==NULL)目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目
7、的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 { printf("没有足够空间."); errorMessage(); } (*empty)->startAddress=startAddress;//当有足够空间时,则分配(*empty)->size=size; (*empty)->next=NULL; } voidiniMemory(void)//输入要求分配内存的首地址,大小{ charMSA[10],MS[10]; printf("请输入要分配内存的首地址!"); scanf("%s
8、",MSA); memoryStartAddress=atoi(MSA); printf("请输入要分配内存的大小!"); scanf("%s",MS); memor