⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 arrivalevent.java

📁 对于CPU线程调度的模拟
💻 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 + -