文档介绍://{//用Node来模拟内存的当前状态intstart;intsize;booleanstate;intjobNo;ode(){}ode(intstart,intsize,booleanstate,intjobNo){ =start; =size; =state; =jobNo; }publicvoidprint(){//打印Node类 if(this!=null){ if(==false)("起始位置:"++"大小:"++"状态:可用"+"工作号:"+); if(==true) ("起始位置:"++"大小:"++"状态:不可用"+"工作号:"+); } }};//{ staticintnum=3;publicvoidaddJob(intsize,intjobNo,Nodea[]){ inti,j,count=0; Nodeb[]=newNode[20]; for(i=0;i<;i++){ if(a[i]!=null){ if(size<a[i].size&&a[i].state==false){ b[count]=a[i]; ("可用分区大小:"+b[count].size+"工作号:"+b[count].jobNo); count++; } else{(a[i].jobNo+"号区无法分配任务,请等待!");} } } for(i=count;i>0;i--){//选择排序选出最小的空闲区 if(b[i]!=null) if(b[0].size>b[i].size){ b[0]=b[i]; } } for(i=0;i<;i++){if(a[i].jobNo==b[0].jobNo){break;}} a[i].size=a[i].size-size;//当前内存分配大小给作业Nodenode=newNode(a[i].start,size,true,jobNo);a[i].start=a[i].start+size;for(j=num;j>=i;j--){a[j+1]=a[j];}a[i]=node;num=num+1;}publicvoiddelete(Nodea[],intjobNo){//删除某一个进程,当该进程被删除后,进程所在内存的状态变为false inti,j; for(i=0;i<;i++){ if(a[i]!=null){ if(a[i].jobNo==jobNo){ //a[i].size=0; a[i].state=false; a[i].jobNo=jobNo; ("将要释放:"); a[i].print(); if(a[i-1].state==false){ a[i-1].size=a[i-1].s