私は現在bashスクリプトを使用しており、SJF(Shortest Job First)ベースのループを使用しています。ループは、以前にスキップされたサービス時間を再確認するかどうかを確認するために再度繰り返されません。確認するには別のループとブールが必要ですか?ありがとうございます!
到着時間:運行時間
0:3
1:5
4:5
5:1
6:3
9:1
#execution of second process till last process of SPN
for (( i=1; i<array; i++ )); do
prevTime=${finishTime[$value]} #obtain value from previous completion time
curService=${serviceTime[$i]}
for (( j=i; j<array; j++ )); do
#compare previous completion time with current process.
if [[ $prevTime -ge ${arrivalTime[$j]} ]] && [[ $curService -ge ${serviceTime[$j]} ]]; then
curService=${serviceTime[$j]}
value=$j
fi
done
#calculation of each process finish & turnaround time
finishTime[$value]=`expr $prevTime + ${serviceTime[$value]}`
turnaroundTime[$value]=`expr ${finishTime[$value]} - ${arrivalTime[$value]}`
done