BT Sözlüğü › Programlama › Halka tampon (ring buffer)

Halka tampon (ring buffer)

Programlama Svenska → Güncellendi: 2026-11-02

Sabit boyutlu bir bellek bloğundaki kuyruk; okuma ve yazma göstergeleri bir çember boyunca birbirini kovalar.

Tampon düz bir dizidir; gösterge sona ulaşınca başa sarar. Bellek ayırma yok, veri kaydırma yok, giriş ve çıkış sabit zamanlı. Bu yüzden firmware'de varsayılan seçimdir: bir UART kesmesi karakterleri bırakır, ana döngü de kendi hızında alır.

Tam olarak bir üretici ve bir tüketici varsa kilide gerek yoktur: kesme yalnızca yazma indeksine, döngü yalnızca okuma indeksine dokunur. Boyutlar genellikle ikinin kuvvetidir; böylece sarma bölme yerine ucuz bir bit maskesi olur. Geriye ezeli dolu-mu-boş-mu belirsizliği kalır (ikisinde de göstergeler eşit görünür); bir gözü feda ederek ya da ayrı bir sayaç tutarak çözülür. Aynı fikir Linux ağ sürücülerini, ses API'lerini ve io_uring'i de çalıştırır.

← Sözlüğe dön