Sanal Bellek Nedir?
Sanal bellek, ikincil belleğin ana belleğin bir parçasıymış gibi kullanılabildiği bir bellek yönetim tekniğidir.
Sanal bellek, bellek kullanımını optimize etmede etkili olduğu için bilgisayarların işletim sisteminde ( OS ) kullanılan yaygın bir tekniktir.
Sanal bellek, bir bilgisayarın fiziksel bellek eksikliklerini telafi etmesini sağlamak için hem donanım hem de yazılım kullanır ve verileri geçici olarak rastgele erişimli bellekten ( RAM ) disk depolama alanına aktarır. Bellek parçalarını disk dosyalarına eşlemek, bilgisayarın ikincil belleği ana bellekmiş gibi ele almasını sağlar.

Sanal Belleğin Tarihi;
Sanal bellek geliştirilmeden önce bilgisayarlarda RAM ve ikincil bellek vardı. İlk bilgisayarlar ana bellek için manyetik çekirdek belleği, ikincil bellek için ise manyetik tamburlar kullanıyordu. Bilgisayar belleği pahalıydı ve 1940’lar ve 1950’lerde genellikle kıttı. Bilgisayar programları boyut ve karmaşıklık açısından büyüdükçe, geliştiriciler programlarının bilgisayarın tüm ana belleğini kullanıp belleğin tükenmesinden endişe duyuyorlardı.
ilk zamanlarda, programcılar kullanılabilir bellekten daha büyük programları çalıştırmak için üst üste bindirme adı verilen bir işlem kullanıyorlardı . Bir programın sürekli kullanılmayan bölümleri, gerektiğinde bellekteki mevcut üst üste bindirmenin üzerine yazacak üst üste bindirmeler olarak ayarlanıyordu. Üst üste bindirmenin işe yaraması için kapsamlı bir programlama gerekiyordu ve bu, otomatik sanal belleğin geliştirilmesinde önemli bir itici güçtü.
Sanal bellek kavramını 1956 yılında Alman fizikçi Fritz-Rudolf Güntsch’in geliştirdiği kabul edilir, ancak bu nokta tartışmalıdır. Ancak Güntsch, bir tür önbellek belleğini tanımlamayı başarmıştır .
Sanal bellek sisteminin ilk gerçek örneği, İngiltere, Manchester’daki Manchester Üniversitesi’nin Atlas bilgisayarı için tek seviyeli bir depolama sistemi geliştirme girişimi sırasında ortaya çıktı . Sistem, sanal adresleri birincil belleğe bir programlayıcıyla eşlemek için sayfalama yöntemini kullanıyordu. Atlas 1959’da geliştirildi ve daha sonra 1962’de hizmete girdi.
1961 yılında, sanal belleğe sahip ilk ticari bilgisayar Burroughs Corp. tarafından piyasaya sürüldü. Sanal belleğin bu versiyonu, sayfalama yerine segmentasyon kullanıyordu.
IBM araştırmacıları, 1969’da sanal bellek katman sistemlerinin önceki manuel sistemlerden daha iyi çalıştığını gösterdi. 1970’lerde ana bilgisayarlar ve mini bilgisayarlar genellikle sanal bellek kullanıyordu. Sanal bellek teknolojisi, geliştiricilerin bellek yetersizliğinin bu makinelerde sorun olmayacağını düşünmeleri nedeniyle ilk bilgisayarlara dahil edilmemişti. Bu varsayım yanlış çıktı. Intel, 1982’de 80286 işlemcisinin korumalı modunda sanal belleği ve 1985’te 80386 çıktığında sayfalama desteğini kullanıma sundu. Sanal bellek, Microsoft’un Windows işletim sistemi ailesinin önemli bir parçasıdır.

Sanal bellek, fiziksel RAM tabanlı belleğin pahalı olduğu bir dönemde geliştirilmiştir.
Günümüzde çoğu bilgisayarda en az 8 gigabayt ( GB ) RAM kullanılır. Ancak bu, kapasite aynı anda birkaç programı çalıştırmak için yeterli olmaz. Sanal bellek, yakın zamanda kullanılmayan verileri sabit disk veya katı hal sürücüsü ( SSD ) gibi bir depolama aygıtına aktararak RAM’i boşaltır.
Sanal bellek, sistem performansını, çoklu görevleri ve büyük programları kullanmayı iyileştirmek için önemlidir. Ancak, sanal belleğe çok güvenmemek gerekir, çünkü RAM’den oldukça yavaştır. İşletim sistemi sanal bellek ve RAM arasında çok sık veri alışverişi yapmak zorunda kalırsa, bilgisayar yavaşlamaya başlar ve bu da thrashing adı verilen bir duruma neden olur.
Her Bilgisayar sınırlı miktarda RAM kullanır, bu nedenle birden fazla program aynı anda çalıştığında bellek dolar. Sanal bellek kullanan bir sistem, RAM’i taklit etmek için bir sabit disk veya SSD’nin bir bölümünü kullanır. Sanal bellek sayesinde, bir sistem aynı anda çalışan daha büyük veya birden fazla programı yükleyebilir ve böylece RAM satın almaya gerek kalmadan daha fazla disk alanı varmış gibi çalışmasını sağlayabilir.

