Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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
RR和SJF CPU调度算法的Java代码_Java - Fatal编程技术网

RR和SJF CPU调度算法的Java代码

RR和SJF CPU调度算法的Java代码,java,Java,我已经尝试了数小时,搜索了一个包含到达时间作为代码输入的代码,但是,我找不到,也找不到。 代码的其余部分很简单,只是输入和输出。 我所需要的只是带有简单for循环的Java代码,它可以计算每个进程的周转时间和等待时间 循环赛 最短工作优先 算法 > P>经过一番努力,我终于找到了答案,但不是整个问题(RR-SJF),只是针对强> SJF,我还找到了 RR>强>的答案,C++中没有java。 如果有人能帮助我从C++到java转换 RR>强,我会非常感激。 SJF Java代码 import

我已经尝试了数小时,搜索了一个包含到达时间作为代码输入的代码,但是,我找不到,也找不到。 代码的其余部分很简单,只是输入和输出。 我所需要的只是带有简单for循环的Java代码,它可以计算每个进程的周转时间和等待时间

  • 循环赛
  • 最短工作优先

算法

> P>经过一番努力,我终于找到了答案,但不是整个问题(RR-SJF),只是针对强> SJF,我还找到了<强> RR>强>的答案,C++中没有java。 如果有人能帮助我从C++到java转换<强> RR>强,我会非常感激。 SJF Java代码

import java.util.*;

public class SJF_m {

public static void main(String[] args) {

    //______________________________________________________________________
    //input
    //______________________________________________________________________
    Scanner sc = new Scanner(System.in);
    System.out.println("Enter # of processes");
    int n = sc.nextInt();
    int ID;
    int ArrivalTime[] = new int[n];
    int ServiceTime[] = new int[n];
    int FinishTime[] = new int[n];
    int StartTime[] = new int[n];
    int WaitingTime[] = new int[n];
    int TurnAroundTime [] = new int[n];
    int TotalWaitingTime = 0;
    int TotalTurnAroundTime = 0;
    double AVGWaitingTime;
    double AVGTurnAroundTime;


    System.out.println("_____________________________________");

    for (int i = 0; i < n; i++) {
        System.out.println("Enter id of process  " + (i + 1));
        ID = sc.nextInt();
    }

    System.out.println("______________________________________");

    System.out.println("*Enter arrival time for each process*");
    for (int i = 0; i < n; i++) {
        System.out.println("Enter arival time for process  " + (i + 1));
        ArrivalTime[i] = sc.nextInt();
    }

    System.out.println("_______________________________________");

    System.out.println("*Enter service time for each process*");
    for (int i = 0; i < n; i++) {
        System.out.println("Enter service time for process  " + (i + 1));
        ServiceTime[i] = sc.nextInt();
    }

    //______________________________________________________________________
    //process
    //______________________________________________________________________
    int time = 0; // "time" for the current time.
    int min = 0;  // "min" for the least service time.
    int j = 0;    // "j" to save the task with the least time.
    int count;    // "count" to identify if it is the first operation in this turn. 

    for (int c = 0; c < n; c++) {
        count = 0;
        for (int i = 0; i < n; i++) //looping through all the tasks
        {
            if (FinishTime[i] == 0) //checking if the task wasn't done before
            {
                if (ArrivalTime[i] <= time) //checking if the task arrived or not
                {
                    count++;
                    if (count == 1) //checking if it's the first task in this turn
                    {
                        min = ServiceTime[i];
                        j = i;
                    } else {
                        if (ServiceTime[i] < min) //checking if the task's service time is less than the current min
                        {
                            min = ServiceTime[i];
                            j = i; //takes procees number and puts it in "j" then compares again
                        }
                    }
                }
            }
        }
        StartTime[j] = time;
        time += min;
        FinishTime[j] = time;
    }

    //calculating waiting time and turn around time
    for (int y = 0; y < n; y++) {
        WaitingTime[y] = StartTime[y] - ArrivalTime[y];
        TurnAroundTime[y] = WaitingTime[y] + ServiceTime[y];
        TotalWaitingTime += WaitingTime[y];
        TotalTurnAroundTime += TurnAroundTime[y];
    }

    AVGWaitingTime = (double) TotalWaitingTime / n;
    AVGTurnAroundTime = (double) TotalTurnAroundTime / n;

    //______________________________________________________________________
    //output
    //______________________________________________________________________
    System.out.println("*Finish time for the processes*");

    System.out.println("_______________________________________");

    for (int i = 0; i < n; i++) {
        System.out.println("Finish time for process  " + (i + 1) + "  " + FinishTime[i]);
    }

    System.out.println("____________________________________________________");

    System.out.println("*Waiting time time for the processes*");

    System.out.println("_______________________________________");

    for (int i = 0; i < n; i++) {
        System.out.println("Waiting time for process  " + (i + 1) + "  " + WaitingTime[i]);
    }

    System.out.println("____________________________________________________");

    for (int i = 0; i < n; i++) {
        System.out.println("Turnaround time time for process  " + (i + 1) + "  " + TurnAroundTime[i]);
    }

    System.out.println("____________________________________________________");

    System.out.println("_______________________________________");

    System.out.println("AVGWaiting time for processes  " + "  " + AVGWaitingTime);

    System.out.println("____________________________________________________");

    System.out.println("AVGTurnAroundTime time for processes  " + "  " + AVGTurnAroundTime);

    System.out.println("____________________________________________________");

 }
}
import java.util.*;
公共类SJF_m{
公共静态void main(字符串[]args){
//______________________________________________________________________
//输入
//______________________________________________________________________
扫描仪sc=新的扫描仪(System.in);
System.out.println(“进程的输入”);
int n=sc.nextInt();
int-ID;
int-ArrivalTime[]=新的int[n];
int ServiceTime[]=新的int[n];
int FinishTime[]=新int[n];
int StartTime[]=新的int[n];
int WaitingTime[]=新的int[n];
整数周转时间[]=新整数[n];
int TotalWaitingTime=0;
整型总周转时间=0;
双平均等待时间;
双平均周转时间;
System.out.println(“uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;
对于(int i=0;i