Ç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
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
- Visual Basic ile Gösterici (Pointer) Kullanımı
- Hasse Çizgeleri (Hasse Diagrams)
- Zeki Vekiller (Akıllı Ajanlar, Intelligent Agents, Zeki Etmenler )
- Integral Kriptoanalizi ( Toplam Tecessüsü , Integral Cryptoanalysis)
- Diferansiyel Kriptoanalizi ( Fark Tecessüsü , Differential Cryptoanalysis)
- Sierpinski Üçgeni (Sierpinski Triangle)
- C ile programlamaya giriş final sınavı çözümleri
- Çok Seviyeli Sıralar (Multi Level Queues)
- Çift Özetleme (Double Hashing)
- İkinci Dereceden Sondalama (Quadratic Probing)
Yapılan Son Yorumlar
- Şadi Evren ŞEKER: Null, NULL, nil veya null olarak...
- Fatih Kabakci: hocam merhabalar,...
- kara: Çok güzel anlatılmış gerçekten teşekkürler...
- Şadi Evren ŞEKER: Bahsettiğiniz şekil dönüşümü...
- Caner: Kullanıcıdan açı girdisi almıyorsanız...
- Furkan Yediyildiz: Algoritmanin mantigi cok güzel...
- havva: çok sağolun çok güzel açıklamalar var tşk...
- Şadi Evren ŞEKER: typedef komutu, bir yapıdan yeni bir...
- fatih kabakci: hocam ben structures ile ilgili bir sorum...
- Şadi Evren ŞEKER: evet, yukarıda açıklanan, herhangi...
- Abdurrahman ulusoy: fi açısından teta kadar döndürme...
- Şadi Evren ŞEKER: Hayır yok, bir noktanın, herhangi...
- Abdurrahman ulusoy: Bu durumda yukarıdaki formüllerin...
- Abdurrahman ulusoy: Merhaba hocam Üstteki mesajımda...
- mustafa ekmekcioğlu: merhaba şadi bey ben hacettepe...
- Şadi Evren ŞEKER: Talebiniz üzerine...
- Evren Kocaturk: ve bunu matlab üzerinde, gerekli...
- Evren Kocaturk: teşekkürler, işime yarayacak gibi,...
- tuncay çavuşoğlu: Şadi bey teşekkürler.Kısa ve...
- attila: hocam bunun bir örneginide Visual Basic diliyle...
Yakın Yazılar
Çok Seviyeli Sıralar (Multi Level Queues)
Buket Sıralaması (Bucket Sort)
Tek atama dili (single assignment language)
Harici Sıralama (External Sort)
TCP (Transmission Control Protocol (Nakil Hakimiyet Anlaşması , İletim Kontrol Protokolü))
Kıtalamak (Bölütlemek, Segmentation)
Visual Basic ile Gösterici (Pointer) Kullanımı
Çok işlemlik (Multi processing)
İçerik Değiştirme (Context Switching)
Feistel Şifreleme (Feistel Cipher, Fesitel Ağı, Feistel Network)
Bağlantılar