(1)模拟实现下面三个进程调度算法中的任意一个:①先来先服务算法,用Java进行编译
时间: 2024-01-22 15:18:15 浏览: 27
以下是先来先服务算法的Java实现:
```java
import java.util.*;
class Process {
int pid;
int arrivalTime;
int burstTime;
int waitingTime;
int turnaroundTime;
Process(int pid, int arrivalTime, int burstTime) {
this.pid = pid;
this.arrivalTime = arrivalTime;
this.burstTime = burstTime;
this.waitingTime = 0;
this.turnaroundTime = 0;
}
}
public class FCFS {
public static void main(String[] args) {
// 创建进程列表
List<Process> processes = new ArrayList<>();
processes.add(new Process(1, 0, 5));
processes.add(new Process(2, 1, 3));
processes.add(new Process(3, 2, 8));
// 按照到达时间排序
processes.sort(Comparator.comparingInt(p -> p.arrivalTime));
// 计算等待时间和周转时间
int currentTime = 0;
for (Process process : processes) {
process.waitingTime = currentTime - process.arrivalTime;
process.turnaroundTime = process.waitingTime + process.burstTime;
currentTime += process.burstTime;
}
// 输出结果
System.out.println("进程\t到达时间\t服务时间\t等待时间\t周转时间");
for (Process process : processes) {
System.out.printf("%d\t%d\t%d\t%d\t%d\n", process.pid, process.arrivalTime,
process.burstTime, process.waitingTime, process.turnaroundTime);
}
}
}
```
以上代码中,我们首先创建了一个 `Process` 类来表示进程信息。然后,我们创建了一个进程列表 `processes`,其中包含三个进程,分别是进程1、进程2和进程3。这里我们假设了每个进程的到达时间和服务时间,并按照到达时间排序。
接着,我们遍历进程列表,计算每个进程的等待时间和周转时间,并将结果输出。最后,输出结果如下:
```
进程 到达时间 服务时间 等待时间 周转时间
1 0 5 0 5
2 1 3 4 7
3 2 8 9 17
```
以上即为先来先服务算法的Java实现。