Arabellek altaşımı

Vikipedi, özgür ansiklopedi
Atla: kullan, ara

Arabellek altaşımı (ing. buffer underrun veya buffer underflow), bilgi işlemde iki cihaz veya işlem ile haberleşmede kullanılan arabelleğe, verinin okuma hızından daha düşük bir hızla beslenmesi durumudur. Bu durum, arabellekten okuma yapan program veya cihazın arabellek tekrar doldurulurken işlemini durdurmasını gerektirir ve arabelleğe konulan verinin genellikle böyle işlem başlama ve durdurma erişimlerine uygun olmaması nedeniyle istenilmeyen ve bazen çok önemli yan etkilere neden olabilir.

Genel neden ve çözümleri[değiştir | kaynağı değiştir]

Arabellek alttaşımı, hafızanın bir kısmının arabellek için kullanıldığı sabit ama boyuttan fazla veri ile doldurulduğu arabellek aşımı ile karıştırılmamalıdır. Arabellek aşımı genelde programlama hatalarının sonucu ortaya çıkar ve önlenebilirdir, oysa arabellek altaşımı genelde hafızanın bağlantı; diğerleri ile işlemci zamanı için yarışan iki işlem veya diğerleri ile ile bantgenişliği ile yarışan iki cihaz arasındaki, ile doldurulduğu geçici durumlar sonucu ortaya çıkar.

Bu problemlere karşı en basit çözüm hafıza miktarının artırılmasıdır. Gelen veri akışı saniyede 1 bit ile okunacaksa, 10 bit büyüklüğündeki bir hafıza, bağlantının başarısız olmasından önce 10 saniyeye kadar, 60 bit 1 dakikaya kadar, engellenmesini sağlayabilir. Ama, ikinci durum bu işlem veya cihaz için pahalı olabilen daha fazla hafıza gerektirir. Ayrıca, arabelleğin okuma işlemi başlamadan önemli bir süre duraklama gerektiren tam kapasite ile başlangıç yaptığı ve bu durumun bağlantının engellenmediği sürece sürdüğü kabülüne bağlıdır. İkinci durumda, veri ortalamada gerekenden daha hızlı gelmediğinde bağlantıdaki herhangi bir engelleme birikerek çoğalır, bağlantının 1 saat boyunca aktif olduğu kuramsal durumda, her dakikada bir bitin düşürülmesi 60 bitlik arabelleğin altaşımına neden olur.

CD ve DVD yazma işlemleri[değiştir | kaynağı değiştir]

Arabellek altaşımı, CD ve DVD yazmada önemli problemlere neden olabilir, çünkü lazer çalışmaya başladıktan sonra, durup tekrar hatasız çalışmaya başlayamaz, altaşım için gereken duraklama diskteki verinin geçersiz ve kullanılamaz olmasına neden olur. Genellikle arabellek sabit disk veya diğer CD/DVD gibi daha yavaş bir kaynak tarafından doldurulduğu için, küçük kapasiteli arabellek, yavaş işlemci veya diğer aynı zamanlı işlemlerin hafıza yükü ile tüketilebilir. Bu nedenle, değişik CD/DVD yazıcı üreticileri tarafından, Plextor BurnProof ve Yamaha SafeBurn gibi değişik markalarca, arabellek altaşımı engelleme tekniği gerçekleştirilmiştir. Bu teknik ile, lazer istenilen herhangi bir süre için yazmayı durdurup arabellek tekrar tam dolunca tekrar devam edebilir. Başarılı yazma süreleri arasındaki süre oldukça küçüktür.

Yeniden yazılabilir medya ürünlerini (CD-RW, DVD-RW, DVD-RAM) kullanırken bu problemi engellemenin diğer bir yolu UDF dosya sistemini kullanmaktır. Bu dosya sistemi, veriyi tek, güncellenebilir adres tablosunca referanslanan daha küçük paketler ile düzenler. Böylece bu küçük paketli veri daha kısa sürede yazılabilir