课程设计通用动态分区分配存储管理系统演示

---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---1.概述动态分区分配存储管理在装入程序时按其初始要求分配,或在其执行过程中通过系统调用进行分配或改变分区大小,使其没有内碎片。而为了实现动态分配。通常是将系统屮的空闲分区链接成一个链。所谓顺序搜索,就是指依次搜索空闲分区链上的空闲分区,去寻找一个起大小能慢去要求的分区。基于顺序搜索的动态分区分配算法有四种,而本课题则重点在于实现其中三种,分别是循环首次适应算法,最佳适应算法,最坏适应算法。---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---2.课程设计任务及要求2.1设计任务动态分区分配存储管理2.2设计要求1.实现以下三种算法:1.循环首次适应算法2.最佳适应算法3.最坏适应算法2.内存屮有0-100M的空间力用户程序空间,最开始用户空间是空闲的3.作业数量、作业大小、进入内存时间、运行时间需要通过界面进行输入4.可读取样例数据(要求存放在外部文件屮)进行作业数W:、作业大小、进入内存时间、运行时间的初始化5.根据作业进入内存的时间,采用简单的先进先山原则进行从外存到内存的调度,作业具有等待(从外存进入内存执行)、装入(在内存可执行)、结朿(运行结朿,返出内存)三种状态。(为了简化,不考虑CPU的调度与切换,运行时间为作业在内存中驻留的时间)6.能够自动进行A存分配与冋收,可根据需要自动进行紧凑与拼接操作,所有过程均有动态图形变化的显示---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除------本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---3.算法及数据结构3.1算法的总体思想循环首次适应算法空W区指向下一个最佳适应算法L空⑷区jHMd卜•个苗技将作、Ik分紀剑最坏适应算法3.2进程的初始化模块3.2.1功能用于巾用户读入数据或随机生成数据以后,产生A存数裾和作业数裾,并根裾己有算法选择一种进行对作业数据的分配进内存。3.2.2内存初始化算法packageRX;importjava.util.*;publicclassrandomMemory{memory!Jm;//随机生成内存各个分K状态的构造阑数publicrandoniMcmory(){intsum=0,index=0;//sum内存里分区大小的总和.index分区的个数memory11temp;intindex1;//创迮一个足够大的数组存放随机生成的数,用于生成各个分区的大小,假定内存为5I2Kint[Jspa=newintl255J;Randomr=newRandom();for(inti=0;i<255;i++){intspace=r.nextlnt(99)+1;//使母个分丨*:人小不超过1()(),以璃多分区数sum+=space;//计兑内#退分IX大小的总和if(sum>511){Z/假如已超过内存容景,则直接将内存大小减去之前已生成的内存大小总和,表示敁后一个分区spalij=512-(sum•space);//表示嵌后~个分区的大小index++;break;)else{//否则存入spa数组spa[ij=space;index++;)Jtemp=ne\vmeinory『indexl;//存储内存分区状态的临吋数组intj=O;//代农分区的起始地址for(inti=0;i<index;i++){---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---intrand=r.nextlnl(2);//随机生成是否已分Sd的状态(0,1)tempii|=newmemory(i+1,spa[H,j,rand);j+=spafi];//起址为iKr一个元素的起址加上前一个元素的大小,j初始为0,供给第一个分区}index=teinp.length-1;//由于随机生成的内存分区状态,因此可能存在两个共至多个相邻的空闲内存分区,把这些相邻的介并在一起for(inti=0;i<=index;i++){if(tempii|.getm4()==0)(indexl=i;j=i+l;intvalue=temp[i].getm2();while(j<=index&&temp[jJ.getin4()==0){value+=temp|j|.getm2();j++;}if(value!=temp[ij.getin2()){temp[i].setm2(value);whilcQj<=indcx){teinp|++i|=temp|j++];temp[iJ.setm1(i+1);}index=i;//index代农此时合并后数组长度改变后的值}i=indexl;}}//敁后把有效的内存分区数组赋给mm=newinemory|index+l|;for(inti=0;i<=index;i++){mli]=temp[i];}}//含参数的构造函数publicrandoinNlcmory(incmorylJtcmp){m=temp:}//显示内存分区的状态publicstaticmemoryf]Free(memory[1m){//将内办分IX数组中空闲分Kf/入数组//先用foi•循环统...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

确认删除?