Ö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.

  • 🎯 Tanım: İşlemler öncelik sırasına göre planlanır; daha yüksek öncelikli görevler, daha düşük öncelikli görevlerden önce yürütülür.
  • 🔢 Öncelik Numarası: Daha düşük bir sayı genellikle daha yüksek önceliği ifade eder.
  • ⏸️ Önleyici: Daha yüksek öncelikli bir gelen işlem, halihazırda devam eden daha düşük öncelikli bir süreci kesintiye uğratabilir.
  • ▶ ️ Önleyici Olmayan: Çalışmakta olan işlem, sonlanana veya bağlam değişene kadar işlemciyi meşgul eder.
  • ✅ avantajı: Önemli süreçler, işlemci kullanım süresine göre göreceli önem derecelerine uygun şekilde hızlı bir şekilde yürütülür.
  • ⚠️ Dezavantaj: Düşük öncelikli süreçler beklemede kalabilir ve süresiz olarak çalışmaya devam edebilir.

Öncelik Planlama Algoritması

Ö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.

Öncelikli Planlama

) 1 Adım Zaman = 1'de yeni bir işlem gelmez. Yürütme P1 ile devam eder.

Öncelikli Planlama

) 2 Adım 2. zamanda yeni bir süreç gelmez, dolayısıyla P1 ile devam edebilirsiniz. P2 bekleme kuyruğunda.

Öncelikli Planlama

) 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.

Öncelikli Planlama

) 4 Adım Zaman 4'te P1 yürütmeyi tamamlamıştır. P2 yürütmeyi başlatır.

Öncelikli Planlama

) 5 Adım Zaman = 5'te yeni bir süreç gelmediği için P2 ile devam ediyoruz.

Öncelikli Planlama

) 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

Öncelikli Planlama

) 7 Adım Saat 7'de yeni bir işlem gelmediği için P3 ile devam ediyoruz. P2 bekleme kuyruğunda.

Öncelikli Planlama

) 8 Adım Zaman = 8'de yeni bir süreç gelmediğinden P3 ile devam edebiliriz.

Öncelikli Planlama

) 9 Adım Zaman = 9'da yeni bir süreç başlamadığı için P3 ile devam edebiliriz.

Öncelikli Planlama

) 10 Adım 10. zaman aralığında yeni bir süreç ortaya çıkmadığı için P3 ile devam ediyoruz.

Öncelikli Planlama

) 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

Öncelikli Planlama

) 12 Adım Zaman 12'de P5 gelir. P3'ün önceliği daha yüksek olduğundan, yürütmeye devam eder.

Öncelikli Planlama

) 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

Öncelikli Planlama

) 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.

Öncelikli Planlama

) 15 Adım Zaman 15'te P5 yürütmeye devam eder.

Öncelikli Planlama

) 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.

Öncelikli Planlama

) 17 Adım Zaman = 20'de P4'ün yürütülmesi tamamlanmıştır ve geriye hiçbir işlem kalmamıştır.

Öncelikli Planlama

) 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.

SSS

Önceliksiz süreçler, daha yüksek öncelikli süreçler sürekli olarak geldiği için süresiz olarak beklediğinde açlık durumu ortaya çıkar. Yaşlandırma (Aging) yöntemi, uzun süre bekleyen süreçlerin önceliğini kademeli olarak artırarak bu sorunu çözer, böylece her süreç sonunda çalışır.

Çoğu işletim sisteminde, daha düşük öncelik numarası daha yüksek önceliği ifade eder. Örneğin, 1 önceliğine sahip bir işlem, 3 önceliğine sahip bir işlemden önce çalışır. Ancak, bazı sistemler bunu tersine çevirir, bu nedenle kullanılan kuralı her zaman kontrol edin.

Öncelik, bellek ihtiyaçları, zaman gereksinimleri ve işlemci kullanım artışı gibi faktörler kullanılarak dahili olarak veya kullanıcı veya yönetici tarafından önem, maliyet veya son teslim tarihleri ​​temelinde harici olarak atanabilir. Statik (sabit) veya dinamik (çalışma zamanında değişen) olabilir.

Yapay zeka, iş yükü modellerini ve son teslim tarihlerini öğrenerek süreç önceliklerini dinamik olarak atayabilir ve ayarlayabilir. Bu, önemli işlerin zamanında tamamlanmasına yardımcı olurken, kaynak yetersizliği riskini azaltır ve karmaşık, değişen sistemlerde genel verimliliği ve yanıt verme hızını artırır.

Evet. Yapay zeka, bekleme sürelerini izleyebilir ve akıllı yaşlandırma gibi davranarak uzun süre bekleyen süreçlerin önceliğini otomatik olarak artırabilir. Yoğunluğu tahmin ederek, sabit kurallardan daha iyi bir şekilde adalet ve performans dengesi sağlar, böylece düşük öncelikli işler sonsuza kadar gecikmez.

Bu yazıyı şu şekilde özetleyin: