Tampon bellek
Önceki Bellek Yönetimi Sonraki
Tampon bellek
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.
Önceki Üst Ana Başlık Sonraki
Takas alanının ayrılması Başlangıç Açılışlar ve Kapanışlar
Bir Linux Kitaplığı Sayfası