Yazan : Şadi Evren ŞEKER

Bilgisayar bilimlerinde kullanılan bir veri yapısı (data structure) çeşididir. Çalışma yapısı olarak sıraya (queue) benzetilebilir.

Çok seviyeli sıralarda, sıralara (queue) benzer şekilde ilk giren ilk çıkar (first in first out , FIFO) mantığı geçerlidir. Ancak sıranın birden çok girişi vardır ve bu anlamda, değişik hızlarda ilerleyen birden çok sıranın birleşimi gibi düşünülebilir.

Yukarıdaki şekilde, 3 seviyeli bir sıra gösterilmiştir. Sonuçta bütün sıralar, aynı hizmet noktasına doğru hareket etmektedir. Ancak bazı sıra elemanları, diğerlerine göre daha öncelikli noktalardan başlayabilmektedir. Bu anlamda bazı işlemler daha öncelikli olmaktadır. Bu açıdan çok seviyeli sıralar (multi level queues) birer rüçhan sırası (priority queue, öncelik sırası) olarak düşünülebilir.

Yukarıdaki benzetmeyi gerçek hayatta bir bankada sıra bekleyen kişilere benzetmek mümkündür. Örneğin banka kendi müşterilerine 1. Önceliği verirken, kredi işlemi yapan müşterilere ikinci ve diğer müşterilere 3. Önceliği verebilir.

Elbette yukarıdaki çizimde ve anlatımda problem olabilecek nokta, kıtlıktır (starvation). Yani sürekli olarak bankaya kendi müşterisi gelmesi durumunda, diğer müşterilere sıra asla gelmeyebilir.

Bunun çözümü olarak, düşük seviyelerden, daha yüksek seviyelere belirli aralıklarla bazı kişilerin geçirilmesi gerekir.

Yukarıdaki anlatımı aşağıdaki şekilde düşünmek de mümkündür:

Yukarıdaki örnekte 3 ayrı sıra (3 seviye) bulunmakta ve bu sıralar birbirine bağlanmak yerine doğrudan hizmet noktasına bağlanmaktadır. Bu yeni çizimimiz ile gösterilen veri yapısı ise çok seviyeli geri besleme sırası (multilevel feedback queue) olarak isimlendirilmektedir. İki yapı arasındaki en önemli fark, ilkinde işlemlerin sıralar arasında geçiş yapabilmesi ancak bu yeni yapıda işlemlerin girdikleri sırada kalmasıdır.

Bu gösterimde her sıra, farklı hızda ilerlemekte ve hizmet noktası, her sıradan farklı hızda işlem kabul etmektedir. Örneğin her turda, ilk sıradan 6, ikinci sıradan 3 ve son sıradan tek kişi alındığını kabul edelim. Bu durumda ilk sıradaki işlemler daha yüksek öncelikte olacak ve diğer sıralarda kendi hızlarına göre birer öncelik belirlemiş olacaklardır.

İşletim sistemleri (operating systems) açısından da oldukça kullanışlı olan çok seviyeli sıralar işlemci zamanlamasında (CPU Scheduling) kullanılmaktadırlar. Örneğin CPU ile daha yoğun çalışan ve nispeten kısa olan işler, en hızlı sıraya konulmakta, Giriş çıkış ( I / O ) işlemleri nispeten yavaş olduğu için daha düşük seviyeye ve nihayet en son seviyeye kullanıcının özel olarak zamanını verdiği zamanlanmış işlemler yerleştirilmektedir. Bu sayede uzun süren I/O işlemlerini daha nadir yapmak ve daha önemli ve kısa olan CPU işlemlerini daha çabuk yapmak mümkün olmaktadır.

Yorumlar

  1. Gürkan

    Hocam sizin sitenizi çok faydalı buluyorum, işime yarıyor ancak bazı yerlerde hatalar tespit ediyorum.
    Siz demişsiniz ki :
    ” İki yapı arasındaki en önemli fark, ilkinde(multilevel queue) işlemlerin sıralar arasında geçiş yapabilmesi ancak bu yeni(multilevel feedback queue) yapıda işlemlerin girdikleri sırada kalmasıdır.”
    Operating System Concepts 9. Edition Silberschatz,Galvin and Gagne Kitabı Chapter 5. 168. sayfa da diyor ki
    “The multilevel feedback queue scheduling algorithm, allows a process to move between queues”.
    Yani multilevel feedback queue’de işlemler girdikleri sırada kalmıyor queue’ler arasında geçiş yapabiliyor.

    1. Şadi Evren ŞEKER

      Gürkan Bey ilginiz için çok teşekkür ediyorum. Evet yazılarda hatalar olabiliyor ve elimden geldiğince düzeltmeye çalışıyorum. Sizin dikkat çektiğiniz nokta doğru. Yani tam tersi ifade olacak. Multi level queue geçişe izin vermezken multilevel feedback queue geçişe izin verir. İlk fırsatta yazıda da ilgili düzeltmeyi yapacağım. Tekrar teşekkürler.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir