Программа работает, но нет вывода, и программа не завершается
Я пытаюсь сделать многоуровневое планирование очередей, где
- приоритетом==1 || приоритет==2 с помощью круговой системе в 1 очереди
- приоритетом==3 || приоритет==4 использует первый пришел первый обслужен (алгоритма fcfs) в очереди 2
- приоритет > 4 использует fcfs в очереди 3
код, который я пробовал, неполон, но я пытаюсь запустить его, чтобы увидеть, работает ли он или нет для первых 3 входов, но есть неизвестная ошибка (Я не знаю, как называется эта ошибка), когда программа запускается, но она не показывает никаких выходных данных, и программа не завершается.
процесс с приоритетом BT
p0 0 6 3
П1 1 4 3
Р2 5 6 1
Что я уже пробовал:
public void sortMultilevel(int[] AT, int[] BT, int[] prio, int[] status, int TP) { int i=0, current=AT[i], j, test; while(TP!=0) { if(prio[i]==1 || prio[i]==2) { System.out.println("Queue 1:"); System.out.print("p" + p[i] + " from " + current + " to "); // if(nonew()) // {} // else { System.out.println(current+quantum); BT[i] = BT[i]-quantum; status[i]=1; current+=quantum; break; // } } else if(prio[i]==3 || prio[i]==4) { System.out.println("Queue 2:"); System.out.print("p" + p[i] + " from " + AT[i] + " to "); // if(nonew()) // { // } // else // { test=0; for(j=0; j<TP; j++) { if(AT[j]<current+BT[i]) { if(prio[j]<prio[i]) { System.out.println(AT[j]); BT[i] = BT[i]-(AT[j]-current); status[i]=1; current=AT[j]; test=1; i=j; break; } else status[j]=1; } } // } } } // close while loop }
Richard MacCutchan
Добавьте еще несколько операторов печати в конце цикла while, чтобы увидеть, какие переменные не изменяются. Это лучшее, что я могу предложить, поскольку я не могу понять, что именно этот код должен делать.