Bir diskten okumak gerçek bellekten okumaktan çok daha yavaştır.
Ek olarak, nispeten kısa zaman aralıkları ile aynı disk yüzeyi
tekrar tekrar okunacaktır. Örneğin birisi; önce gelmiş bir mesajı
okuyabilir, daha sonra cevaplarken bir metin düzenleyiciden o
mesajı okur ve postalarken, sistemin eposta dizinine bir kopyasını
alması için onu okutabilir. Veya ls komutunun
bir sistem üzerinde kullanıcılar tarafından ne kadar sıklıkla
kullanıldığını bir düşünün. Diskten bir kere okutup, bu bilgiyi
işi bitince bellekte tutmak yöntemiyle sistem hızını artırabiliriz
fakat önce okuyun. Bu işleme disk tamponlanması
ve bu iş için kullanılan belleğe tampon bellek
denir.
Bellek sınırlı ve kıt kaynaklara sahip olduğu için tampon bellek
yeterli büyüklükte olamaz (ihtiyaç duyulan tüm bilgileri bir seferde
okutmak için). Tampon dolduğu zaman, uzun süre kullanılmayan bilgiler
yeni bilgilerin alınabilmesi için silinir.
Disk tamponlama tabii ki yazarak çalışır. Bir yanda, sık sık yazılan
ve hemen ardından okunan bir bilgiyi (örneğin; bir dosyaya kopyalanan
bir kaynak kodu dosyası ve ardından onu okuyan derleyici program)
tampon belleğe yerleştirmek iyi bir fikir olabilir. Diğer yandan,
bilgiyi tampona yerleştirerek yazma işleminin bir seferde yapılmasını
sağlayamazsınız çünkü yazma programı oldukça yavaştır. Yazma işlemi,
diğer programları yavaşlatmaksızın, artalanda yapılır.
Pek çok işletim sistemi bu isimle anılmasa da bir önbelleğe sahiptirler.
Fakat çalışma prensipleri farklı olabilir. Bazıları doğrudan
yazma (write-through) prensibiyle, bilgiler önbellek içinde
saklanırken diske bir seferde yazma işlemini yaparlar; yazma işlemi daha
sonra yapılan önbellekler arkadan yazma
(write-back) olarak adlandırılırlar. Arkadan yazma, doğrudan yazma
işlemine göre daha etkili ama hatalara daha meyillidir. Şayet sistem
kilitlenirse, elektrik kesilirse veya yazma işlemini yapmak için
beklerken disket sürücüde bulunan disket çıkarılırsa, genellikle önbellek
içinde yapılan değişiklikler kaybolur. Belki de yazılamayan bilgiler
çok önemli muhasebe/kayıt bilgileri içermekteydi. Bu yüzden de dosya
sistemi tam kapasite kullanıma geçemiyor da olabilir.
Bu sebeplerden dolayı sistemi her zaman normal bir şekilde kapatın.
(
Açılışlar ve Kapanışlar bölümüne de bakın.)
Bağlı bir disketi
unmount komutu ile sistemden
ayırmadan yuvasından çıkarmayın, elektrik akımını sistem açıkken
kapatmayın, disket sürücünün işini bitirmesini bekleyin ve işlem
yapıldığını gösteren ışık sönmeden disketleri yerinden çıkarmayın.
sync komutu önbelleğe baskı uygular ve bütün
yazılmamış ama yazılması gereken bilgilerin disk üzerine yazılmasını
sağlar. Bu komutla işlemin tam yapıldığından emin olabilirsiniz.
Geleneksel Unix sistemlerinde her 30 saniyede bir
sync
komutunun çalışmasını sağlayan
update isimli
bir program bulunur. Bu program arka planda çalışır ve bu sayede
sync komutunu kullanmanıza gerek kalmaz.
Linux
sync'in ağır disk G/Ç hatalarına sebep
olması nedeniyle meydana gelen ani donmaları önlemek amacıyla
daha etkili ve doğru
sync sinyali gönderilmesini
sağlayan
bdflush isimli bir programı kullanır.
Linux altında bdflush, update
tarafından başlatılır. Genellikle endişelenecek bir durum olmaz ama
her hangi bir sebepten dolayı bdflush durur ise,
çekirdek sizi uyaracaktır. Bunu /sbin/update
kullanarak elle yeniden başlatabilirsiniz.
Önbelleğin etkili olamamasının sebebi onun boyutlarına bağlıdır.
Çok küçük bir önbellek içinde bulunan bilgiler tekrar kullanılamadan,
yeni gelenlere yer açmak için silinecektir. Kritik alan; aynı bilgiye
hangi sıklıkla ulaşıldığı, ne kadar bilgi okunup yazıldığıdır.
Sabit boyutta bir önbellek alanınız varken onu çok büyük bir hale
getirmek iyi olmayabilir. Çünkü bu gerçek belleğin boş alanının
kısıtlanmasına ve çok yavaş olan takas işlemine ihtiyaç duyulmasına
sebep olabilir. Gerçek belleğin daha verimli kullanılması için,
Linux otomatik olarak boştaki bütün RAM alanını disk önbelleği
olarak ayırır ve kullanır. Şayet bir program RAM alanına ihtiyaç
duyarsa Linux önbellek alanını otomatik olarak küçültür.
Linux altında çalışırken önbelleği kullanmak için özel bir işlem
yapmanız gerekmez, her şey otomatik olarak yapılmaktadır. Kapatma
ve disket çıkarma işlemlerini düzgün uyguladığınız sürece, hiçbir
şey hakkında endişelenmeniz gerekmez.