java编程实现FCFS调度算法
时间: 2024-03-26 16:39:40 浏览: 62
下面是Java代码实现FCFS调度算法的一个简单示例:
```java
import java.util.*;
public class FCFS {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入进程数:");
int n = input.nextInt(); // 进程数
int[] burstTime = new int[n]; // 进程的CPU执行时间
int[] waitTime = new int[n]; // 等待时间
int[] turnAroundTime = new int[n]; // 周转时间
int totalWaitTime = 0; // 总等待时间
int totalTurnAroundTime = 0; // 总周转时间
// 输入每个进程的CPU执行时间
for (int i = 0; i < n; i++) {
System.out.println("请输入进程" + (i + 1) + "的CPU执行时间:");
burstTime[i] = input.nextInt();
}
// 计算每个进程的等待时间和周转时间
for (int i = 0; i < n; i++) {
if (i == 0) { // 第一个进程的等待时间为0
waitTime[i] = 0;
} else {
waitTime[i] = waitTime[i - 1] + burstTime[i - 1];
}
turnAroundTime[i] = waitTime[i] + burstTime[i];
totalWaitTime += waitTime[i];
totalTurnAroundTime += turnAroundTime[i];
}
// 输出每个进程的等待时间和周转时间
System.out.println("进程\tCPU执行时间\t等待时间\t周转时间");
for (int i = 0; i < n; i++) {
System.out.println((i + 1) + "\t" + burstTime[i] + "\t\t" + waitTime[i] + "\t\t" + turnAroundTime[i]);
}
// 输出平均等待时间和平均周转时间
System.out.println("平均等待时间:" + (double) totalWaitTime / n);
System.out.println("平均周转时间:" + (double) totalTurnAroundTime / n);
}
}
```
该程序实现了一个简单的FCFS调度算法,首先输入进程数和每个进程的CPU执行时间,然后计算每个进程的等待时间和周转时间,并输出每个进程的等待时间和周转时间,最后输出平均等待时间和平均周转时间。
阅读全文