Çok Seviyeli Sıralar (Multi Level Queues)


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.


« Çift Özetleme (Double Hashing)   |   C ile programlamaya giriş final sınavı çözümleri »



Yorumlar

Kullanıcı girişi yaparak ya da zorunlu olan * alanlarını doldurarak yorum yapabilirsiniz.

İsminiz *

Email adresiniz *

Web siteniz

Mesajınızı buraya yazabilirsiniz:

Bu Yazı Hakkında

Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Çok Seviyeli Sıralar (Multi Level Queues)' isimli yazı 18 Jan 2010 tarihinde, saat: 17:10 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 235 defa okunmuştur.

Benzer yazıları işletim sistemleri, veri yapıları kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.


Yazarın Kitabı

Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
Yapılan Son Yorumlar
Yakın Yazılar
Bağlantılar