📄 arrivalevent.java
字号:
package simcpu;
import simcpu.SimThread.Task;
public class ArrivalEvent extends Event {
int pid;
int tid;
public ArrivalEvent(int time, EventDriver driver, SimSystem sys, int pid,
int tid) {
super(time, driver, sys);
this.pid = pid;
this.tid = tid;
}
@Override
public void handel() {
SimThread thread = new SimThread(pid,tid);
thread.setArrivalTime(driver.getNow());
int i = 1;
for (; i < DataSource.getNumberCpu(pid, tid); i++) {
thread.taskList.add(new Task(true, DataSource.getCpuTime(pid, tid,
i)));
thread.serviceTime+=thread.taskList.peek().remainingTime;
thread.taskList.add(new Task(false, DataSource.getIoTime(pid, tid,
i)));
thread.ioTime+=thread.taskList.peek().remainingTime;
}
thread.taskList.add(new Task(true, DataSource.getCpuTime(pid, tid, i)));
thread.serviceTime+=thread.taskList.peek().remainingTime;
DataSource.threadpool.add(thread);
if (!sys.isCpuBusy()) {
sys.load(thread);
// sys.setRunningThread(thread);
// thread.setState(State.RUNNING);
// driver.predict(thread.createNextEvent(driver, sys));
// sys.setCpuBusy(true);
} else
sys.readyQueue.add(thread);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -