Sanal Hafıza (Virtual Memory)
Yazan: Şadi Evren ŞEKER
Sanal bellek olarak da isimlendirilen hafıza türü, bilgisayarın birincil hafızası (primary memory) olarak bilinen RAM‘in yetersiz kaldığı durumlarda ikincil hafıza (secondary memory) olarak bilinen diskin bir kısmının kullanılmasıdır.
Unix/Linux terminolojisine göre takas alanı (Swap space) olarak isimlendirilen bu hafızada RAM ve disk arasında bulundurlan bilgiler sürekli olarak takaslanmaktadır (swapping).
Kısacası işlemlerin çalışmak için ihtiyaç duydukları Bellek kapasitesinin üzerindeki talepler için disk kullanılır ve çalışan programların eriştikleri veriler anlık olarak RAM’de durmalıdır. Yani şayet yer yetersizliğinden dolayı bir bilgi diske taşınmışsa ve bu bilgiye tekrar erişilmek istenirse, bu bilgi diskten RAM’e geri yüklenmelidir.
Bu yükleme işlemi tahmin edileceği üzere oldukça zaman almaktadır çünkü diske erişim, RAM’e erişime göre oldukça yavaştır. Ayrıca diske iki kere bilgi yazılmalıdır. Bu algoritma aşağıdaki şekilde özetlenebilir:

Yukarıdaki akış diyagramında (flow chart) gösterilen algoritmaya göre şayet veri RAM’de bulunmuyorsa hem yer açmak için RAM’den bir veri diske yüklenmeli hem de diskte RAM’e talep edilen veri yüklenmelidir.
Sanal belleğin kullanılabilemesi için işlemlerin kıtalama (Segmentation) veya Sayfalama (Paging) ile hafızada tutulmaları gerekir. Bunun sebebi mantıksal adreslerin fiziksel adreslere dönüşüm olanağıdır. Ayrıca sayfalama (paging) ile hafızada tutulan işlem verilerinin parçalı olarak da disk ve RAM arasında takaslanması mümkündür.
Örneğin Window işletim sistemi üzerinde paging (sayfalama) kullanılarak disk üzerinde bir dosya oluşturulur ve işlem verileri buraya atılır.

Yukarıda bilgisayarın diskinde bulunan dosyaların listesi verilmiştir. Bu listenin en sonunda pagefile.sys ismi verilen dosyanın amacı sayfalama verilerinin sonucunda işlemlerin bir kısmının diskte tutulmasıdır.
Diskte bu işlem için ayrılan miktar windows’un gelişmiş ayarlarından ayarlanabilir:

Görüldüğü üzere Windows random Access olan bir hafıza alanını ardışık (Sequential) erişimi olan disk üzerinde tek bir dosya olarak tutması çeşitli problemlere yol açabilmektedir. Örneğin bu dosya üzerinde fragmentation (parçalanma) olabilir. Yani çalışan ve ölen işlemler zaman içinde dosyada boşluklar oluşturmakta bu durumda performans kaybına sebep olmaktadır. Bunun için bu dosyanın defrgament edilmesini de içeren bir takım yöntemler geliştirilmiştir. Ancak hafıza yoðun işlemlerde performans artışını sağlayan en kesin yöntem fiziksel hafızanın arttırılmasıdır.
Sanal belleğin kapatılması için yukarıdaki şekilde görülen ekran kullanılabilir veya Swappingin tamamen kapatýlmasý için :
Linux sistemlerde /proc/sys/vm/swappiness parametresinin deðiþmesi
Windowsta ise DisablePagingExecutive registry ayarının değiştirilmesi mümkündür.
« WEKA | Özyinelilerde Ana Teorem (Master Theorem) »
Yorumlar
Bilgisayar Kavramları üzerinde şu anda okumakta olduğunuz 'Sanal Hafıza (Virtual Memory)' isimli yazı 01 Jun 2009 tarihinde, saat: 20:28 'de Şadi Evren ŞEKER tarafından gönderilmiş, toplam 629 defa okunmuştur.
Benzer yazıları işletim sistemleri kategorilerinden okuyabilirsiniz. Yazar ile irtibat kurmak için email gönderebilirsiniz. Yazıya yorum yapabilir ya da yapılan yorumları RSS 2.0 ile takibe alabilirsiniz.
Yazarın Kitabı
Bu yazının yazarı Şadi Evren ŞEKER'in son çıkan kitabı "Programlama ve Veri Yapılarına giriş (C, C++ ve JAVA ile)" hakkında bilgi almak için Buraya tıklayabilirsiniz.
Eklenen Son Yazılar
- Visual Basic ile Gösterici (Pointer) Kullanımı
- Hasse Çizgeleri (Hasse Diagrams)
- Zeki Vekiller (Akıllı Ajanlar, Intelligent Agents, Zeki Etmenler )
- Integral Kriptoanalizi ( Toplam Tecessüsü , Integral Cryptoanalysis)
- Diferansiyel Kriptoanalizi ( Fark Tecessüsü , Differential Cryptoanalysis)
- Sierpinski Üçgeni (Sierpinski Triangle)
- C ile programlamaya giriş final sınavı çözümleri
- Çok Seviyeli Sıralar (Multi Level Queues)
- Çift Özetleme (Double Hashing)
- İkinci Dereceden Sondalama (Quadratic Probing)
Yapılan Son Yorumlar
- Şadi Evren ŞEKER: Sıralama işleminiz poligonu...
- Şadi Evren ŞEKER: bahsettiğiniz sıralama algoritması...
- Abdurrahman ulusoy: merhaba hocam. gelişigüzel...
- Oguz Okutan: Merhaba hocam.. Fonksiyonlarda degere göre...
- Şadi Evren ŞEKER: Null, NULL, nil veya null olarak...
- Fatih Kabakci: hocam merhabalar,...
- kara: Çok güzel anlatılmış gerçekten teşekkürler...
- Şadi Evren ŞEKER: Bahsettiğiniz şekil dönüşümü...
- Caner: Kullanıcıdan açı girdisi almıyorsanız...
- Furkan Yediyildiz: Algoritmanin mantigi cok güzel...
- havva: çok sağolun çok güzel açıklamalar var tşk...
- Şadi Evren ŞEKER: typedef komutu, bir yapıdan yeni bir...
- fatih kabakci: hocam ben structures ile ilgili bir sorum...
- Şadi Evren ŞEKER: evet, yukarıda açıklanan, herhangi...
- Abdurrahman ulusoy: fi açısından teta kadar döndürme...
- Şadi Evren ŞEKER: Hayır yok, bir noktanın, herhangi...
- Abdurrahman ulusoy: Bu durumda yukarıdaki formüllerin...
- Abdurrahman ulusoy: Merhaba hocam Üstteki mesajımda...
- mustafa ekmekcioğlu: merhaba şadi bey ben hacettepe...
- Şadi Evren ŞEKER: Talebiniz üzerine...
Yakın Yazılar
İşlemler arası iletişim (Inter process communication (IPC))
Coloumn Major Order (Sütün bazlı sıralama)
VLAN (Sanal Yerel Ağ, Virtual Local Area Network)
Row Major Order (Satır bazlı sıralama)
Sayfa Değiştirme Algoritması (Page Replacement)
Salt okunur bellek (read only memory , ROM)
Harici Sıralama (External Sort)
Çift Tamponlama (Double Buffering, Çift Arabellek)
Rastgele Erişilebilir Bellek (Random Access Memory , RAM)
Dolaylı sıralama (Indirect Sort, Gayrimüstakim sıralama)
Tek Geçişli Çevirici (One Pass Assembler)
Bağlantılar