Önce En Kısa İş (SJF): Önleyici, Önleyici Olmayan Örnek
En Kısa İş İlk Planlama Nedir?
Önce En Kısa İş (SJF) Bir sonraki yürütme için en küçük yürütme süresine sahip işlemin seçildiği bir algoritmadır. Bu planlama yöntemi önleyici veya önleyici olmayabilir. Yürütülmeyi bekleyen diğer işlemlerin ortalama bekleme süresini önemli ölçüde azaltır. SJF'nin tam biçimi Önce En Kısa İş'tir.
Temel olarak iki tür SJF yöntemi vardır:
- Önleyici Olmayan SJF
- Önleyici SJF
SJF Planlamanın Özellikleri
- Tamamlanacak zaman birimi olarak her iş ile ilişkilendirilir.
- Bu algoritma yöntemi, işlerin tamamlanmasını beklemenin kritik olmadığı toplu tip işleme için faydalıdır.
- Daha kısa işlerin ilk önce yürütülmesini ve dolayısıyla muhtemelen kısa bir geri dönüş süresinin olmasını sağlayarak süreç verimini artırabilir.
- İlk önce yapılması gereken ve çoğunlukla daha kısa geri dönüş süresine sahip olan daha kısa işler sunarak iş çıktısını artırır.
Önleyici Olmayan SJF
Önleyici olmayan planlamada, CPU döngüsü işleme tahsis edildikten sonra süreç, bekleme durumuna ulaşana veya sonlandırılıncaya kadar onu tutar.
Her biri kendine özgü patlama süresi ve varış süresine sahip olan aşağıdaki beş işlemi ele alalım.
İşlem Kuyruğu | Patlama zamanı | Varış zamanı |
---|---|---|
P1 | 6 | 2 |
P2 | 2 | 5 |
P3 | 8 | 1 |
P4 | 3 | 0 |
P5 | 4 | 4 |
) 0 Adım Zaman=0'da P4 gelir ve yürütmeye başlar.
) 1 Adım Zaman = 1'de P3 Süreci gelir. Ancak P4'ün tamamlanması için hala 2 yürütme birimine ihtiyacı var. Yürütmeye devam edecek.
) 2 Adım =2 zamanında, P1 süreci gelir ve bekleme kuyruğuna eklenir. P4 yürütmeye devam edecek.
) 3 Adım Zaman = 3'te, P4 işlemi yürütülmesini tamamlayacaktır. P3 ve P1'in patlama süresi karşılaştırılır. P1 işlemi yürütülür çünkü patlama süresi P3'e kıyasla daha azdır.
) 4 Adım Zaman = 4'te, P5 süreci gelir ve bekleme kuyruğuna eklenir. P1 yürütmeye devam edecek.
) 5 Adım Zaman = 5'te, P2 süreci gelir ve bekleme kuyruğuna eklenir. P1 yürütmeye devam edecek.
) 6 Adım Zaman = 9'da, P1 işlemi yürütülmesini tamamlayacaktır. P3, P5 ve P2'nin patlama süresi karşılaştırılır. P2 işlemi, çoğuşma süresi en düşük olduğundan yürütülür.
) 7 Adım Zaman=10'da, P2 yürütülmektedir ve P3 ile P5 bekleme kuyruğundadır.
) 8 Adım Zaman = 11'de P2 işlemi yürütülmesini tamamlayacaktır. P3 ve P5'in patlama süresi karşılaştırılır. P5 işlemi, çoğuşma süresi daha düşük olduğundan yürütülür.
) 9 Adım Zaman = 15'te P5 işlemi yürütülmesini tamamlayacaktır.
) 10 Adım Zaman = 23'te P3 işlemi yürütülmesini tamamlayacaktır.
) 11 Adım Yukarıdaki örnek için ortalama bekleme süresini hesaplayalım.
Wait time P4= 0-0=0 P1= 3-2=1 P2= 9-5=4 P5= 11-4=7 P3= 15-1=14
Average Waiting Time= 0+1+4+7+14/5 = 26/5 = 5.2
Önleyici SJF
Önleyici SJF Planlamada işler geldikçe hazır kuyruğuna alınır. En kısa patlama süresine sahip bir işlem yürütülmeye başlar. Patlama süresi daha kısa olan bir işlem gelirse, mevcut işlem kaldırılır veya yürütmeden alınır ve daha kısa olan işe CPU döngüsü tahsis edilir.
Aşağıdaki beş süreci göz önünde bulundurun:
İşlem Kuyruğu | Patlama zamanı | Varış zamanı |
---|---|---|
P1 | 6 | 2 |
P2 | 2 | 5 |
P3 | 8 | 1 |
P4 | 3 | 0 |
P5 | 4 | 4 |
) 0 Adım Zaman=0'da P4 gelir ve yürütmeye başlar.
İşlem Kuyruğu | Patlama zamanı | Varış zamanı |
---|---|---|
P1 | 6 | 2 |
P2 | 2 | 5 |
P3 | 8 | 1 |
P4 | 3 | 0 |
P5 | 4 | 4 |
) 1 Adım Zaman = 1'de P3 Süreci gelir. Ancak P4'ün patlama süresi daha kısadır. Yürütmeye devam edecek.
) 2 Adım Zaman = 2'de, P1 süreci patlama süresi = 6 ile gelir. Patlama süresi P4'ünkinden daha fazladır. Dolayısıyla P4 yürütmeye devam edecek.
) 3 Adım Zaman = 3'de P4 işlemi yürütülmesini tamamlayacaktır. P3 ve P1'in patlama süresi karşılaştırılır. P1 işlemi, çoğuşma süresi daha düşük olduğundan yürütülür.
) 4 Adım Zaman = 4'te P5 süreci gelecektir. P3, P5 ve P1'in patlama süresi karşılaştırılır. P5 işlemi, çoğuşma süresi en düşük olduğundan yürütülür. P1 işlemi önceliklidir.
İşlem Kuyruğu | Patlama zamanı | Varış zamanı |
---|---|---|
P1 | 5'dan 6'i kaldı | 2 |
P2 | 2 | 5 |
P3 | 8 | 1 |
P4 | 3 | 0 |
P5 | 4 | 4 |
) 5 Adım Zaman = 5'te P2 süreci gelecektir. P1, P2, P3 ve P5'in patlama süresi karşılaştırılır. P2 işlemi, patlama süresi en az olduğu için yürütülür. P5 işlemi önceliklidir.
İşlem Kuyruğu | Patlama zamanı | Varış zamanı |
---|---|---|
P1 | 5'dan 6'i kaldı | 2 |
P2 | 2 | 5 |
P3 | 8 | 1 |
P4 | 3 | 0 |
P5 | 3'dan 4'i kaldı | 4 |
) 6 Adım =6 zamanında, P2 yürütülmektedir.
) 7 Adım Zaman =7'de P2 yürütülmesini bitirir. P1, P3 ve P5'in patlama süresi karşılaştırılır. P5 işlemi, patlama süresi daha az olduğu için yürütülür.
İşlem Kuyruğu | Patlama zamanı | Varış zamanı |
---|---|---|
P1 | 5'dan 6'i kaldı | 2 |
P2 | 2 | 5 |
P3 | 8 | 1 |
P4 | 3 | 0 |
P5 | 3'dan 4'i kaldı | 4 |
) 8 Adım =10 zamanında, P5 yürütmesini bitirecektir. P1 ve P3'ün patlama süresi karşılaştırılır. Patlama süresi daha az olduğu için P1 işlemi yürütülür.
) 9 Adım =15 zamanında, P1 yürütmesini bitirir. Geriye kalan tek süreç P3'tür. Yürütmeye başlayacak.
) 10 Adım =23 zamanında, P3 yürütülmesini bitirir.
) 11 Adım Yukarıdaki örnek için ortalama bekleme süresini hesaplayalım.
Wait time P4= 0-0=0 P1= (3-2) + 6 =7 P2= 5-5 = 0 P5= 4-4+2 =2 P3= 15-1 = 14
Average Waiting Time = 0+7+0+2+14/5 = 23/5 =4.6
SJF'nin Avantajları
SJF yöntemini kullanmanın yararları/artıları şunlardır:
- SJF sıklıkla uzun vadeli planlama için kullanılır.
- FIFO (İlk Giren İlk Çıkar) algoritmasına göre ortalama bekleme süresini azaltır.
- SJF yöntemi, belirli bir süreç kümesi için en düşük ortalama bekleme süresini verir.
- Çalışma sürelerinin önceden bilindiği, toplu olarak çalışan işler için uygundur.
- Uzun vadeli planlamanın toplu sistemi için, iş tanımından bir patlama süresi tahmini elde edilebilir.
- Kısa Süreli Planlama için bir sonraki patlama süresinin değerini tahmin etmemiz gerekir.
- Ortalama geri dönüş süresi açısından muhtemelen optimaldir.
SJF'nin Dezavantajları/Eksileri
SJF algoritmasının bazı dezavantajları/eksileri şunlardır:
- İşin tamamlanma süresinin daha erken bilinmesi gerekir ancak tahmin edilmesi zordur.
- Genellikle uzun vadeli planlama için toplu sistemde kullanılır.
- SJF aşağıdakiler için uygulanamaz: CPU zamanlaması kısa vadede. Bunun nedeni, yaklaşmakta olan CPU patlamasının uzunluğunu tahmin etmek için özel bir yöntemin bulunmamasıdır.
- Bu algoritma çok uzun geri dönüş sürelerine veya açlığa neden olabilir.
- Bir sürecin veya işin ne kadar süreceği konusunda bilgi gerektirir.
- Ortalama geri dönüş süresini kısaltmayan açlığa yol açar.
- Yaklaşan CPU isteğinin uzunluğunu bilmek zordur.
- Geçen sürenin kaydedilmesi gerekir, bu da işlemciye daha fazla yük getirir.
ÖZET
- SJF, bir sonraki yürütme için en küçük yürütme süresine sahip işlemin seçildiği bir algoritmadır.
- SJF Planlama, her işin tamamlanması gereken bir zaman birimi olarak ilişkilendirilir.
- Bu algoritma yöntemi, işlerin tamamlanmasını beklemenin kritik olmadığı toplu tip işleme için faydalıdır.
- Temel olarak iki tür SJF yöntemi vardır: 1) Önleyici Olmayan SJF ve 2) Önleyici SJF.
- Önleyici olmayan planlamada, CPU döngüsü işleme tahsis edildikten sonra süreç, bekleme durumuna ulaşana veya sonlandırılıncaya kadar onu tutar.
- Önleyici SJF Planlamada işler geldikçe hazır kuyruğuna alınır.
- Kısa patlama süresine sahip bir işlem başlasa da, mevcut işlem kaldırılır veya yürütmeden çıkarılır ve daha kısa olan iş 1. olarak yürütülür.
- SJF sıklıkla uzun vadeli planlama için kullanılır.
- FIFO (İlk Giren İlk Çıkar) algoritmasına göre ortalama bekleme süresini azaltır.
- SJF çizelgelemede İşin tamamlanma süresinin daha erken bilinmesi gerekir ancak tahmin edilmesi zordur.
- Kısa vadede CPU planlaması için SJF uygulanamaz. Bunun nedeni, yaklaşmakta olan CPU patlamasının uzunluğunu tahmin etmek için özel bir yöntemin bulunmamasıdır.