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

📄 sjf_1.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 sjf_1
{
	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 + -