Şu ana kadar süreçleri varış saatlerine göre (FCFS planlamada) programlıyorduk. Ancak SJF çizelgeleme algoritması süreçleri patlama zamanlarına göre çizelgeler.
SJF planlamada, hazır kuyruğundaki mevcut işlemler listesinden en düşük patlama süresine sahip olan süreç bir sonraki adımda planlanacaktır.
Ancak bir işlem için gereken patlama süresini tahmin etmek çok zordur, dolayısıyla bu algoritmanın sistemde uygulanması çok zordur.
SJF'nin Avantajları
- Maksimum verim
- Minimum ortalama bekleme ve geri dönüş süresi
SJF'nin dezavantajları
- Açlık sorunu yaşayabilir
- Bir işlemin kesin Patlama süresi önceden bilinemediği için uygulanamaz.
İşlemin CPU patlama süresinin belirlenebileceği farklı teknikler mevcuttur. Bunları daha sonra ayrıntılı olarak tartışacağız.
Örnek
Aşağıdaki örnekte P1, P2, P3, P4 ve P5 olarak adlandırılan beş iş bulunmaktadır. Varış süreleri ve patlama süreleri aşağıdaki tabloda verilmiştir.
PID | Varış zamanı | Patlama Zamanı | Tamamlanma Süresi | Geri Dönüş Zamanı | Bekleme süresi |
---|---|---|---|---|---|
1 | 1 | 7 | 8 | 7 | 0 |
2 | 3 | 3 | 13 | 10 | 7 |
3 | 6 | 2 | 10 | 4 | 2 |
4 | 7 | 10 | 31 | 24 | 14 |
5 | 9 | 8 | yirmi bir | 12 | 4 |
0 zamanında hiçbir süreç gelmediğinden; içinde boş bir slot olacak Gantt şeması 0'dan 1'e (ilk sürecin geldiği zaman) kadar.
Algoritmaya göre işletim sistemi, hazır kuyruktaki mevcut işlemler arasında en düşük patlama süresine sahip olan işlemi planlar.
Şu ana kadar, hazır kuyruğunda yalnızca bir işlemimiz var, bu nedenle zamanlayıcı, patlama süresi ne olursa olsun bunu işlemciye programlayacaktır.
Bu, 8 birim zamana kadar yürütülecektir. O zamana kadar hazır kuyruğuna üç süreç daha geldi, dolayısıyla zamanlayıcı en düşük patlama süresine sahip süreci seçecek.
Tabloda verilen işlemler arasında P3, mevcut tüm işlemler arasında en düşük patlama süresine sahip olduğundan bir sonraki adımda yürütülecektir.
Yani prosedür bu şekilde ilerleyecek Önce en kısa iş (SJF) zamanlama algoritması.
Ortalama Bekleme Süresi = 27/5