📄 blockevent.java
字号:
package simcpu;
public class BlockEvent extends Event {
public BlockEvent(int time, EventDriver driver, SimSystem sys) {
super(time, driver, sys);
}
@Override
public void handel() {
SimThread curThread = sys.getRunningThread();
curThread.setState(State.BLOCKED);
int ioTime = sys.getRunningThread().getCurTask().remainingTime;
driver.predict(new IoInteruptionEvent(driver.now + ioTime, driver, sys,
curThread));
sys.setRunningThread(null);
SimThread nextThread = sys.schedul();
if(nextThread==null) {
sys.setCpuBusy(false);
return;
}
sys.readyQueue.remove(nextThread);
int overhead = (curThread.getPid() == nextThread.getPid() ? DataSource
.getThreadSwith() : DataSource.getProcessSwitch());
driver.predict(new OverheadEvent(driver.now + overhead, driver, sys,
nextThread));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -