Öncelik Planlama Algoritması: Öncelikli, Önceliksiz
⚡ Akıllı Özet
Öncelikli zamanlama, işlemci zamanlamasında süreçleri önceliğe göre seçen ve daha yüksek öncelikli görevleri önce çalıştıran bir yöntemdir. Öncelikli veya önceliksiz olabilir ve eşit önceliğe sahip süreçler, ilk gelen ilk hizmet alır veya sırayla işleme alınır.

Öncelikli Planlama Nedir?
Öncelikli Planlama Önceliğe dayalı süreçleri planlama yöntemidir. Bu algoritmada zamanlayıcı çalışacak görevleri önceliğe göre seçer.
Önceliği daha yüksek olan süreçler ilk önce gerçekleştirilmelidir, oysa eşit önceliklere sahip işler sıralı veya FCFS esasına göre yürütülür. Öncelik, bellek gereksinimlerine, zaman gereksinimlerine vb. bağlıdır.
Öncelik Planlama Türleri
Öncelikli planlama iki ana türe ayrılır:
Önleyici Planlama
Önleyici Planlamada görevler çoğunlukla önceliklerine göre atanır. Bazen, daha düşük öncelikli görev hala çalışıyor olsa bile, daha düşük öncelikli bir görevden önce daha yüksek öncelikli bir görevi çalıştırmak önemlidir. Düşük öncelikli görev bir süre bekletilir ve yüksek öncelikli görevin yürütülmesi tamamlandığında devam eder.
Önleyici Olmayan Planlama
Bu tür zamanlama yönteminde, CPU belirli bir işleme tahsis edilir. CPU'yu meşgul eden işlem, bağlam değiştirerek veya sonlanarak CPU'yu serbest bırakır. Çeşitli donanım platformlarında kullanılabilen tek yöntemdir. Bunun nedeni, öncelikli zamanlama gibi özel donanıma (örneğin, zamanlayıcıya) ihtiyaç duymamasıdır.
Öncelik Planlamanın Özellikleri
- İşlemleri önceliğe göre programlayan bir CPU algoritması.
- Kullanılır OperaToplu işlemleri gerçekleştirmek için sistemler.
- Aynı önceliğe sahip iki iş HAZIR ise, İLK GELİR, İLK HİZMET VERİR temelidir.
- Öncelik planlamada her işleme, öncelik düzeyini belirten bir numara atanır.
- Sayı ne kadar düşükse, öncelik o kadar yüksektir.
- Bu tür zamanlama algoritmasında, mevcut çalışan işlemden daha yüksek önceliğe sahip yeni bir işlem gelirse, mevcut çalışan işlem kesintiye uğrar.
Öncelik Planlama Örneği
Aşağıdaki P1'den P5'e kadar olan beş süreci ele alalım. Her sürecin kendine özgü önceliği, işlem süresi ve varış zamanı vardır.
| Süreç | Öncelik | Patlama zamanı | Varış zamanı |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 3 | 0 |
| P3 | 1 | 7 | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
) 0 Adım Zaman = 0'da, P1 ve P2 süreçleri gelir. P1'in önceliği P2'den daha yüksektir. İşlem, 4 işlem süresine sahip P1 süreciyle başlar.
) 1 Adım Zaman = 1'de yeni bir işlem gelmez. Yürütme P1 ile devam eder.
) 2 Adım 2. zamanda yeni bir süreç gelmez, dolayısıyla P1 ile devam edebilirsiniz. P2 bekleme kuyruğunda.
) 3 Adım Zaman 3'te yeni bir işlem gelmediği için P1'e devam edebilirsiniz. P2 işlemi hala bekleme kuyruğunda.
) 4 Adım Zaman 4'te P1 yürütmeyi tamamlamıştır. P2 yürütmeyi başlatır.
) 5 Adım Zaman = 5'te yeni bir süreç gelmediği için P2 ile devam ediyoruz.
) 6 Adım Zaman = 6'da P3 gelir. P3, önceliği (2) olan P2'ye kıyasla daha yüksek önceliğe (1) sahiptir. P2'nin önceliği kesilir ve P3 yürütülmeye başlar.
| Süreç | Öncelik | Patlama zamanı | Varış zamanı |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 1 kişiden 3'i beklemede | 0 |
| P3 | 1 | 7 | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
) 7 Adım Saat 7'de yeni bir işlem gelmediği için P3 ile devam ediyoruz. P2 bekleme kuyruğunda.
) 8 Adım Zaman = 8'de yeni bir süreç gelmediğinden P3 ile devam edebiliriz.
) 9 Adım Zaman = 9'da yeni bir süreç başlamadığı için P3 ile devam edebiliriz.
) 10 Adım 10. zaman aralığında yeni bir süreç ortaya çıkmadığı için P3 ile devam ediyoruz.
) 11 Adım Zaman = 11'de, P4, 4 önceliğiyle gelir. P3'ün önceliği daha yüksek olduğundan, yürütülmesine devam eder.
| Süreç | Öncelik | Patlama zamanı | Varış zamanı |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 1 kişiden 3'i beklemede | 0 |
| P3 | 1 | 2 kişiden 7'i beklemede | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
) 12 Adım Zaman 12'de P5 gelir. P3'ün önceliği daha yüksek olduğundan, yürütmeye devam eder.
) 13 Adım Zaman = 13'te P3'ün yürütülmesi tamamlanır. Hazır kuyruğunda P2, P4, P5 bulunur. P2 ve P5'in önceliği eşittir. P2'nin geliş zamanı P5'ten önce olduğundan, P2'nin yürütülmesi başlar.
| Süreç | Öncelik | Patlama zamanı | Varış zamanı |
|---|---|---|---|
| P1 | 1 | 4 | 0 |
| P2 | 2 | 1 kişiden 3'i beklemede | 0 |
| P3 | 1 | 7 | 6 |
| P4 | 3 | 4 | 11 |
| P5 | 2 | 2 | 12 |
) 14 Adım Zaman = 14'te P2 işlemi yürütmesini tamamlamıştır. P4 ve P5 bekleme durumundadır. P5 en yüksek önceliğe sahiptir ve yürütmeye başlar.
) 15 Adım Zaman 15'te P5 yürütmeye devam eder.
) 16 Adım Zaman = 16'da P5'in yürütülmesi tamamlanmıştır. Geriye sadece P4 kalmıştır. P4 yürütülmeye başlar.
) 17 Adım Zaman = 20'de P4'ün yürütülmesi tamamlanmıştır ve geriye hiçbir işlem kalmamıştır.
) 18 Adım Yukarıdaki örnek için ortalama bekleme süresini hesaplayalım.
Bekleme Süresi = başlangıç zamanı – varış zamanı + bir sonraki patlama için bekleme süresi
P1 = 0 - 0 = 0 P2 = 4 - 0 + 7 = 11 P3 = 6 - 6 = 0 P4 = 16 - 11 = 5 Average Waiting time = (0 + 11 + 0 + 5 + 2)/5 = 18/5 = 3.6
Öncelikli planlamanın avantajları
Öncelikli planlama yönteminin avantajları/faydaları şunlardır:
- Kullanımı kolay planlama yöntemi.
- İşlemler öncelik sırasına göre yürütülür, bu nedenle yüksek öncelikli işlemlerin uzun süre beklemesi gerekmez, bu da zamandan tasarruf sağlar.
- Bu yöntem, her bir sürecin göreceli öneminin kesin olarak tanımlanabileceği iyi bir mekanizma sağlar.
- Değişken zaman ve kaynak gereksinimleri olan uygulamalar için uygundur.
Öncelikli planlamanın dezavantajları
Öncelikli planlamanın dezavantajları/eksiklikleri şunlardır:
- Sistemin sonunda çökmesi durumunda tüm düşük öncelikli işlemler kaybolur.
- Yüksek öncelikli işlemler çok fazla CPU zamanı alırsa, düşük öncelikli işlemler aç kalabilir ve süresiz olarak ertelenebilir.
- Bu planlama algoritması bazı düşük öncelikli süreçlerin süresiz olarak beklemesine neden olabilir.
- Bir işlem çalışmaya hazır olduğunda engellenir ancak şu anda başka bir işlem çalıştığından CPU'yu beklemek zorundadır.
- Hazır kuyruğunda daha yüksek öncelikli yeni bir süreç gelmeye devam ederse, bekleme durumundaki sürecin uzun süre beklemesi gerekebilir.


















