1

特定のアルゴリズムのマルチスレッド シミュレータを実行するように依頼されました。タスクの 1 つは、定期的なスケジューリングの結果とラウンド ロビンの結果を比較することでした。ラウンド ロビン スケジューリング方法に関する情報を探していたときに、さまざまな一般的な説明と、それらとスレッドのスケジューリングとの間の関係を見つけることができなかったいくつかのコード例を見つけました。たとえば、次のコード (スタック オーバーフローでここにあります):

public static void RR3(int numProcess, int[] cpuBurst, int[] arrivalTime){
    int quantum = 3,time = 0, temp;
    int completionTime = 0;
    LinkedList <Integer>process = new LinkedList();
    for (int i = 0; i < numProcess; i++) {
        process.add(i, cpuBurst[i]);
    }

    while (process.isEmpty() != true){

        for (int j  = 0; j < quantum; j++) {
            System.out.println(process.getFirst());
            if(process.peek() == 0 ){
                completionTime = completionTime + time;
                process.remove();
            }
            else{
                temp = process.pop();
                process.push(temp - 1);                   
                time++;                  
            }
        }
        process.addLast(process.getFirst()); 
        process.removeFirst();
    }

    double act = (double) completionTime/numProcess;
    System.out.println("-----------------RR3-----------------");
    System.out.println("             Act = " + act + "ms");  
}

プロセスの量、それぞれの時間などを表す整数以外は何も表示されませんが、実際にそれらの動作を管理するにはどうすればよいですか? プロセスを実行または停止するための呼び出しが表示されません。

4

1 に答える 1