package pojo;
/*创建一个进程类,以后对每一个进程都可以用对象来处理*/
public class tcElement {
private String name;//进程名称
private tcElement next;//该进程之后的进程
private double arrive_time;//到达时间
private double serves_time;//服务时间、
private double served_time;//已服务时间
private double priority;//优先级
private boolean state;//状态
/*构造方法*/
public tcElement() {
this.name = null;
this.arrive_time = 0;
this.serves_time = 0;
this.priority = 0;
this.next = null;
this.served_time = 0;
this.state = false;
}
/*构造方法*/
public tcElement(String name, double arrive_time, double serves_time,
double priority) {
this.name = name;
this.arrive_time = arrive_time;
this.serves_time = serves_time;
this.priority = priority;
this.next = null;
this.served_time = 0;
this.state = false;
}
/*重载toString方法 让其返回元素中的所有属性串行化后的String值*/
public String toString() {
StringBuffer strb = new StringBuffer("");
strb.append(this.name);
strb.append("\t");
if(next == null){
strb.append(this.next);
}else{
strb.append(this.next.getName());
}
strb.append("\t");
strb.append(this.arrive_time);
strb.append("\t");
strb.append(this.serves_time);
strb.append("\t");
strb.append(this.served_time);
strb.append("\t");
strb.append(this.priority);
strb.append("\t");
strb.append(this.state);
return strb.toString();
}
/**
* @return返回各属性显示的头
*/
public static String getHead() {
StringBuffer strb = new StringBuffer("");
strb.append("name");
strb.append("\t");
strb.append("next");
strb.append("\t");
strb.append("arrive_time");
strb.append("\t");
strb.append("serves_time");
strb.append("\t");
strb.append("served_time");
strb.append("\t");
strb.append("priority");
strb.append("\t");
strb.append("state");
return strb.toString();
}
//进程被调度一次其优先级加2 已服务时间加1
public boolean Run(){
this.state = true;
this.served_time++;
this.priority +=2;
this.state = false;
return (this.served_time >= this.serves_time);
}
//以下是各个属性的设置和获取的接口
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public tcElement getNext() {
return next;
}
public boolean hasNext() {
if (next != null) {
return true;
} else {
return false;
}
}
public void setNext(tcElement next) {
this.next = next;
}
public double getArrive_time() {
return arrive_time;
}
public void setArrive_time(double arrive_time) {
this.arrive_time = arrive_time;
}
public double getServes_time() {
return serves_time;
}
public void setServes_time(double serves_time) {
this.serves_time = serves_time;
}
public double getServed_time() {
return served_time;
}
public void setServed_time(double served_time) {
this.served_time = served_time;
}
public double getPriority() {
return priority;
}
public void setPriority(double priority) {
this.priority = priority;
}
public boolean isState() {
return state;
}
public void setState(boolean state) {
this.state = state;
}
}
基于优先权的时间片轮转算法
最新推荐文章于 2021-05-09 13:58:10 发布