Arabellek yetersizliği - Buffer underrun

İçinde bilgi işlem, arabellek yetersizliği veya arabellek alt akışı ne zaman meydana gelen bir durumdur tampon iki cihaz arasında iletişim kurmak için kullanılır veya süreçler ile beslendi veri verinin okunduğundan daha düşük bir hızda. Terim farklıdır arabellek taşması, arabellek olarak kullanılan belleğin bir bölümünün sabit bir boyuta sahip olduğu ancak bu miktardan daha fazla veriyle doldurulduğu bir durum. Bu, programın veya aygıtın arabellekten okumasını, arabellek yeniden dolarken işlemeyi duraklatmasını gerektirir. Bu, istenmeyen ve bazen ciddi yan etkilere neden olabilir, çünkü arabelleğe alınan veriler genellikle bu türden durdur-başlat erişimi için uygun değildir.

Açısından eşzamanlı programlama, bir tampon yetersizliği bir biçim olarak düşünülebilir kaynak açlığı.

Arabellek yetersizliği ve arabellek yetersizliği terimleri aynı zamanda arabellek altına yazma, arabellek taşmasına benzer bir durumdur, ancak programın arabelleğin başlangıcından önce yazmaya kandırıldığı, oradaki potansiyel verileri geçersiz kıldığı, örneğin izin bitleri.[1]

Genel nedenler ve çözümler

Tampon Underuns genellikle aşağıdakileri içeren geçici sorunların sonucudur bağ bu arabelleğe alınan: ya iki süreç arasında bir bağlantı, diğerleri için rekabet İşlemci için rekabet eden cihazlarla zaman veya fiziksel bir bağlantı Bant genişliği.

Bu tür sorunlara karşı en basit önlem, eğer bir gelen gelirse, arabellek boyutunu artırmaktır. veri akışı saniyede 1 bit olarak okunması gerekiyorsa, 10 bitlik bir tampon, bağlantının başarısız olmadan önce 10 saniyeye kadar engellenmesine izin verirken, 60 bitten biri bir dakikaya kadar bir tıkanmaya izin verir. Ancak bu, işlem veya cihaz için daha fazla bellek kullanılmasını gerektirir ve bu pahalı olabilir. Arabelleğin dolu başladığını varsayar - okuma işlemi başlamadan önce potansiyel olarak önemli bir duraklama gerektirir - ve bağlantı halihazırda engellenmedikçe her zaman dolu kalacağını varsayar. Veriler ortalama olarak ulaşmazsa Daha hızlı gerekenden daha fazla, bağlantıdaki herhangi bir tıkanma kümülatif olacaktır; 60 bitlik bir arabelleğe sahip varsayımsal bir bağlantıda dakikada bir bit "düşmek", bağlantı bir saat boyunca etkin kalırsa bir arabellek yetersizliğine yol açar. Gerçek zamanlı uygulamalarda, büyük bir arabellek boyutu, video konferans gibi düşük gecikmeli uygulamalarda istenmeyen bir durum olan giriş ve çıkış arasındaki gecikmeyi de artırır.

CD ve DVD kayıt sorunları

Arabellek yetersizlikleri sırasında ciddi sorunlara neden olabilir. CD / DVD yazma çünkü yazmaya başladıktan sonra kusursuz bir şekilde duramaz ve devam edemez; bu nedenle yetersiz çalışmanın gerektirdiği duraklama, disk üzerindeki verilerin geçersiz olmasına neden olabilir. Tampon genellikle nispeten yavaş bir kaynaktan doldurulduğundan, hard disk veya başka bir CD / DVD, ağır bir CPU veya diğer eşzamanlı görevlerden kaynaklanan bellek yükü, küçük bir arabellek kapasitesini kolayca tüketebilir. Bu nedenle, adı verilen bir teknik Tampon boşaltma koruması çeşitli bireysel CD / DVD yazıcı satıcıları tarafından çeşitli ticari markalar, gibi Pleksatör Yanmaz, Nero UltraBuffer, Yamaha SafeBurn, JustLink ve Sorunsuz Bağlantı. Bu teknikle, lazer gerçekten de herhangi bir süre boyunca yazmayı durdurabilir ve ara bellek tekrar dolduğunda kaldığı yerden devam edebilir. Ardışık yazılar arasındaki boşluk son derece küçüktür.

Kullanırken soruna karşı korumanın başka bir yolu yeniden yazılabilir medya (CD-RW, DVD-RW, DVD-RAM ), kullanmaktır UDF verileri daha küçük boyutta düzenleyen dosya sistemi "paketler ", tek, güncellenmiş bir adres tablosu ile başvurulur, bu nedenle daha kısa aralıklarla yazılabilir.

Multimedya oynatma

Eğer framebuffer of grafik denetleyicisi güncellenmezse, bilgisayar ekranının resmi arabellek yeni verileri alana kadar asılı görünecektir. Birçok video oynatıcı programı (ör. MPlayer ) sistem aşırı yüklenmişse, tempoyu sürdürmek için kasıtlı olarak bir arabellek zayıflamasına izin vererek çerçeveleri düşürme özelliğine sahiptir.

Bir tampon ses denetleyicisi bir halka tampon. Bir yetersizlik meydana gelirse ve ses denetleyicisi durdurulmazsa, ya arabellekte bulunan sesi tekrarlamaya devam eder ya da uygulamaya bağlı olarak çıkış sessizliği sağlar. Bu tür bir etkiye genellikle "makineli tüfek" veya Max Baş Mesafesi kekemelik etkisi. Bu, eğer işletim sistemi ses çalma sırasında takılıyor. Bir hata işleme rutini (ör. mavi ölüm ekranı ) sonunda ses denetleyicisini durdurabilir.

Referanslar

  1. ^ "CWE-124: Ara Bellek Altına Yazma ('Arabellek Düşük Akışı')". CWE.