RR进程调度java代码
时间: 2023-07-26 09:04:48 浏览: 95
以下是一个简单的 RR 进程调度的 Java 代码示例:
```
import java.util.LinkedList;
import java.util.Queue;
public class RoundRobinScheduler {
public static void main(String[] args) {
int quantum = 2; // 时间片大小为 2
Queue<Process> processQueue = new LinkedList<>();
processQueue.add(new Process("P1", 8));
processQueue.add(new Process("P2", 6));
processQueue.add(new Process("P3", 4));
processQueue.add(new Process("P4", 2));
processQueue.add(new Process("P5", 3));
processQueue.add(new Process("P6", 5));
System.out.println("进程调度顺序:");
while(!processQueue.isEmpty()) {
Process process = processQueue.poll();
System.out.println(process.getName());
if(process.getTimeLeft() > quantum) {
process.setTimeLeft(process.getTimeLeft() - quantum);
processQueue.add(process);
} else {
process.setTimeLeft(0);
}
}
}
static class Process {
private String name;
private int timeLeft;
public Process(String name, int timeLeft) {
this.name = name;
this.timeLeft = timeLeft;
}
public String getName() {
return name;
}
public int getTimeLeft() {
return timeLeft;
}
public void setTimeLeft(int timeLeft) {
this.timeLeft = timeLeft;
}
}
}
```
在这个例子中,我们使用一个队列来存储等待执行的进程,每次从队列中取出一个进程,并执行时间片大小为 2 的时间片。如果该进程的剩余时间大于时间片大小,则将其重新加入队列;否则将其标记为已完成。最后,输出进程的执行顺序。
阅读全文