オペレーティング システム (Java) モバイル アーム スケジューリング アルゴリズム SSTF

パブリック クラス SSTF {

プライベート静的 int maxsize = 100;

private static int Disc[] = new int [maxsize]; //リクエストシーケンス

private static int count;//アクセスされるトラックの数

private static int disc; //現在のトラック番号

private static int perTime;//各シリンダーを移動するのに時間がかかります

private static int Distance=0;//合計シーク長

private static int FindTime;// 時間を検索

private static double AvgDistance;// 平均シーク長

public SSTF(int disc, int count, int perTime ,int Disc[])

{

this.disc=ディスク;

this.count=カウント;

this.perTime=perTime ;

for(int i=0;i<Disc.length;i++)

ディスク[i]=ディスク[i] ;

}

パブリック void input()

{

System.out.print("現在のトラック番号を入力してください:");

スキャナ s1=新しいスキャナ(System.in);

disc=s1.nextInt();

System.out.print("アクセスするトラックの数を入力してください:");

スキャナ s2=新しいスキャナ(System.in);

count=s2.nextInt();

System.out.print("各シリンダーを通過するのに必要な時間を入力してください:");

スキャナ s3=新しいスキャナ(System.in);

perTime=s3.nextInt();

System.out.print("ディスク要求シーケンスを入力してください(スペースで区切って):");

スキャナ s4=新しいスキャナ(System.in);

for(int i=0;i<count;i++)

Disc[i]=s4.nextInt();

}

public void Delete(int arr[],int n)

{

for(int i=n;i<arr.length-1;i++)

arr[i]=arr[i+1];

}

public void running()

{

int j=0、count1=カウント;

int 分;

int discc=ディスク;

int Discc[]=新しい int[カウント];

while(j<カウント)

{

int num=0;

min=(Disc[0]>=discc)?(Disc[0]-discc):(discc-Disc[0]);

for(int i=0;i<count1;i++)

if(((Disc[i]>=discc)&&(Disc[i]-disc<min))||((Disc[i]<discc)&&(discc-Disc[i]<min)))

{

min=(Disc[i]>=discc)?(Disc[i]-discc):(discc-Disc[i]);

数字=i;

}

Discc[j++]=ディスク[番号];

距離+=分;

discc=ディスク[番号];

削除(ディスク,番号);

カウント1--;

}

AvgDistance=(double )距離/数;

FindTime=perTime*Distance;

System.out.print("\nサービス シーケンス: "+disc+" ");

for(int i=0; i<count;i++)

System.out.print(Discc[i]+" ");

System.out.println("\n合計シーク長:"+距離);

System.out.println("平均シーク長: "+AvgDistance);

System.out.println("シーク時間:"+FindTime+"ms");

}

public static void main(String[] args)

{

System.out.println("--------最短検索時間優先アルゴリズム---------");

SSTF SSTF=新しい SSTF( ディスク, カウント, 時間あたり ,ディスク);

SSTF.input();

SSTF.running();

}

}

おすすめ

転載: blog.csdn.net/weixin_45823684/article/details/129316161