多级反馈队列优先
java实现,带有简易图形界面
基本思想:
当一个新进程进入内存后,首先将它放入第一队列的末尾,按FCFS原则排队等待调度。当轮到该进程执行时,如能在该时间片内完成,便可准备撤离系统;如果它在一个时间片结束时尚未完成,调度程序便将该进程转入第二队列的末尾,再同样地按FCFS原则等待调度执行,以此类推。
流程图:
函数调用关系图:
关键数据结构:
队列
class Queue
{
//队列优先级
private int priority;
private LinkedList<PCB> queue = new LinkedList<PCB>();
public Queue(int priority)
{
this.priority = priority;
}
public int getPriority()
{
return priority;
}
public void setPriority(int priority)
{
this.priority = priority;
}
public LinkedList<PCB> getQueue()
{
return queue;
}
public void setQueue(LinkedList<PCB> queue)
{
this.queue = queue;
}
}
进程块
public class PCB
{
//进程标识符
private int pid;
//进程状态标识
private String status;
//进程优先级
private int priority;
//进程生命周期
private int life;
}