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

📄 sjf1.java

📁 操作系统中的调度先来先服务及短作业优先
💻 JAVA
字号:
import java.io.*;
class  runtime
	{
   String name;
     int  sta_time;
  	 int  get_time;
   runtime(String n,int s,int r)
    { 
        name=n;
    	sta_time=s;
        get_time=r;
        
    }
   
   public int starttime()
   { 
   return sta_time;
   }
   public int run_time()
	{ 
	 return get_time;
	}
 	public String getname()
	{
			return name;
	}
 }

public class sjf1
{
	public static void main(String args[])
	{
	int f=0;
	double s1 = 0.00;
	double s2 = 0.00;
	int a_1[]=new int[5];
	int a_2[] = new int[5];
    float  a_3[]=new float[5];
	   runtime a0 = new runtime("进程A", 0,4);//到达时间及服务时间
	   runtime a1 = new runtime("进程B", 1,3);
	   runtime a2 = new runtime("进程C", 2,5);
	   runtime a3 = new runtime("进程D", 3,2);
	   runtime a4 = new runtime("进程E", 4,4);
	   runtime a[] = {a0,a1,a2,a3,a4};
	   sort(a);
	   for(int i=0;i<a.length;i++)
	          
	              {  
	              if(i==0)
	                 a_1[i]= a[i].starttime()+a[i].run_time();//完成时间
	               else  
	                 a_1[i]=f+a[i].run_time(); 
	                 f=a_1[i];//完成时间
	                 a_2[i]=(a_1[i]-a[i].starttime());//周转时间
	                 a_3[i]= (float)(a_2[i]/a[i].run_time());//带权周转时间
	                  s1+= a_2[i];
	                s2=s2+a_3[i];
		   System.out.print(a[i].getname()+"\n"+"到达时间:"+a[i].starttime()+"\n"+"运行时间: "+a[i].run_time()+"\n"+"完成时间: "+a_1[i]+"\n");
	                 System.out.print("周转时间: "+a_2[i]+"\n");
	                 System.out.print("带权周转时间: "+a_3[i]+"\n");
	                 System.out.println();
	               
	              }   
	               s1=s1/5;
	               s2=s2/5;
	    System.out.print("平均周转时间: "+s1+"\n");
	    
	      System.out.print("带权平均周转时间: "+s2+"\n");
     }
	    
	   

public static void sort(runtime[] a)    //服务时间越短,优先级越高
	{	runtime temp;
	   
		for (int i = 0; i < a.length; i++)
		    { if(a[0].starttime()>a[i].starttime())
		          { temp = a[i];
					a[i] = a[0];
					a[0] = temp;
				  }
		    }//谁第一个开始调度
			for (int i = 0; i < a.length - 2; i++)
			{
				for (int j = 1; j <a.length-1; j++)
				{
					if (a[j].run_time()>a[j+1].run_time())
					{   
						temp = a[j];
						a[j] = a[j+1];
						a[j+1] = temp;
					}
				}
			}
		 
	}
}

		

⌨️ 快捷键说明

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