Bu maddede bulunmasına karşın yetersizliği nedeniyle bazı bilgilerin hangi kaynaktan alındığı belirsizdir.Mart 2020) () ( |
Sanal bellek, fiziksel belleğin görünürdeki miktarını arttırarak uygulama programına (izlence) fiziksel belleğin boyutundan bağımsız ve sürekli bellek alanı sağlayan bilgisayar tekniğidir. Ana belleğin, diskin (ikincil saklama) önbelleği (cache) gibi davranmasıyla; yani disk yüzeyini belleğin bir uzantısıymış gibi kullanmasıyla gerçekleştirilir. Ancak gerçekte, yalnızca o anda ihtiyaç duyulan veri tekerden ana belleğe aktarılıyor olabilir. Günümüzde genel amaçlı bilgisayarların işletim sistemleri çoklu ortam uygulamaları, kelime işlemcileri, tablolama uygulamaları gibi sıradan uygulamalar için sanal bellek yöntemi kullanılmaktadır.
Sanal bellek kullanımı
1980'lerin DOS’u veya 1960'ların ana bilgisayar işletim sistemleri gibi daha eski işletim sistemlerinde bu işlev bulunmamaktadır. Gömülü sistemlerde ve bazı özel amaçlı bilgisayar sistemlerinde hızlı ve uyumlu tepki zamanı gerektiğinden genellikle sanal bellek kullanılmaz.
Sanal bellek kullanımının iki temel gerekçesi vardır:
- Programların konumlandırılması, belleğin programlar arasında etkin ve güvenli bir şekilde paylaşılması.
- Sınırlı boyuta sahip ana belleğin programlama ve kullanım açısından yaratacağı güçlükleri aşmak.
Sanal Belleğin Gerçekleştirilmesi
Sanal bellek tekniğiyle, Merkezi İşlem Birimi (Central Processing Unit) bir “sanal adres (mantıksal adres)” üretir. Sanal adreslerin oluşturduğu kümeye “adres uzayı” denir. Yazılım ve donanımın birlikte çalışmasıyla bu sanal adres, ana belleğe ulaşmak için kullanılacak bir gerçek (fiziksel) adrese dönüştürülür. Bu işleme “adres dönüştürme” (memory mapping / address translation) denir. Gerçek adreslerin oluşturduğu kümeye ise “bellek uzayı” denir.
Yerleştirme
Sanal bellek, programların çalıştırılmak üzere yüklenmesinde “yerleştirme (relocation)” tekniğini kullanarak kolaylık sağlar. Yerleştirmede programın kullandığı sanal adresler, ana belleğe erişimden önce farklı gerçek adreslere yönlendirilirler. Bu işlem, programı yüklerken ana belleğin herhangi bir yerini kullanabilmemizi sağlar.
Sayfalama
Sayfalama durgun sanal bellek sayfalarının ikincil bellekte (disk) saklanarak daha sonra ihtiyaç duyulduğunda ana belleğe yüklenmesi işlemini içerir.
Sayfa ve Sayfa Düzeni
Günümüzde kullanılan sanal bellek sistemleri alanda yerellikten yararlanabilmek için programları belirli boyutlarda blok kümeleri şeklinde yerleştirirler. Bu belirli boyutlardaki blok kümeleri (öbekleri) “sayfa” olarak adlandırılır. Ana belleğin sayfalarla aynı boyutlarda bloklardan oluştuğu varsayılır. Bu varsayım “sayfa çerçevesi” (page frame) olarak nitelendirilir.
Sanal Adres Numarasının Gerçek Adres Numarasına Dönüştürülmesi
Ana bellekte kullanılan gerçek adres numarası, gerçek adresin üst bölümünü, sayfa eklemesi ise gerçek adresin alt bölümünü oluşturur. Sayfa eklemesindeki bitlerin sayısı sayfanın boyutunu belirler ve değişim göstermez. Sanal adreslerle adreslenebilen sayfa sayısı gerçek adreslerle adreslenen sayfa sayısı ile örtüşmek zorunda değildir; sanal sayfa sayısının gerçek sayfa sayısının üzerinde olması sınırsız boyuttaki bellek izlenimini yaratmada esas alınan noktadır.
Herhangi bir hatayla karşılaşılmadıkça olağan sanal adres dönüştürme işlemi şu şekilde yapılır:
if (ADÖ && önbellek) { veriyi işlemciye ilet; }
else if (!önbellek && ADÖ) { işlemciye = Ana_Bellek[ADÖ’ den gelen Gerçek Adres]; }
else { olağan dönüştürme işlemini gerçekleştir; }
Sanal = Gerçek İşlemi
MVS, z/OS ve benzeri işletim sistemlerinde bazı kısımlar sanal=gerçek biçimine (virtual=real mode )sahiptirler; yani her sanal adres gerçek bir adrese karşılık gelmektedir.Bu kısımlar:
- Kesme düzenekleri
- Sayfa hatası denetimi ve sayfa tabloları
- Giriş/ çıkış kanalları (I/O channels) tarafından erişilen veri arabellekleri (data buffers)
- Giriş /çıkışların yönetiminde genelgeçer yöntemler uygulamayıp kendi arabelleklerine sahip olan ve çevre birimleri ile doğrudan iletişim kuran izlenceler (program)
Sayfa Tablosu
Sanal bellekte sayfalar, belleği dizinleyen bir tablo kullanılarak yerleştirilirler. Bu yapı “sayfa tablosu (page table)” olarak adlandırılır. Bellekte tutulan sayfa tablosu sanal bellek adresinin numarasına göre dizinlenmiştir ve ona karşılık gelen gerçek sayfa numarasını içerir. Her program, sanal adres uzayını, ana bellekteki bellek uzayına dönüştüren kendine ait bir sayfa tablosuna sahiptir. Sayfa tablosu, ana bellekte mevcut olmayan sayfaların kayıtlarını da tutabilir. Her sayfa tablosunda geçerli bit (1 veya 0 ) tutulur. Eğer bu bit mantıksal sıfıra eşit ise sayfa ana bellekte mevcut değil demektir ve “sayfa hatası (page fault)” oluşur. Eğer bit mantıksal bire işaret ediyorsa sayfa ana bellekte mevcut ve geçerli bir fiziksel adrese sahip demektir.
Tablonun boyutunu ve kullanılan ana bellek miktarını azaltmak için yöntemler
- Sayfa tablosunun boyutlarını sınırlayan bir sınır kaydı tutmak. Eğer sanal sayfa numarası sınır kaydının sınırını aşarsa kayıtlar sayfa tablosuna eklenmelidir. Bu teknik, bir işlem daha fazla alana ihtiyaç duyduğunda sayfa tablosuna büyüme yeteneği kazandırır. Sonuç olarak sanal adres uzayı yalnızca ihtiyaç duyulduğunda büyük tutulacaktır.
- Bölmelere ayırmak: Çoğu dil iki boyutları büyüyebilen iki ayrı alan gerektirdiği için tek boyutta büyümenin yetersiz olduğu durumlarda sayfa tablosu ikiye bölünür. İki ayrı sayfanın farklı sınırlara sahip olması desteklenir. İki sayfa tablosu kullanımı adres uzayını da ikiye parçaya (segment) böler. Sınır kaydı her iki parça için de tutulur. MIPS mimarisi de bu tekniği desteklemektedir.
- Sanal adrese bir hesaba dayalı adresleme (hashing) işlevi eklenerek sayfa tablosu veri yapısının sadece gerçek sayfa sayısı kadar boyutta olması sağlanabilir. Bu yapıya ters çevrilmiş sayfa tablosu adı verilir.
- Birden fazla seviyeli sayfa tablosu kullanılabilir.
- Sayfa tabloları kullanımı için gerekli ana bellek miktarının azaltılması sayfa tablolarının tekrar sayfalanması ile sağlanabilir.
Sayfa Hatası
Eğer başvurulan veri o anda ana bellekte bulunamıyorsa sayfa ana bellekte mevcut değil demektir ve “sayfa hatası (page fault)” oluşur. Sayfa hatası çok yüksek bulamama gecikmesine neden olur. Sanal bellek sistemleri tasarlanırken bu durumun yaratacağı yükü engellemek için bazı önlemler alınabilir.
- Sayfalar yüksek erişim zamanını karşılayacak kadar büyük olmalıdır.
- Sayfa hatası denetimi sağlanmalıdır.
- Oluşan hatalar donanım yerine yazılımla çözülebilir.
- Tümüne yazma (write-through) yöntemi çok masraflı olduğu için geri yazma(write-back) metodu kullanılır.
Sayfa Hatası Denetimi (Paging Supervisor) ve Sayfa Değişimi (Takas)
Sayfa hatası meydana geldiğinde, yönetim işletim sistemine bırakılır. Bu devir kural dışı durum (hata) işleyişi (exception mechanism) ile gerçekleştirilir. Yönetim işletim sistemine geçtiğinde, sayfayı bir sonraki sıradüzende (genelde disk) bulmalı ve istenen sayfayı ana bellekte nereye koyacağına karar vermelidir. Sanal adres tek başına sayfanın diskin neresinde olduğunu belirtmek için yeterli olmadığından, sanal adres uzayında bulunan her sayfanın disk üzerinde izini sürmek gerekir. İşletim sistemi bu işlem için her sanal sayfanın diskin neresinde saklandığını kaydeden veri yapıları yaratır. Bu veri yapısı sayfa tablosunda veya ayrı bir tabloda tutulabilir. İşletim sistemi aynı zamanda her gerçek sayfanın hangi uygulamalar ve hangi sanal sayfalar tarafından kullanıldığını takip etmek üzere ayrı bir veri yapısı daha oluşturur. Ana bellekteki tüm sayfalar kullanımdayken sayfa hatası oluşması durumunda, işletim sistemi bir sayfayı değiştirmek(takas yapmak) üzere seçmelidir. Sayfa hatalarının en aza indirilmesi amaçlandığından çoğu işletim sistemi yakın bir zamanda kullanılmayacağını varsaydığı bir sayfayı seçer. İşletim sistemlerin bu varsayımları geçmiş durum değerlendirmelerine dayanarak gelecek durumun tahmin edilmesine dayanır. Bu tahminlerde kullanılan algoritmaların başında en uzun zamandır kullanılmayanla değiştirme (least recently used (LRU)) gelir. İşletim sistemi en uzun zamandır kullanılmayan sayfanın daha yakın bir zamanda kullanılan sayfadan daha az gerekli olduğu varsayımı yaparak uzun zamandır kullanılmayan sayfayı istenen sayfayla değiştirmek üzere seçer.
En uzun zamandır kullanılmayan yönteminin kusursuz ve eksiksiz olarak uygulanması veri yapısının her bellek başvurusunda güncellenmesini gerektireceğinden oldukça masraflıdır. Bunun yerine birçok işletim sisteminde hangi sayfaların yakın zamanda kullanılıp hangilerinin kullanılmadığına dair iz sürülür. İşletim sisteminin yükünü hafifletmek için donanımda başvuru biti (reference/use bit) tutulabilir. Bu bit sayfanın her kullanımında kurulur. İşletim sistemi belirli aralıklarla bu bitleri temizler ve hangi sayfaların kullanılıp kullanılmadığı bilgisinin kaydını tutar. Bu bilgi ışığında, işletim sistemi bir sayfa değiştireceği zaman en uzun zamandır kullanılmayan; yani başvuru bitleri mantıksal sıfıra eşit olan sayfalar arasından bir seçim yapar.
Değiştirme (Takas) İçin Kullanılabilecek Diğer Algoritmalar
- İlk Giren İlk Çıkar: Değiştirilmek üzere seçilen sayfa bellekte en uzun zamandır tutulan; belleğe diğerlerinden önce yüklenen sayfadır.
- Son Giren İlk Çıkar: Değiştirilmek üzere seçilen sayfa bellekte en kısa zamandır tutulan; belleğe en yakın zamanda yüklenen sayfadır.
- En Az Sıklıkta Kullanılan: Değiştirilmek üzere seçilen sayfa o an için bellekte en az sıklıkta kullanıldığı belirlenen sayfadır.
- En Uygun: Değiştirilmek üzere seçilen sayfa uzun bir süre kullanılmayacak olan sayfadır. Bu sayfanın belirlenmesi için algoritmanın gelecekteki başvuru (istek) durumları hakkında bilgi sahibi olması gerekmektedir ki genellikle bu bilgi mevcut değildir.
Kalıcı ve Yerleşik Sayfalar
Tüm sanal bellek sistemleri hareketsiz kılınmış; yani burada bulunan sayfaların sayfa değişimi için seçilip ikincil belleğe gönderilemeyeceği alanlara sahiptir.
- Kesme düzenekleri genellikle çeşitli kesmeleri(örneğin giriş/çıkış tamamlanmaları, zamanlayıcı, izlence (program) hataları, sayfa hataları vb.) işleyen bir dizi göstergelere (pointer) dayanırlar. Kesmelerin sayfa değişimi olmadan işlenmesi kullanışlıdır.
- Genellikle sayfa tabloları sayfalanmaz. (bazı özel yöntemler hariç)
- Merkezi işlem biriminin dışından ulaşılan veri arabellekleri (data buffers) (doğrudan erişimli bellek(direct memory Access) ve giriş/çıkış kanalları (I/O channels) gibi.) Genellikle bu aygıtlar ve bağlandıkları yollar sanal adresler yerine doğrudan fiziksel adresler kullanırlar.
- İşlemleri zamanlamaya bağımlı ve sayfalamanın yol açacağı tepki süresi değişimine izin veremeyecek kadar katı olan çekirdek (kernel) veya uygulama alanları hareketsiz kılınmıştır.
Yazmalar
Bir sanal bellek sisteminde, bir sonraki sıradüzene tümüne yazmanın(write-through) yaratacağı gecikme çok büyük olduğundan bunu karşılamak bir ara bellekle sağlanamaz. Bunun yerine, geri yazma (write-back) yöntemi kullanılır. Bellekte sadece bir sayfa yenisiyle değiştirildiğinde sadece o sayfa kopyalanır. Burada kullanılan teknik bir alt seviyedeki sıra düzene yazma tekniğine geri kopyalamaya (copy back) benzerdir.
İkincil bellekten (disk) aktarma zamanı, ikincil belleğe ulaşım zamanına göre çok daha kısa olduğundan kopyalamanın tek bir öbek yerine tüm bir sayfa için yapılması daha etkin bir çözüm oluşturmaktadır. Geri yazma yöntemi bu konu göz önünde bulundurularak tasarlanmalıdır. Değiştirmek üzere seçilen sayfanın geri kopyalanması gerekip gerekmediği denetlenerek yazmanın bu bilgiye göre yapılması verimliliği daha da arttıracaktır. Bir sayfanın bellekte okunduktan sonra değiştirilip değiştirilmediğinin izi sayfa tablosuna eklenen bir bit sayesinde sürülebilir. Bu bite kirli bit (dirty bit) adı verilir. Sayfa ilk yazıldığında bu bit kurulur. İşletim sistemi sayfayı değiştirmek üzere seçtiğinde kirli bit sayfanın yerine yenisi getirilmeden önce yazılması gerekip gerekmediğini gösterir.
Adres Dönüştürme İşleminin Hızlandırılması
Adres Dönüştürme Önbelleği (ADÖ) (Translation Lookaside Buffer (TLB))
Programın belleğe ulaşması önce fiziksel adrese ve daha sonra veriye ulaşmasıyla mümkündür. Bu yüzden başarımın arttırılmasında alanda yerellik özelliğinden yararlanılır. Sanal bir sayfanın adresi dönüştürüldüğünde sayfadaki öbeklere ulaşımın tekrarı ve dolayısıyla o dönüşümün yakın bir zamanda tekrar kullanılma ihtimali yüksektir. Günümüz makineleri yakın zamanda kullanılan sayfa tablosu satırlarını tutan ve adres dönüşümlerinin izini süren bir önbelleğe (cache) sahiptir. Bu özel yapıya Adres Dönüştürme Önbelleği (ADÖ) (Translation Lookaside Buffer (TLB)) adı verilir.
Adres Dönüştürme Önbelleği sadece sayfa tablosu eşleştirmelerini tutan bir önbellektir. Sayfa bulma olayı ((vuruş) (hit)) gerçekleştiğinde gerçek adres numarası adresin yapılandırılması için kullanılır ve karşılık gelen bit mantıksal bire işaret eder. Eğer ADÖ’ de bir sayfa bulamama olayı ((ıska)(miss)) gerçekleşirse bunun nedeninin bir sayfa hatası mı yoksa sadece ADÖ’ den kaynaklanan bir sayfa bulamama (miss) mı olduğuna karar verilmelidir. Eğer sayfa bellekte mevcut ise sorunun ADÖ’ de bir dönüştürme hatasından ve eksikliğinden kaynaklandığı anlaşılır. Bu durumda işlemci sayfa tablosundaki adres dönüşümlerini Adres Dönüştürme Önbelleğine baştan yükleyerek, başvuruyu (reference) tekrar eder. ADÖ sayfa bulamama durumu donanımla veya yazılım kullanılarak halledilebilir. Eğer sayfa bellekte mevcut değil ise gerçek bir sayfa hatası (page fault) söz konusudur. Bu durumda işlemci, işletim sistemini kural dışı durum (exception) ile uyarır.
Eşzamanlı ADÖ ve Önbellek Erişimi
Adres Dönüştürme Önbelleği (ADÖ), diğer sıradan önbellekler gibi tam ilişkili, kümeli ilişkili ya da doğrudan eşlemeli olarak tasarlanabilir.
Adres Dönüştürme Önbellekleri çoğunlukla küçüktür, satır sayısı çok hızlı bilgisayarlarda bile 128-256’yı geçmediğinden bu önbelleklerde karmaşık olan tam ilişkili aramanın masrafı fazla değildir. Çoğu orta düzey işlemcide küçük n yollu kümeli ilişkili düzen kullanılır. ADÖ kullanan bilgisayarlar önbellek erişimi için gereken çevrim sayısını azaltmak için önbellek erişimini ADÖ erişimi ile koşut olarak (aynı anda, eşzamanlı) yapar. Bu yöntem ile sanal adreslerin sayfa numaraları ADÖ’ de arama işlemi için kullanılırken sayfa eklemesi kısmı önbellek erişiminde dizin olarak görev yapar.
Eşzamanlı ADÖ ve Önbellek Erişiminin Sorunları
Eş zamanlı erişim ancak önbelleğe dizin olarak gönderilen bitler sanal adres dönüştürmesi sırasında değişmezse işe yarar. Bu durum küçük önbellekler, büyük sayfa boyutları ya da yüksek n yollu kümeli ilişkili önbellekler kullanma gereksinimini doğurur.
Sanal Bellek, Adres Dönüştürme Önbelleği (ADÖ) ve Önbellek
En iyi koşullarda bir sanal adres ADÖ tarafından dönüştürülerek önbelleğe yollanır ve ilgili veri bulunur, getirilir ve daha sonra işlemciye geri gönderilir. En kötü durumda ise başvuru (reference) sıradüzendeki bu üç yapıda da; yani ADÖ, sayfa tablosu ve önbellekte bulunamaz.
MIPS R2000 Adres Dönüştürme ÖnBelleği (ADÖ)
DECStation 3100’de kullanılan MIPS R2000 her ne kadar basit bir uygulamaya sahip olsa da özyapısı günümüz adres dönüştürme belleklerininkine çok benzerdir. Bellek sistemi 4-KB sayfalar ve 32-bitlik adres uzayına sahiptir. Dolayısıyla, sanal sayfa numaraları 20 bit uzunluktadır. Sanal adres ile gerçek adres aynı boyutlara sahiptir. Adres dönüştürme önbelleği (ADÖ) 64 kayıt tutabilir ve tam eşlemelidir. ADÖ buyruk ve veri başvuruları tarafından paylaşılır. Her kayıt 64 bit genişliğindedir ve 20 bitlik etikete sahiptir ki bu etiket kaydın ADÖ’ de tutulan sanal sayfa numarasıdır. Sanal sayfa numarasına karşılık gelen gerçek sayfa numarası da 20 bit uzunluğundadır ve geçerli bit, kirli bit gibi sayman bitlerine yer verir.
Bir ADÖ sayma bulamama durumu meydana geldiğinde, MIPS donanımı başvurunun sayfa numarasını özel bir yazmaca kaydeder ve kural dışı durum (exception) üretir. Kural dışı durum işletim sistemini uyararak sorunun yazılım katmanında halledilmesini sağlar. Bulunamayan sayfanın gerçek adresini bulmak için ADÖ sayfa tablosunu sanal adres numarası ve yürürlükte olan sayfa tablosunun başlangıç adresini tutan yazmaç yardımıyla dizinler. Bir takım buyruk kümesi ile adres dönüştürme önbelleği güncellenir. İşletim sistemi sayfa tablosundaki eşlenen gerçek adresleri adres dönüştürme önbelleğine yerleştirir. Eğer geçersiz bir gerçek adresle karşılaşılmışsa hata oluşur. Bir ADÖ’ de sayfa bulamama durumu en az 10, ortalama olarak da 16 çevrimlik bir gecikmeye neden olur. Donanım değiştirilmek sayfa için bir önerme dizini tutar ve bu dizinden rastgele bir kayıt seçilir.
ADÖ’ de koruma (protection) sağlanması için yazma erişiminin denetimini sağlayan bir bit mevcuttur. Bu özellik, salt okunur sayfaların üzerine yazmayı engeller böyle bir istekle karşılaşıldığında da bir hata üretir.
Çağdaş İşlemcilerde Karmaşık Bellek Sistemleri
Sanal Bellek Tasarımında Temel Sorunlar
Sanal bellek tasarımında göz önünde bulundurulması gereken temel noktalar:
- İkincil bellekten ana belleğe aktarılacak olan bilgi öbeklerinin boyutunun belirlenmesi
- Ana bellekteki tüm sayfalar kullanımdayken sayfa hatası oluşması durumunda, işletim sisteminin bir sayfayı değiştirmek(takas yapmak) üzere seçmesi yöntemi
- Belleğin hangi bölgesinin yeni sayfayı tutacağının belirlenmesi (konumlandırma yöntemi)
- İstek üzerine yükleme yöntemi
Tarihçe
Sanal belleğin geliştirilmesinden önceki dönemlerde (1940 ve 50’ler) büyükçe izlenceler (program), iki seviyeli saklamayı gerçekleştirebilmek için üstyazım (overlaying) yöntemleri gibi mantıksal çıkarımlara ihtiyaç duymaktaydı. İzlenceler üst ek sayfaları (overlay) birincil ve ikincil bellek arasında taşımakla görevliydi.
Sanal belleği bilişim dünyasına tanıtmanın temel gerekçesi birincil belleği genişletmek değil bu genişlemeleri yazılımcılar tarafından kolay kullanılabilir hale getirmekti.
Birçok sistem sanal bellek kullanımından önce de belleğin birden çok izlence arasında paylaşımını sağlayabilecek yeteneğe sahipti. PDP-10 ‘un ilk modellerinde görülen taban ve sınır yazmaçlarını ( base and bounds registers) bu duruma örnek olarak gösterebiliriz. Bu yöntem her bir uygulamaya 0’dan başlayan özel bir adres uzayı ve bunun yanında adresin bellekte uygulama için ayrılan kısmında olup olmadığını denetleyen bir sınır yazmacının kullanımını içerir. Eğer yazmaç adresin ilgili kısma ait olduğunu onaylarsa, karşılık gelen taban yazmacı içeriğini de ana bellekteki adresi göstermek üzere işleme dâhil eder. Bu sanal bellek kullanılmadan bölümlere ayırmanın (segmentation) basit bir biçimidir.
Sanal bellek 1952-1962 yılları arasında Manchester Üniversitesi’nde Atlas Bilgisayar için geliştirilmiş ve 1962 yılında tamamlanmıştır. Ancak Almanya’nın öncü bilgisayar bilimcilerinden ve Telefunken TR440 anabilgisayarının geliştiricisi olan Fritz-Rudolf Güntsch sanal bellek kavramını 1957 yılında doktora tezinde (Logischer Entwurf eines digitalen Rechengerätes mit mehreren asynchron laufenden Trommeln und automatischem Schnellspeicherbetrieb (Sayısal çoklu zamanuyumsuz tambura(bazı tip makineli tüfeklerde ve tepkisiz toplarda, içerisine mermi konulan silindir şeklindeki şarjör) saklama ve özdevimli hızlı bellek biçimli bilgisayar düzeni mantık kavramı)( Logic Concept of a Digital Computing Device with Multiple Asynchronous Drum Storage and Automatic Fast Memory Mode ) ) kendisinin yarattığını iddia etmiştir.
1961’de Burroughs, sanal belleğe sahip ilk ticari bilgisayarı olan B5000’i piyasaya sürdü. Sistem sayfalama (paging) yerine bölümlere ayırma (segmentation) kullanmaktaydı.
Bilgisayar bilimi tarihindeki birçok teknoloji gibi sanal belleğin benimsenmesi de birçok güçlüklerle karşılaştı. Anabilgisayarların işletim sistemlerinde uygulanmasından önce karşılaşılan birçok sorunla baş etmek için çeşitli modeller, deneyler ve kuramların geliştirilmesi gerekti. Devingen adres dönüşümleri özelleştirilmiş, pahalı ve kurulumu zor donanımı ve belleğe erişimi kısmen yavaşlatması en büyük sorunlarıydı. Ayrıca tüm sistemi kapsayan uygulama ve algoritmaların ikincil belleği kullanmasındaki etkinliği düşüreceğine dair endişeler bulunmaktaydı.
1969’a gelindiğinde sanal belleğin ticari bilgisayarlarda kullanımına dair tartışmalar da sona ermişti. David Sayre’nin liderliğindeki bir IBM araştırma grubu sanal belleğin diğer sistemlerden çok daha iyi çalıştığını ortaya koydu.
Sanal belleği tanıtan ilk minibilgisayar(minicomputer) Norveç üretimi NORD-1 oldu.1970'ler boyunca, VAX modelleri başta olmak üzere başka minibilgisayarlar da sanal belleği uygulamaya koydu.
Sanal bellek X86 mimarisine Intel’in I286 (80286) işlemcisinin güvenli biçimi (protected mode) ile tanıtıldı. Önceleri bölüm takası (segment swapping) ile gerçekleştirildi ancak büyük bölümlerde (segment) sorun yaratıyordu. Intel 80386 mevcut bölmelere ayırma katmanının altında işleyen sayfalama(paging) yöntemini tanıttı. Artık sayfa hatası (page fault) diğer kural dışı durumlarla (exception) birlikte değerlendirilebilmekteydi.
Kaynakça
- John L. Hennessy, David A. Patterson, Computer Architecture, A Quantitative Approach ()
- Operational Characteristics for the Processors for Burroughs
- http://www.multicians.org/multics-vm.html18 Ocak 2010 tarihinde Wayback Machine sitesinde . The Multics Virtual Memory: Concepts and Design
Dış bağlantılar
- belgeler.org: sanal bellek17 Ekim 2007 tarihinde Wayback Machine sitesinde .
wikipedia, wiki, viki, vikipedia, oku, kitap, kütüphane, kütübhane, ara, ara bul, bul, herşey, ne arasanız burada,hikayeler, makale, kitaplar, öğren, wiki, bilgi, tarih, yukle, izle, telefon için, turk, türk, türkçe, turkce, nasıl yapılır, ne demek, nasıl, yapmak, yapılır, indir, ücretsiz, ücretsiz indir, bedava, bedava indir, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, resim, müzik, şarkı, film, film, oyun, oyunlar, mobil, cep telefonu, telefon, android, ios, apple, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, pc, web, computer, bilgisayar
Bu maddede kaynak listesi bulunmasina karsin metin ici kaynaklarin yetersizligi nedeniyle bazi bilgilerin hangi kaynaktan alindigi belirsizdir Lutfen kaynaklari uygun bicimde metin icine yerlestirerek maddenin gelistirilmesine yardimci olun Mart 2020 Bu sablonun nasil ve ne zaman kaldirilmasi gerektigini ogrenin Sanal bellek fiziksel bellegin gorunurdeki miktarini arttirarak uygulama programina izlence fiziksel bellegin boyutundan bagimsiz ve surekli bellek alani saglayan bilgisayar teknigidir Ana bellegin diskin ikincil saklama onbellegi cache gibi davranmasiyla yani disk yuzeyini bellegin bir uzantisiymis gibi kullanmasiyla gerceklestirilir Ancak gercekte yalnizca o anda ihtiyac duyulan veri tekerden ana bellege aktariliyor olabilir Gunumuzde genel amacli bilgisayarlarin isletim sistemleri coklu ortam uygulamalari kelime islemcileri tablolama uygulamalari gibi siradan uygulamalar icin sanal bellek yontemi kullanilmaktadir Sanal bellek kullanimi1980 lerin DOS u veya 1960 larin ana bilgisayar isletim sistemleri gibi daha eski isletim sistemlerinde bu islev bulunmamaktadir Gomulu sistemlerde ve bazi ozel amacli bilgisayar sistemlerinde hizli ve uyumlu tepki zamani gerektiginden genellikle sanal bellek kullanilmaz Sanal bellek kullaniminin iki temel gerekcesi vardir Programlarin konumlandirilmasi bellegin programlar arasinda etkin ve guvenli bir sekilde paylasilmasi Sinirli boyuta sahip ana bellegin programlama ve kullanim acisindan yaratacagi guclukleri asmak Sanal Bellegin GerceklestirilmesiSanal bellek teknigiyle Merkezi Islem Birimi Central Processing Unit bir sanal adres mantiksal adres uretir Sanal adreslerin olusturdugu kumeye adres uzayi denir Yazilim ve donanimin birlikte calismasiyla bu sanal adres ana bellege ulasmak icin kullanilacak bir gercek fiziksel adrese donusturulur Bu isleme adres donusturme memory mapping address translation denir Gercek adreslerin olusturdugu kumeye ise bellek uzayi denir Yerlestirme Sanal bellek programlarin calistirilmak uzere yuklenmesinde yerlestirme relocation teknigini kullanarak kolaylik saglar Yerlestirmede programin kullandigi sanal adresler ana bellege erisimden once farkli gercek adreslere yonlendirilirler Bu islem programi yuklerken ana bellegin herhangi bir yerini kullanabilmemizi saglar Sayfalama Sayfalama durgun sanal bellek sayfalarinin ikincil bellekte disk saklanarak daha sonra ihtiyac duyuldugunda ana bellege yuklenmesi islemini icerir Sayfa ve Sayfa Duzeni sayfa ve sayfa duzeni Gunumuzde kullanilan sanal bellek sistemleri alanda yerellikten yararlanabilmek icin programlari belirli boyutlarda blok kumeleri seklinde yerlestirirler Bu belirli boyutlardaki blok kumeleri obekleri sayfa olarak adlandirilir Ana bellegin sayfalarla ayni boyutlarda bloklardan olustugu varsayilir Bu varsayim sayfa cercevesi page frame olarak nitelendirilir Sanal Adres Numarasinin Gercek Adres Numarasina Donusturulmesi Sanal bellekte adreslerin yapisi sanal sayfa numarasi virtual page number ve sayfa eklemesi page offset olmak uzere iki kisma ayrilmistir Ana bellekte kullanilan gercek adres numarasi gercek adresin ust bolumunu sayfa eklemesi ise gercek adresin alt bolumunu olusturur Sayfa eklemesindeki bitlerin sayisi sayfanin boyutunu belirler ve degisim gostermez Sanal adreslerle adreslenebilen sayfa sayisi gercek adreslerle adreslenen sayfa sayisi ile ortusmek zorunda degildir sanal sayfa sayisinin gercek sayfa sayisinin uzerinde olmasi sinirsiz boyuttaki bellek izlenimini yaratmada esas alinan noktadir Herhangi bir hatayla karsilasilmadikca olagan sanal adres donusturme islemi su sekilde yapilir if ADO amp amp onbellek veriyi islemciye ilet br else if onbellek amp amp ADO islemciye Ana Bellek ADO den gelen Gercek Adres br else olagan donusturme islemini gerceklestir Sanal Gercek Islemi MVS z OS ve benzeri isletim sistemlerinde bazi kisimlar sanal gercek bicimine virtual real mode sahiptirler yani her sanal adres gercek bir adrese karsilik gelmektedir Bu kisimlar Kesme duzenekleri Sayfa hatasi denetimi ve sayfa tablolari Giris cikis kanallari I O channels tarafindan erisilen veri arabellekleri data buffers Giris cikislarin yonetiminde genelgecer yontemler uygulamayip kendi arabelleklerine sahip olan ve cevre birimleri ile dogrudan iletisim kuran izlenceler program Sayfa Tablosu Bir sayfa tablosunun ana bellekteki yerini belirtmek icin donanimda sayfa tablosunun baslangicini isaret eden bir yazmac register bulunur Bu yazmac sayfa tablosu yazmaci olarak tanimlanir Sanal bellekte sayfalar bellegi dizinleyen bir tablo kullanilarak yerlestirilirler Bu yapi sayfa tablosu page table olarak adlandirilir Bellekte tutulan sayfa tablosu sanal bellek adresinin numarasina gore dizinlenmistir ve ona karsilik gelen gercek sayfa numarasini icerir Her program sanal adres uzayini ana bellekteki bellek uzayina donusturen kendine ait bir sayfa tablosuna sahiptir Sayfa tablosu ana bellekte mevcut olmayan sayfalarin kayitlarini da tutabilir Her sayfa tablosunda gecerli bit 1 veya 0 tutulur Eger bu bit mantiksal sifira esit ise sayfa ana bellekte mevcut degil demektir ve sayfa hatasi page fault olusur Eger bit mantiksal bire isaret ediyorsa sayfa ana bellekte mevcut ve gecerli bir fiziksel adrese sahip demektir Tablonun boyutunu ve kullanilan ana bellek miktarini azaltmak icin yontemler Sayfa tablosunun boyutlarini sinirlayan bir sinir kaydi tutmak Eger sanal sayfa numarasi sinir kaydinin sinirini asarsa kayitlar sayfa tablosuna eklenmelidir Bu teknik bir islem daha fazla alana ihtiyac duydugunda sayfa tablosuna buyume yetenegi kazandirir Sonuc olarak sanal adres uzayi yalnizca ihtiyac duyuldugunda buyuk tutulacaktir Bolmelere ayirmak Cogu dil iki boyutlari buyuyebilen iki ayri alan gerektirdigi icin tek boyutta buyumenin yetersiz oldugu durumlarda sayfa tablosu ikiye bolunur Iki ayri sayfanin farkli sinirlara sahip olmasi desteklenir Iki sayfa tablosu kullanimi adres uzayini da ikiye parcaya segment boler Sinir kaydi her iki parca icin de tutulur MIPS mimarisi de bu teknigi desteklemektedir Sanal adrese bir hesaba dayali adresleme hashing islevi eklenerek sayfa tablosu veri yapisinin sadece gercek sayfa sayisi kadar boyutta olmasi saglanabilir Bu yapiya ters cevrilmis sayfa tablosu adi verilir Birden fazla seviyeli sayfa tablosu kullanilabilir Sayfa tablolari kullanimi icin gerekli ana bellek miktarinin azaltilmasi sayfa tablolarinin tekrar sayfalanmasi ile saglanabilir Sayfa Hatasi Eger basvurulan veri o anda ana bellekte bulunamiyorsa sayfa ana bellekte mevcut degil demektir ve sayfa hatasi page fault olusur Sayfa hatasi cok yuksek bulamama gecikmesine neden olur Sanal bellek sistemleri tasarlanirken bu durumun yaratacagi yuku engellemek icin bazi onlemler alinabilir Sayfalar yuksek erisim zamanini karsilayacak kadar buyuk olmalidir Sayfa hatasi denetimi saglanmalidir Olusan hatalar donanim yerine yazilimla cozulebilir Tumune yazma write through yontemi cok masrafli oldugu icin geri yazma write back metodu kullanilir Sayfa Hatasi Denetimi Paging Supervisor ve Sayfa Degisimi Takas Sayfa hatasi meydana geldiginde yonetim isletim sistemine birakilir Bu devir kural disi durum hata isleyisi exception mechanism ile gerceklestirilir Yonetim isletim sistemine gectiginde sayfayi bir sonraki siraduzende genelde disk bulmali ve istenen sayfayi ana bellekte nereye koyacagina karar vermelidir Sanal adres tek basina sayfanin diskin neresinde oldugunu belirtmek icin yeterli olmadigindan sanal adres uzayinda bulunan her sayfanin disk uzerinde izini surmek gerekir Isletim sistemi bu islem icin her sanal sayfanin diskin neresinde saklandigini kaydeden veri yapilari yaratir Bu veri yapisi sayfa tablosunda veya ayri bir tabloda tutulabilir Isletim sistemi ayni zamanda her gercek sayfanin hangi uygulamalar ve hangi sanal sayfalar tarafindan kullanildigini takip etmek uzere ayri bir veri yapisi daha olusturur Ana bellekteki tum sayfalar kullanimdayken sayfa hatasi olusmasi durumunda isletim sistemi bir sayfayi degistirmek takas yapmak uzere secmelidir Sayfa hatalarinin en aza indirilmesi amaclandigindan cogu isletim sistemi yakin bir zamanda kullanilmayacagini varsaydigi bir sayfayi secer Isletim sistemlerin bu varsayimlari gecmis durum degerlendirmelerine dayanarak gelecek durumun tahmin edilmesine dayanir Bu tahminlerde kullanilan algoritmalarin basinda en uzun zamandir kullanilmayanla degistirme least recently used LRU gelir Isletim sistemi en uzun zamandir kullanilmayan sayfanin daha yakin bir zamanda kullanilan sayfadan daha az gerekli oldugu varsayimi yaparak uzun zamandir kullanilmayan sayfayi istenen sayfayla degistirmek uzere secer En uzun zamandir kullanilmayan yonteminin kusursuz ve eksiksiz olarak uygulanmasi veri yapisinin her bellek basvurusunda guncellenmesini gerektireceginden oldukca masraflidir Bunun yerine bircok isletim sisteminde hangi sayfalarin yakin zamanda kullanilip hangilerinin kullanilmadigina dair iz surulur Isletim sisteminin yukunu hafifletmek icin donanimda basvuru biti reference use bit tutulabilir Bu bit sayfanin her kullaniminda kurulur Isletim sistemi belirli araliklarla bu bitleri temizler ve hangi sayfalarin kullanilip kullanilmadigi bilgisinin kaydini tutar Bu bilgi isiginda isletim sistemi bir sayfa degistirecegi zaman en uzun zamandir kullanilmayan yani basvuru bitleri mantiksal sifira esit olan sayfalar arasindan bir secim yapar Degistirme Takas Icin Kullanilabilecek Diger Algoritmalar Ilk Giren Ilk Cikar Degistirilmek uzere secilen sayfa bellekte en uzun zamandir tutulan bellege digerlerinden once yuklenen sayfadir Son Giren Ilk Cikar Degistirilmek uzere secilen sayfa bellekte en kisa zamandir tutulan bellege en yakin zamanda yuklenen sayfadir En Az Siklikta Kullanilan Degistirilmek uzere secilen sayfa o an icin bellekte en az siklikta kullanildigi belirlenen sayfadir En Uygun Degistirilmek uzere secilen sayfa uzun bir sure kullanilmayacak olan sayfadir Bu sayfanin belirlenmesi icin algoritmanin gelecekteki basvuru istek durumlari hakkinda bilgi sahibi olmasi gerekmektedir ki genellikle bu bilgi mevcut degildir Kalici ve Yerlesik Sayfalar Tum sanal bellek sistemleri hareketsiz kilinmis yani burada bulunan sayfalarin sayfa degisimi icin secilip ikincil bellege gonderilemeyecegi alanlara sahiptir Kesme duzenekleri genellikle cesitli kesmeleri ornegin giris cikis tamamlanmalari zamanlayici izlence program hatalari sayfa hatalari vb isleyen bir dizi gostergelere pointer dayanirlar Kesmelerin sayfa degisimi olmadan islenmesi kullanislidir Genellikle sayfa tablolari sayfalanmaz bazi ozel yontemler haric Merkezi islem biriminin disindan ulasilan veri arabellekleri data buffers dogrudan erisimli bellek direct memory Access ve giris cikis kanallari I O channels gibi Genellikle bu aygitlar ve baglandiklari yollar sanal adresler yerine dogrudan fiziksel adresler kullanirlar Islemleri zamanlamaya bagimli ve sayfalamanin yol acacagi tepki suresi degisimine izin veremeyecek kadar kati olan cekirdek kernel veya uygulama alanlari hareketsiz kilinmistir Yazmalar Bir sanal bellek sisteminde bir sonraki siraduzene tumune yazmanin write through yaratacagi gecikme cok buyuk oldugundan bunu karsilamak bir ara bellekle saglanamaz Bunun yerine geri yazma write back yontemi kullanilir Bellekte sadece bir sayfa yenisiyle degistirildiginde sadece o sayfa kopyalanir Burada kullanilan teknik bir alt seviyedeki sira duzene yazma teknigine geri kopyalamaya copy back benzerdir Ikincil bellekten disk aktarma zamani ikincil bellege ulasim zamanina gore cok daha kisa oldugundan kopyalamanin tek bir obek yerine tum bir sayfa icin yapilmasi daha etkin bir cozum olusturmaktadir Geri yazma yontemi bu konu goz onunde bulundurularak tasarlanmalidir Degistirmek uzere secilen sayfanin geri kopyalanmasi gerekip gerekmedigi denetlenerek yazmanin bu bilgiye gore yapilmasi verimliligi daha da arttiracaktir Bir sayfanin bellekte okunduktan sonra degistirilip degistirilmediginin izi sayfa tablosuna eklenen bir bit sayesinde surulebilir Bu bite kirli bit dirty bit adi verilir Sayfa ilk yazildiginda bu bit kurulur Isletim sistemi sayfayi degistirmek uzere sectiginde kirli bit sayfanin yerine yenisi getirilmeden once yazilmasi gerekip gerekmedigini gosterir Adres Donusturme Isleminin Hizlandirilmasi Adres Donusturme Onbellegi ADO Translation Lookaside Buffer TLB Adres Donusturme Onbellegi ADO Translation Lookaside Buffer TLB sayfa tablosu satirlarini tutar ve adres donusumlerinin izini surer Programin bellege ulasmasi once fiziksel adrese ve daha sonra veriye ulasmasiyla mumkundur Bu yuzden basarimin arttirilmasinda alanda yerellik ozelliginden yararlanilir Sanal bir sayfanin adresi donusturuldugunde sayfadaki obeklere ulasimin tekrari ve dolayisiyla o donusumun yakin bir zamanda tekrar kullanilma ihtimali yuksektir Gunumuz makineleri yakin zamanda kullanilan sayfa tablosu satirlarini tutan ve adres donusumlerinin izini suren bir onbellege cache sahiptir Bu ozel yapiya Adres Donusturme Onbellegi ADO Translation Lookaside Buffer TLB adi verilir Adres Donusturme Onbellegi ADO Translation Lookaside Buffer TLB kullanilarak adres donusumu Adres Donusturme Onbellegi sadece sayfa tablosu eslestirmelerini tutan bir onbellektir Sayfa bulma olayi vurus hit gerceklestiginde gercek adres numarasi adresin yapilandirilmasi icin kullanilir ve karsilik gelen bit mantiksal bire isaret eder Eger ADO de bir sayfa bulamama olayi iska miss gerceklesirse bunun nedeninin bir sayfa hatasi mi yoksa sadece ADO den kaynaklanan bir sayfa bulamama miss mi olduguna karar verilmelidir Eger sayfa bellekte mevcut ise sorunun ADO de bir donusturme hatasindan ve eksikliginden kaynaklandigi anlasilir Bu durumda islemci sayfa tablosundaki adres donusumlerini Adres Donusturme Onbellegine bastan yukleyerek basvuruyu reference tekrar eder ADO sayfa bulamama durumu donanimla veya yazilim kullanilarak halledilebilir Eger sayfa bellekte mevcut degil ise gercek bir sayfa hatasi page fault soz konusudur Bu durumda islemci isletim sistemini kural disi durum exception ile uyarir Adres Donusturme Onbellegi ADO sayfa tablosunda gercek adreslere eslenen kayitlari tutan bir onbellek islevi gorur Eszamanli ADO ve Onbellek Erisimi Adres Donusturme Onbellegi ADO diger siradan onbellekler gibitam iliskili kumeli iliskili ya da dogrudan eslemeli olarak tasarlanabilir Adres Donusturme Onbellekleri cogunlukla kucuktur satir sayisi cok hizli bilgisayarlarda bile 128 256 yi gecmediginden bu onbelleklerde karmasik olan tam iliskili aramanin masrafi fazla degildir Cogu orta duzey islemcide kucuk n yollu kumeli iliskili duzen kullanilir ADO kullanan bilgisayarlar onbellek erisimi icin gereken cevrim sayisini azaltmak icin onbellek erisimini ADO erisimi ile kosut olarak ayni anda eszamanli yapar Bu yontem ile sanal adreslerin sayfa numaralari ADO de arama islemi icin kullanilirken sayfa eklemesi kismi onbellek erisiminde dizin olarak gorev yapar Eszamanli Onbellek ve ADO ErisimiEszamanli ADO ve Onbellek Erisiminin Sorunlari Es zamanli erisim ancak onbellege dizin olarak gonderilen bitler sanal adres donusturmesi sirasinda degismezse ise yarar Bu durum kucuk onbellekler buyuk sayfa boyutlari ya da yuksek n yollu kumeli iliskili onbellekler kullanma gereksinimini dogurur Sanal Bellek Adres Donusturme Onbellegi ADO ve Onbellek En iyi kosullarda bir sanal adres ADO tarafindan donusturulerek onbellege yollanir ve ilgili veri bulunur getirilir ve daha sonra islemciye geri gonderilir En kotu durumda ise basvuru reference siraduzendeki bu uc yapida da yani ADO sayfa tablosu ve onbellekte bulunamaz MIPS R2000 Adres Donusturme OnBellegi ADO DECStation3100 Adres Donusturme Onbellegi ADO ve onbelleginde cache gerceklestirilen okuma yazma isleminin adimlari DECStation 3100 de kullanilan MIPS R2000 her ne kadar basit bir uygulamaya sahip olsa da ozyapisi gunumuz adres donusturme belleklerininkine cok benzerdir Bellek sistemi 4 KB sayfalar ve 32 bitlik adres uzayina sahiptir Dolayisiyla sanal sayfa numaralari 20 bit uzunluktadir Sanal adres ile gercek adres ayni boyutlara sahiptir Adres donusturme onbellegi ADO 64 kayit tutabilir ve tam eslemelidir ADO buyruk ve veri basvurulari tarafindan paylasilir Her kayit 64 bit genisligindedir ve 20 bitlik etikete sahiptir ki bu etiket kaydin ADO de tutulan sanal sayfa numarasidir Sanal sayfa numarasina karsilik gelen gercek sayfa numarasi da 20 bit uzunlugundadir ve gecerli bit kirli bit gibi sayman bitlerine yer verir Bir ADO sayma bulamama durumu meydana geldiginde MIPS donanimi basvurunun sayfa numarasini ozel bir yazmaca kaydeder vekural disi durum exception uretir Kural disi durum isletim sistemini uyararak sorunun yazilim katmaninda halledilmesini saglar Bulunamayan sayfanin gercek adresini bulmak icin ADO sayfa tablosunu sanal adres numarasi ve yururlukte olan sayfa tablosunun baslangic adresini tutan yazmac yardimiyla dizinler Bir takim buyruk kumesi ile adres donusturme onbellegi guncellenir Isletim sistemi sayfa tablosundaki eslenen gercek adresleri adres donusturme onbellegine yerlestirir Eger gecersiz bir gercek adresle karsilasilmissa hata olusur Bir ADO de sayfa bulamama durumu en az 10 ortalama olarak da 16 cevrimlik bir gecikmeye neden olur Donanim degistirilmek sayfa icin bir onerme dizini tutar ve bu dizinden rastgele bir kayit secilir ADO de koruma protection saglanmasi icin yazma erisiminin denetimini saglayan bir bit mevcuttur Bu ozellik salt okunur sayfalarin uzerine yazmayi engeller boyle bir istekle karsilasildiginda da bir hata uretir Cagdas Islemcilerde Karmasik Bellek SistemleriSanal Bellek Tasariminda Temel SorunlarSanal bellek tasariminda goz onunde bulundurulmasi gereken temel noktalar Ikincil bellekten ana bellege aktarilacak olan bilgi obeklerinin boyutunun belirlenmesi Ana bellekteki tum sayfalar kullanimdayken sayfa hatasi olusmasi durumunda isletim sisteminin bir sayfayi degistirmek takas yapmak uzere secmesi yontemi Bellegin hangi bolgesinin yeni sayfayi tutacaginin belirlenmesi konumlandirma yontemi Istek uzerine yukleme yontemiTarihceSanal bellegin gelistirilmesinden onceki donemlerde 1940 ve 50 ler buyukce izlenceler program iki seviyeli saklamayi gerceklestirebilmek icin ustyazim overlaying yontemleri gibi mantiksal cikarimlara ihtiyac duymaktaydi Izlenceler ust ek sayfalari overlay birincil ve ikincil bellek arasinda tasimakla gorevliydi Sanal bellegi bilisim dunyasina tanitmanin temel gerekcesi birincil bellegi genisletmek degil bu genislemeleri yazilimcilar tarafindan kolay kullanilabilir hale getirmekti Bircok sistem sanal bellek kullanimindan once de bellegin birden cok izlence arasinda paylasimini saglayabilecek yetenege sahipti PDP 10 un ilk modellerinde gorulen taban ve sinir yazmaclarini base and bounds registers bu duruma ornek olarak gosterebiliriz Bu yontem her bir uygulamaya 0 dan baslayan ozel bir adres uzayi ve bunun yaninda adresin bellekte uygulama icin ayrilan kisminda olup olmadigini denetleyen bir sinir yazmacinin kullanimini icerir Eger yazmac adresin ilgili kisma ait oldugunu onaylarsa karsilik gelen taban yazmaci icerigini de ana bellekteki adresi gostermek uzere isleme dahil eder Bu sanal bellek kullanilmadan bolumlere ayirmanin segmentation basit bir bicimidir Fritz Rudolf Guntsch 1992 Sanal bellek 1952 1962 yillari arasinda Manchester Universitesi nde Atlas Bilgisayar icin gelistirilmis ve 1962 yilinda tamamlanmistir Ancak Almanya nin oncu bilgisayar bilimcilerinden ve Telefunken TR440 anabilgisayarinin gelistiricisi olan Fritz Rudolf Guntsch sanal bellek kavramini 1957 yilinda doktora tezinde Logischer Entwurf eines digitalen Rechengerates mit mehreren asynchron laufenden Trommeln und automatischem Schnellspeicherbetrieb Sayisal coklu zamanuyumsuz tambura bazi tip makineli tufeklerde ve tepkisiz toplarda icerisine mermi konulan silindir seklindeki sarjor saklama ve ozdevimli hizli bellek bicimli bilgisayar duzeni mantik kavrami Logic Concept of a Digital Computing Device with Multiple Asynchronous Drum Storage and Automatic Fast Memory Mode kendisinin yarattigini iddia etmistir 1961 de Burroughs sanal bellege sahip ilk ticari bilgisayari olan B5000 i piyasaya surdu Sistem sayfalama paging yerine bolumlere ayirma segmentation kullanmaktaydi Bilgisayar bilimi tarihindeki bircok teknoloji gibi sanal bellegin benimsenmesi de bircok gucluklerle karsilasti Anabilgisayarlarin isletim sistemlerinde uygulanmasindan once karsilasilan bircok sorunla bas etmek icin cesitli modeller deneyler ve kuramlarin gelistirilmesi gerekti Devingen adres donusumleri ozellestirilmis pahali ve kurulumu zor donanimi ve bellege erisimi kismen yavaslatmasi en buyuk sorunlariydi Ayrica tum sistemi kapsayan uygulama ve algoritmalarin ikincil bellegi kullanmasindaki etkinligi dusurecegine dair endiseler bulunmaktaydi 1969 a gelindiginde sanal bellegin ticari bilgisayarlarda kullanimina dair tartismalar da sona ermisti David Sayre nin liderligindeki bir IBM arastirma grubu sanal bellegin diger sistemlerden cok daha iyi calistigini ortaya koydu Sanal bellegi tanitan ilk minibilgisayar minicomputer Norvec uretimi NORD 1 oldu 1970 ler boyunca VAX modelleri basta olmak uzere baska minibilgisayarlar da sanal bellegi uygulamaya koydu Sanal bellek X86 mimarisine Intel in I286 80286 islemcisinin guvenli bicimi protected mode ile tanitildi Onceleri bolum takasi segment swapping ile gerceklestirildi ancak buyuk bolumlerde segment sorun yaratiyordu Intel 80386 mevcut bolmelere ayirma katmaninin altinda isleyen sayfalama paging yontemini tanitti Artik sayfa hatasi page fault diger kural disi durumlarla exception birlikte degerlendirilebilmekteydi KaynakcaJohn L Hennessy David A Patterson Computer Architecture A Quantitative Approach ISBN 1 55860 724 2 Operational Characteristics for the Processors for Burroughs http www multicians org multics vm html18 Ocak 2010 tarihinde Wayback Machine sitesinde The Multics Virtual Memory Concepts and DesignDis baglantilarbelgeler org sanal bellek17 Ekim 2007 tarihinde Wayback Machine sitesinde