Çok Kuyruklu Algoritma (Multi-level Queues)

Bir bilgisayar sisteminde işletime alınan prosesler çok değişik niteliklerde olabilirler. Bunlardan kimileri, etkileşimli işlem ortamında program geliştiren kullanıcı prosesleri olabilirken, kimileri de toplu işlem kuyruğundan sisteme sunulmuş ve sistem kaynaklarını boş dönemlerinde çalışır tutmayı amaçlayan işlerle ilgili prosesler olabilir. Bunun yanı sıra işletilen prosesler arasında hiç bekletilmeden CPU’ya anahtarlanması gereken çok öncelikli sistem prosesleri de bulunur. Bunların hepsini aynı hazır kuyruğuna bağlamak ve hepsine aynı planlama algoritmasını uygulamak uygun bir yol olmayabilir. Örneğin en kısa işletim süresi kalan önce algoritmasının tüm proseslere uygulanması, etkileşimli işlem ortamını tümüyle yozlaştırabilir.

Bu nedenle, değişik planlama algoritmalarının olumlu yanlarını biraraya getirmek ve sakıncalarını azaltmak üzere çok kuyruklu algoritma kullanılır. Çok kuyruklu algoritmada CPU anahtarlanmayı bekleyen prosesler, ortak bir hazır kuyruğu yerine, prosesin türüne göre ayrı kuyruklara bağlanırlar. Ortaya çıkan birden çok kuyruğun herbiri için, uygun olan algoritma kullanılır. Bu durumda, örneğin, sistemde etkileşimli işlem ortamında çalışmak üzere tanımlanan prosesler, zaman dilimli algoritmanın uygulandığı kuyruk üzerinden, toplu işlem kapsamında sunulan işlerle ilgili proesesler ise ilk gelen önce ya da en kısa işletim süresi kalan önce algoritmalarının uygulandığı diğer kuyruklar üzerinden işletime alınırlar. Bunun gibi, öncelik tabanlı algoritmanın yönetim başarımını yükselttiği prosesler için de, bu algoritmanın uygulandığı ayrı bir kuyruk öngörülür.

Örnek:

Üç kuyruk:

  • Q0 – 8 milisaniye zaman kuantumlu
  • Q1 – 16 milisaniye zaman kuantumlu
  • Q2 – RR

Planlama:

  • Bir iş RR (İlk gelen ilk hizmet görür kuralı) ile hizmet veren Q0 kuyruğuna girer. İş CPU’yu ele geçirdiğinde 8 milisaniyelik süre verilir, bu iş 8 milisaniyede bitmezse iş Q1 kuyruğuna gider.

Q1 kuyruğunda RR ile 16 milisaniye daha hizmet görür. Eğer işlem hala tamamlanamazsa engellenir ve Q2 kuyruğuna gönderilir.


<< Zaman Dilimli Algoritma (Time Sliced – Round Robin) | Planlama Algoritmaları >>

You may also like...