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

📄 simcpu.java

📁 对于CPU线程调度的模拟
💻 JAVA
字号:
package simcpu;

public class Simcpu {

	public static void main(String[] args) {
		System.out.println("*****************************");
		System.out.println("FCFS:");
		main(args,"FCFS");
		System.out.println("*****************************");
		System.out.println("Round Robin");
		main(args,"Round Robin");
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args,String plicy) {

		/**
		 * policy:
		 * FCFS
		 * Round Robin
		 */
		SimSystem.setPolicy(plicy);
		
		boolean _d=false,_v=false;
		String file=null;
		for(int i=0;i<args.length;i++) {
			if(args[i].equalsIgnoreCase("-d"))
				_d=true;
			else if(args[i].equalsIgnoreCase("-v"))
				_v=true;
			else if(args[i].equals("<"))
				file=args[i+1];
			else if(args[i].startsWith("<"))
				file=args[i].substring(1);
		}
		
		DataSource.setArgs(_d,_v);
		DataSource.init(file);
		SimSystem sys=new SimSystem();
		EventDriver driver=new EventDriver(sys);
		SimThread.driver=driver;
		sys.setDriver(driver);
		for(int i=1;i<=DataSource.nProcess;i++) {
			for(int j=1;j<DataSource.arrivalTimes[i].length;j++) {
				driver.predict(new ArrivalEvent(DataSource.arrivalTimes[i][j],driver,sys,i,j));
			}
		}
		driver.run();
		
		System.out.println();
		System.out.println("======================================");
		System.out.println("Policy: "+SimSystem.policy);
		int i,j;
		System.out.println("Tatol time:"+(i=driver.getNow()));
		System.out.println("Average Turnaround Time:"+DataSource.getAverageTurnroundTime());
		j=sys.timer.read();
		System.out.println("CPU utilization:"+(float)j*100/i+"%");
		System.out.println("======================================");		
		if(_d) {
			for(SimThread thread:DataSource.threadpool) {
				System.out.println();
				System.out.println("Thread "+thread.tid+" of Process "+thread.pid+" :");
				System.out.println("Arrival time:"+thread.arrivalTime);
				System.out.println("Service time:"+thread.serviceTime+" units");
				System.out.println("I/O time:"+thread.ioTime+" units");
				System.out.println("Turnaround time:"+thread.roundTime+" units");
				System.out.println("Finish time:"+thread.finishTime);				
			}
		}
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -