Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 抢占式计划程序循环无法正常工作_Java_Preemptive - Fatal编程技术网

Java 抢占式计划程序循环无法正常工作

Java 抢占式计划程序循环无法正常工作,java,preemptive,Java,Preemptive,下面是我的代码,我正在为抢先优先级调度编写一个程序。应检查流程的到达时间,如果到达时间小于或等于前一流程的到达时间,则应与前一流程的优先级进行比较,优先级越低优先级越高。请。指出哪里出了问题 public void checkPP(int disp,int p[],int at[],int es[],int pr[],int n ) { int rem_es[] = new int[n]; //remaining execution size int current_tim

下面是我的代码,我正在为抢先优先级调度编写一个程序。应检查流程的到达时间,如果到达时间小于或等于前一流程的到达时间,则应与前一流程的优先级进行比较,优先级越低优先级越高。请。指出哪里出了问题

 public void checkPP(int disp,int p[],int at[],int es[],int pr[],int n )
  {
    int rem_es[] = new int[n]; //remaining execution size
    int current_time = disp;//disp has the time taken by CPU to switch between processes i.e.start and stop a process
    int is_completed[] = new int[n]; //completed execution
    int completed = 0;
    int st=disp;//start time
    int ft[]=new int[6];//finish time
    int wt[]=new int[6];//wait time
    int tt[]=new int[6]; //turnaround time
    int totaltt=0, totalwt=0;//total turnaround time and total wait time
    float avgtt=0,avgwt=0;//average turnaround time and average wait time
    
    System.out.println("\n");
    System.out.println(" PP:" );       
    for (int i = 0 ; i < n ; i++) 
        rem_es[i] =  es[i]; 
    
    for(int i = 0 ; i < n ; i++) 
        is_completed[i] =  0; 
   
    current_time = 0; // Current time 
    
     
    // until all of them are not done.
    while(completed !=n ) 
    { 
        int idx = -1;
        int mx = 100;
        
        for (int i = 0 ; i < n; i++) 
        { 
           if(at[i] <= current_time && is_completed[i]==0 )
            {
                if(pr[i] < mx)
                {
                    mx = pr[i];
                    idx = i;
                } 
            
                if(idx != -1) {
                   if(rem_es[idx] == es[idx]) {
                       st = current_time+disp;
                       rem_es[idx]-=1;
                       current_time+=1+disp;
                       
                    }
                    else{   
                        rem_es[idx]-=1;
                        current_time+=1;
                        st=current_time;
                    }
                   if (rem_es[idx]==0)
                   {
                    
                    tt[idx]=ft[idx]-at[idx];
                    wt[idx]=tt[idx]-es[idx];
                    completed++;
                    is_completed[idx]=1;
                  }
               }
               else
                   current_time++;
        System.out.println(" " +"T" + st +":" + "p"+p[idx]+ "(" + pr[idx] +")" + rem_es[idx]+  current_time);
      }
     }
    }
    System.out.println("\n");
    System.out.println(" Process Turnaround Time Waiting Time" );
    for (int i=0; i<n; i++) 
    { System.out.println(" " + "p" + p[i] + "\t\t" + tt[i] + "\t\t "+  wt[i]);
    } 
public void checkPP(int disp,int p[],int at[],int es[],int pr[],int n)
{
int rem_es[]=new int[n];//剩余执行大小
int current_time=disp;//disp具有CPU在进程之间切换所需的时间,即启动和停止进程
int是_completed[]=新int[n];//已完成执行
int completed=0;
int st=disp;//开始时间
int ft[]=新的int[6];//完成时间
int wt[]=新int[6];//等待时间
int tt[]=new int[6];//周转时间
int totaltt=0,totalwt=0;//总周转时间和总等待时间
float avgtt=0,avgwt=0;//平均周转时间和平均等待时间
System.out.println(“\n”);
System.out.println(“PP:”);
对于(int i=0;imy output is 
T1:p1(4)
 T3:p2(2)
 T5:p1(4)
 T6:p1(4)
 T7:p3(3)
 T9:p1(4) <-----instead of completing p3, its picking p1 even though priority of p1 is lesser than p3
 T10:p3(3)
 T11:p1(4)
 T12:p4(3)
 T14:p1(4)
 T15:p5(1)
 T17:p1(4)
 T18:p5(1)
 T19:p1(4)
 T20:p5(1)
 T21:p1(4)
 T22:p5(1)
 T23:p1(4)
 T24:p5(1)