Java实现时间片轮转法

欢迎指正,虚心接受各种意见!

2.设计一个按时间片轮转法实现处理器调度的程序。

import java.util.*;
public class Main {

	public static void main(String[] args) {
		method me=new method();
		me.input();
		me.run();
		System.out.println("............................");
	}

}

class pcb{
	String name;
	String status;
	int alltime;
	int runtime;
	String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getStatus() {
		return status;
	}
	public void setStatus(String status) {
		this.status = status;
	}
	public int getAlltime() {
		return alltime;
	}
	public void setAlltime(int alltime) {
		this.alltime = alltime;
	}
	public int getRuntime() {
		return runtime;
	}
	public void setRuntime(int runtime) {
		this.runtime = runtime;
	}

}

class method{
	LinkedList <pcb> al=new LinkedList<pcb>();
	
	public void input(){
		Scanner in=new Scanner(System.in);
		for(int i=0;i<2;i++){
			System.out.println("请输入PCB["+(i+1)+"]  name  alltime  runtime");
			pcb p=new pcb();
			p.setName(in.next());
			p.setAlltime(Integer.parseInt(in.next()));
			p.setRuntime(Integer.parseInt(in.next()));
			p.setStatus("ready");
			al.add(p);
		}
	}

	public void show(){
		Iterator <pcb> it=al.iterator();
		while(it.hasNext()){
			pcb p=it.next();
			System.out.println("              "+p.getName()+"      "+p.getAlltime()+"      "+p.getRuntime()+"      "+p.getStatus());
		}
		System.out.println();
	}
	public void run(){
		System.out.println();
		System.out.println("开始运行:");
		int flag=1;
		/*利用LinkedList可以在列表的开头及结尾 get、remove 和 insert 元素提供了统一的命名方法的特性。
		 * 每次都将LinkedList中的首元素移除并赋给一个中转站(自己创造的名词),然后将中转站添加到LinkedList的结尾处,来实现元素的轮转。
		*/
		while(flag<=2){
			al.getFirst().runtime++;
			if(al.getFirst().runtime==al.getFirst().getAlltime()){
				al.getFirst().setStatus("finished");
				show();
				al.remove();
				flag++;
			}
			else{
				System.out.println(al.getFirst().getName()+"正在运行:");
				al.getFirst().setStatus("working");
				show();
				al.getFirst().setStatus("ready");
				pcb p=al.remove();
				al.addLast(p);
			}
		}
   }
}


猜你喜欢

转载自blog.csdn.net/kwj1999999/article/details/80370314