Sanal Bellek ve Fiziksel Bellek
Sanal belleği fiziksel bellekle karşılaştıralım.
| Özellik | Sanal Bellek | Fiziksel Bellek (RAM) |
|---|---|---|
| Tanım | Disk depolama alanını kullanarak kullanılabilir belleği genişleten bir soyutlama | CPU tarafından şu anda kullanılan verileri ve talimatları depolayan gerçek donanım (RAM) |
| Konum | Sabit diskte veya SSD’de | Bilgisayarın anakartında |
| Hız | Daha yavaş (disk G/Ç işlemleri nedeniyle) | Daha hızlı (CPU tarafından doğrudan erişilir) |
| Kapasite | Daha büyük, disk alanıyla sınırlı | Daha küçük, takılı RAM miktarıyla sınırlıdır |
| Maliyet | Daha düşük (ek disk depolama maliyeti) | Daha yüksek (RAM modüllerinin maliyeti) |
| Veri Erişimi | Dolaylı (sayfalama ve takas yoluyla) | Doğrudan (CPU verilere doğrudan erişebilir) |
| Volatilite | Uçucu olmayan (veriler diskte kalır) | Uçucu (güç kesildiğinde veriler kaybolur) |
Sanal ve fiziksel bellek karşılaştırıldığında, genellikle en büyük ayrım hız ile ilgilidir. RAM, sanal bellekten önemli ölçüde daha hızlıdır, ancak genellikle daha pahalıdır. Bir bilgisayarın depolamaya ihtiyacı olduğunda ilk kullanılan kaynak RAM’dir. Daha yavaş olan sanal bellek ise yalnızca RAM dolduğunda kullanılır.
Kullanıcılar, çift sıralı bellek modülleri ( DIMM’ler ) gibi daha fazla RAM yongası satın alıp takarak bilgisayarlarına aktif olarak RAM ekleyebilirler. Sistemdeki yavaşlamalar, bellek değişimlerinin çok sık gerçekleşmesinden kaynaklanıyorsa, RAM eklemek faydalıdır. RAM miktarı, bilgisayara ne takıldığıyla ilgilidir. Sanal bellek ise, bilgisayarın sabit diskinin veya SSD’sinin boyutuyla sınırlıdır. Sanal bellek ayarları genellikle işletim sistemi aracılığıyla kontrol edilebilir.
Ayrıca, RAM takas tekniklerini kullanırken, sanal bellek sayfalama kullanır. Fiziksel bellek RAM çipinin boyutuyla sınırlıyken, sanal bellek sabit disk veya SSD’nin boyutuyla sınırlıdır. RAM ayrıca CPU’ya doğrudan erişime sahipken, sanal RAM’in böyle bir erişimi yoktur.
Sanal Bellek Nasıl Çalışır?
Sanal bellek, çalışmak için hem donanım hem de yazılım kullanır. Bir uygulama kullanımdayken, bu programdan gelen veriler RAM kullanılarak fiziksel bir adreste saklanır. Bir bellek yönetim birimi ( MMU ), adresi RAM’e eşler ve adresleri otomatik olarak çevirir. MMU, örneğin, mantıksal bir adres alanını karşılık gelen bir fiziksel bellek adresine eşleyebilir .
Herhangi bir noktada, daha acil bir işlem için RAM alanına ihtiyaç duyulursa, veriler RAM’den sanal belleğe aktarılabilir. Bilgisayarın bellek yöneticisi, fiziksel ve sanal bellek arasındaki geçişleri takip etmekten sorumludur. Bu verilere tekrar ihtiyaç duyulursa, bilgisayarın MMU’su yürütmeyi sürdürmek için bir bağlam anahtarı kullanır.
İşletim sistemi, sanal belleği fiziksel belleğe kopyalarken, sabit sayıda adrese sahip belleği sayfa dosyalarına veya takas dosyalarına böler . Her sayfa bir diskte saklanır ve sayfaya ihtiyaç duyulduğunda, işletim sistemi onu diskten ana belleğe kopyalar ve sanal adresleri gerçek adreslere dönüştürür.
Ancak sanal belleği fiziksel belleğe dönüştürme süreci oldukça yavaştır. Bu, sanal bellek kullanımının genellikle performansta gözle görülür bir düşüşe neden olduğu anlamına gelir. Değiştirme işlemi sayesinde, daha fazla RAM’e sahip bilgisayarların daha iyi performans gösterdiği kabul edilir.
Sanal Bellek Nasıl Yönetilir?
Bir işletim sistemi içinde sanal belleği yönetmek oldukça kolaydır, çünkü sanal bellek için ayrılacak sürücü alanı miktarını belirleyen varsayılan ayarlar vardır. Bu ayarlar çoğu uygulama ve işlem için işe yarar, ancak sanal belleğe ayrılan sürücü alanı miktarını manuel olarak sıfırlamanın gerekli olduğu durumlar olabilir; örneğin, hızlı yanıt sürelerine bağlı uygulamalarda veya bilgisayarda birden fazla sabit disk sürücüsü veya SSD olduğunda.
Sanal belleği manuel olarak sıfırlarken, sanal bellek için kullanılacak minimum ve maksimum sürücü alanı miktarı belirtilmelidir. Sanal bellek için çok az alan ayırmak, bilgisayarın RAM’inin tükenmesine neden olabilir. Bir sistem sürekli olarak daha fazla sanal bellek alanına ihtiyaç duyuyorsa, RAM eklemeyi düşünmek akıllıca olabilir. Yaygın işletim sistemleri genellikle kullanıcıların sanal belleği, RAM miktarının bir buçuk katından fazla artırmamalarını önerir.
Sanal belleğin yönetimi işletim sistemine göre farklılık gösterir. BT profesyonelleri, fiziksel bellek, sanal bellek ve sanal adresleri yönetme konusunda temel bilgileri anlamalıdır.
Sanal Belleğin Geleceği
Günümüzde veri analitiği ve yapay zeka gibi amaçlarla kullanılan bilgi işlem sistemleri göz önüne alındığında , bilgi işlem gereksinimlerini karşılayacak şekilde uyarlanabilen ve ölçeklenebilen bellek kaynaklarına olan ihtiyacın devam etmesi muhtemeldir.
Sanal belleğin güçlü bir geleceğe işaret eden önemli gelişmeleri arasında ; sanal bellek kapasitelerini artırmak için bulut bilişim teknolojisinin kullanılması , daha hızlı kalıcı bellek teknolojileri, bellek işlevselliğini ve güvenliğini geliştirmek için yapay zekanın daha fazla kullanılması ve sanal bellek performansını daha da artırmak için kuantum hesaplama teknolojisindeki ilerlemeler yer alıyor.
Sanal Bellek Türleri
Bir bilgisayarın MMU’su sanal bellek işlemlerini yönetir. Çoğu bilgisayarda MMU donanımı merkezi işlem birimine entegredir. CPU aynı zamanda sanal adres alanını da oluşturur. Sanal bellek genellikle sayfalanmış veya bölümlenmiş bellektir.
Sayfalama, belleği bölümlere veya sayfalama dosyalarına ayırır. Bir bilgisayar kullanılabilir RAM’ini tükettiğinde, kullanılmayan sayfalar bir takas dosyası kullanılarak sabit diske veya SSD’ye aktarılır. Takas dosyası, sabit diskte bilgisayarın RAM’i için sanal bellek uzantısı olarak kullanılmak üzere ayrılmış bir alandır. Takas dosyasına ihtiyaç duyulduğunda, sayfa takası adı verilen bir işlem kullanılarak RAM’e geri gönderilir . Bu sistem, bilgisayarın işletim sistemi ve uygulamalarının gerçek belleğinin tükenmemesini sağlar. Sayfalama dosyasının maksimum boyutu, bilgisayarın fiziksel belleğinin bir buçuk ila dört katı olabilir.
Sanal bellek sayfalama işlemi, işletim sistemi ve uygulamaların kullandığı sanal adresleri MMU’nun kullandığı fiziksel adreslere dönüştüren sayfa tablolarını kullanır. Sayfa tablosundaki girişler, sayfanın RAM’de olup olmadığını gösterir. İşletim sistemi veya bir program RAM’de ihtiyaç duyduğu bilgiyi bulamazsa, MMU, eksik bellek referansına bir sayfa hatası istisnasıyla yanıt vererek işletim sisteminin gerektiğinde sayfayı belleğe geri taşımasını sağlar. Sayfa RAM’e girdikten sonra, sanal adresi sayfa tablosunda görünür.
Segmentasyon, sanal belleği yönetmek için de kullanılır. Bu yaklaşım, sanal belleği farklı uzunluklardaki segmentlere ayırır. Bellekte kullanılmayan segmentler, sürücüdeki sanal bellek alanına taşınabilir. Segmentlere ayrılmış bilgiler veya işlemler, bir segmentin bellekte bulunup bulunmadığını, değiştirilip değiştirilmediğini ve fiziksel adresini gösteren bir segment tablosunda izlenir. Ayrıca, segmentasyondaki dosya sistemleri yalnızca bir işlemin potansiyel adres alanına eşlenen segmentlerden oluşur.
Bölümlendirme ve sayfalama, belleğin nasıl bölündüğüne bağlı olarak bellek miktarı modeli olarak farklılık gösterir; ancak bu işlemler birleştirilebilir de. Birleştirildiğinde, bellek çerçevelere veya sayfalara bölünür. Bölümler birden fazla sayfa kaplar ve sanal adres hem bölüm numarasını hem de sayfa numarasını içerir.
Diğer sayfa değiştirme yöntemleri arasında ilk giren ilk çıkar (FIFO), en iyi algoritma ve en son kullanılan (LRU) sayfa değiştirme yer alır:
- FIFO yönteminde, sanal adreste en uzun süre bulunan sayfanın yerine yenisini seçmek için bellek kullanılır.
- En uygun algoritma yöntemi, en uzun süre sonra değiştirilmesi muhtemel olmayan sayfalara göre sayfa değiştirmeleri seçer; uygulanması zor olsa da, bu daha az sayfa hatasına yol açar.
- LRU sayfa değiştirme yöntemi, ana bellekte en uzun süredir kullanılmayan sayfayı değiştirir.
Sanal Bellek Kullanmanın Faydaları
- Çoklu Programlama ve Daha Büyük Programları Destekler: Sanal bellek, talep sayfalama özelliğini kullanarak birden fazla işlemin aynı anda bellekte bulunmasını sağlar. Fiziksel bellekten daha büyük programlar bile verimli bir şekilde çalıştırılabilir.
- Uygulama Kapasitesini Maksimize Eder: Sanal bellek sayesinde sistemler, birden fazla büyük uygulama da dahil olmak üzere aynı anda daha fazla uygulama çalıştırabilir. Ayrıca, programların yalnızca belirli bölümlerinin aynı anda yüklenmesine izin vererek hızı artırır ve bellek yükünü azaltır.
- Fiziksel Bellek Sınırlamalarını Ortadan Kaldırır: Sanal bellek disk alanını kullanarak telafi ettiği için RAM’i hemen yükseltmeye gerek yoktur.
- Güvenliği ve İzolasyonu Artırır: Sanal bellek, her işlem için bellek alanını izole ederek sistem güvenliğini artırır. Bu, uygulamalar arasındaki müdahaleyi önler ve veri bozulması veya yetkisiz erişim riskini azaltır.
- CPU ve Sistem Performansını İyileştirir: Sanal bellek, mantıksal bölümleri ve bellek kullanımını daha etkili bir şekilde yöneterek CPU’ya yardımcı olur. Uygun maliyetli ve esnek kaynak tahsisi sağlayarak CPU iş yüklerini optimize eder ve daha sorunsuz çoklu görev performansı sağlar.
- Bellek Yönetimi Verimliliğini Artırır: Sanal bellek, kullanıcı müdahalesi olmadan RAM ve disk arasında veri taşıma da dahil olmak üzere bellek tahsisini otomatikleştirir. Ayrıca, harici parçalanmayı önleyerek mevcut belleğin daha verimli kullanılmasını ve işletim sistemi düzeyinde bellek yönetiminin basitleştirilmesini sağlar.
Sanal bellek kullanımının sınırlamaları nelerdir?
Sanal belleğin kullanımının avantajları olmasına rağmen, aşağıdakiler gibi dikkate alınması gereken bazı dezavantajları da vardır:
- Uygulamalar sanal bellekten çalıştırıldığında daha yavaş çalışır.
- Verilerin sanal ve fiziksel bellek arasında eşlenmesi gerekir; bu da adres çevirileri için ekstra donanım desteği gerektirir ve performansı etkileyebilir.
- Sanal depolama alanının boyutu , ikincil depolama alanının miktarı ve bilgisayar sistemindeki adresleme şeması ile sınırlıdır .
- Yeterli RAM olmadığında bilgisayarın yavaşlamasına neden olan çökmeler meydana gelebilir.
- Sanal belleği kullanan uygulamalar arasında geçiş yapmak zaman alabilir.
- Sanal bellek, kullanılabilir sürücü alanının miktarını azaltır.
Donanım kategorisinden son haberler
İlgilendiğiniz başlıklardan geri kalmayın.

Yorumlar (0)
Topluluğumuzla düşüncelerinizi paylaşın.
Henüz yorum yapılmamış. İlk yorumu sen yaz!
Yorum yapabilmek için giriş yap.
Üye değil misin?