Bellek sayfalama - Memory paging

Olarak bilgisayar işletim sistemleri , disk belleği a, bellek yönetim düzeni hangi bir bilgisayar depolar ve alır veriler ikincil depolama kullanım için ana bellek . Bu şemada, işletim sistemi, ikincil depolamadan verileri, sayfalar adı verilen aynı boyuttaki bloklarda alır . Sayfalama, programların kullanılabilir fiziksel belleğin boyutunu aşmasına izin vermek için ikincil depolamayı kullanan modern işletim sistemlerinde sanal bellek uygulamalarının önemli bir parçasıdır .

Basit olması açısından, ana belleğe "RAM" ( rastgele erişimli belleğin kısaltması ) ve ikincil belleğe "disk" ( sabit disk sürücüsü , tambur belleği veya yarıiletken sürücü vb. Bilgisayarın birçok yönü, kavramlar kullanılan teknolojiden bağımsızdır.

Tarih

Ferranti , Atlas'ta sayfalamayı tanıttı , ancak ilk toplu pazar bellek sayfaları, bir sayfanın RAM ve disk arasında hareket edip etmediğine bakılmaksızın bilgisayar mimarisindeki kavramlardı. Örneğin, PDP-8'de talimat bitlerinin 7'si , 128 (2 7 ) kelimeden birini seçen bir hafıza adresi içeriyordu . Bu bellek bölgesine sayfa adı verildi . Terimin bu kullanımı artık nadirdir. 1960'larda takas, erken bir sanal bellek tekniğiydi. Bütün bir program "takas" (veya "silindir dışarı") diske RAM ve bir tane olacak olacaktır takas (ya da haddelenmiş ). Değiştirilen bir program geçerli olur, ancak RAM'i başka bir program tarafından kullanılırken yürütmesi askıya alınır.

Bir program , aynı belleği farklı zamanlarda işgal eden birden çok bindirme içerebilir . Bindirmeler, RAM'i diske çağırma yöntemi değil, yalnızca programın RAM kullanımını en aza indirme yöntemidir. Daha sonraki mimariler , bellek bölümlendirmesini kullandı ve bireysel program bölümleri, disk ve RAM arasında değiş tokuş edilen birimler haline geldi. Bir segment, programın tüm kod segmenti veya veri segmenti veya bazen diğer büyük veri yapılarıydı. Bu segmentler , RAM'de yerleşik olduklarında bitişik olmak zorundaydı ve parçalanmayı düzeltmek için ek hesaplama ve hareket gerektiriyordu .

Sayfa tablosunun icadı , işlemcinin, görünüşte bitişik bir mantıksal adres alanı olarak RAM'in herhangi bir yerindeki rastgele sayfalarda çalışmasına izin verdi . Bu sayfalar, disk ve RAM arasında değiş tokuş edilen birimler haline geldi.

Sayfa hataları

Bir işlem RAM'de mevcut olmayan bir sayfaya başvurmaya çalıştığında, işlemci bu geçersiz bellek referansını bir sayfa hatası olarak değerlendirir ve kontrolü programdan işletim sistemine aktarır. İşletim sistemi şunları sağlamalıdır:

  1. Diskteki verilerin konumunu belirleyin.
  2. Veriler için bir kapsayıcı olarak kullanmak üzere RAM'de boş bir sayfa çerçevesi edinin .
  3. İstenen verileri mevcut sayfa çerçevesine yükleyin.
  4. Yeni sayfa çerçevesine başvurmak için sayfa tablosunu güncelleyin .
  5. Sayfa hatasına neden olan talimatı şeffaf bir şekilde yeniden deneyerek kontrolü programa geri verin .

Tüm sayfa çerçeveleri kullanımdayken, işletim sistemi, programın şimdi ihtiyaç duyduğu sayfa için yeniden kullanmak üzere bir sayfa çerçevesi seçmelidir. Çıkartılan sayfa çerçevesi, verileri tutmak için bir program tarafından dinamik olarak tahsis edilmişse veya bir program tarafından RAM'e okunduğundan beri değiştirilmişse (başka bir deyişle, "kirli" hale gelmişse), oluşturulmadan önce diske yazılmalıdır. serbest bırakıldı. Bir program daha sonra çıkarılan sayfaya başvurursa, başka bir sayfa hatası oluşur ve sayfanın tekrar RAM'e okunması gerekir.

İşletim sisteminin yeniden kullanılacak sayfa çerçevesini seçmek için kullandığı sayfa değiştirme algoritması olan yöntem , verimlilik açısından önemlidir. İşletim sistemi, genellikle en az kullanılan (LRU) algoritma veya programın çalışma kümesine dayalı bir algoritma aracılığıyla, yakında ihtiyaç duyulması en olası olan sayfa çerçevesini tahmin eder . Yanıt verebilirliği daha da artırmak için, çağrı sistemleri, bir program onlara başvurmadan önce bunları önceden RAM'e yükleyerek, hangi sayfaların yakında gerekli olacağını tahmin edebilir.

Sayfa değiştirme teknikleri

talep sayfalama
Saf talep sayfalama kullanıldığında, sayfalar yalnızca referans verildiğinde yüklenir. Bellek eşlemeli bir dosyadan bir program, sayfalarından hiçbiri RAM'de olmadan yürütülmeye başlar. Program sayfa hataları yaptığında, işletim sistemi gerekli sayfaları bir dosyadan, örneğin bellek eşlemeli dosya , disk belleği dosyası veya sayfa verilerini içeren bir takas bölümünden RAM'e kopyalar .

Öngörülü sayfalama
Bazen takas ön getirme olarak da adlandırılan bu teknik, gelecekteki sayfa hatalarını en aza indirmek için hangi sayfalara yakında başvurulacağını tahmin eder. Örneğin, bir sayfa hatasına hizmet etmek için bir sayfayı okuduktan sonra, işletim sistemi henüz gerekmese de sonraki birkaç sayfayı da okuyabilir (referans yerini kullanan bir tahmin ). Bir program sona ererse, kullanıcının aynı programı tekrar çalıştırması durumunda işletim sistemi sayfalarını boşaltmayı geciktirebilir.
Ücretsiz sayfa kuyruğu, çalma ve geri alma
Ücretsiz sayfa kuyruğu, atama için kullanılabilen sayfa çerçevelerinin bir listesidir. Bu kuyruğun boş olmasını önlemek, bir sayfa hatasına hizmet vermek için gereken hesaplamayı en aza indirir. Bazı işletim sistemleri periyodik olarak yakın zamanda başvurulmamış sayfaları arar ve ardından sayfa çerçevesini serbest bırakır ve "sayfa çalma" olarak bilinen bir işlem olan boş sayfa kuyruğuna ekler. Bazı işletim sistemleri sayfa düzeltmeyi destekler ; bir program çalınan bir sayfaya atıfta bulunarak bir sayfa hatası yaparsa, işletim sistemi bunu algılar ve içeriği tekrar RAM'e okumak zorunda kalmadan sayfa çerçevesini geri yükler.
Ön temizleme
İşletim sistemi, kirli sayfaları periyodik olarak önceden temizleyebilir: daha fazla değiştirilmiş olsalar bile, değiştirilmiş sayfaları diske geri yazın. Bu, yeni bir program başlatıldığında veya yeni bir veri dosyası açıldığında yeni sayfa çerçeveleri elde etmek için gereken temizleme miktarını en aza indirir ve yanıt vermeyi artırır. (Unix işletim sistemleri, tüm kirli sayfaları önceden temizlemek için düzenli aralıklarla senkronizasyonu kullanır; Windows işletim sistemleri "değiştirilmiş sayfa yazıcısı" dizilerini kullanır.)

hırpalama

Başlatmayı tamamladıktan sonra, çoğu program, programın gerektirdiği toplam belleğe kıyasla az sayıda kod ve veri sayfasında çalışır. En sık erişilen sayfalara çalışma kümesi denir .

Çalışma seti, sistemin toplam sayfa sayısının küçük bir yüzdesi olduğunda, sanal bellek sistemleri en verimli şekilde çalışır ve sayfa hatalarını çözmek için önemsiz miktarda bilgi işlem harcanır. Çalışma grubu büyüdükçe, büyüme kritik bir noktaya ulaşana kadar sayfa hatalarının çözülmesi yönetilebilir kalır. Ardından hatalar çarpıcı biçimde artar ve bunları çözmek için harcanan zaman, programın yapmak üzere yazıldığı hesaplama için harcanan zamandan daha fazla olur. Bu duruma thrashing denir . Devasa veri yapılarıyla çalışan bir programda Thrashing meydana gelir, çünkü geniş çalışma grubu, sistemi büyük ölçüde yavaşlatan sürekli sayfa hatalarına neden olur. Sayfa hatalarının karşılanması, yakında diskten yeniden okunması gerekecek olan sayfaların serbest bırakılmasını gerektirebilir. "Thrashing", sanal bellek sistemleri dışındaki bağlamlarda da kullanılır; örneğin, bilgi işlemdeki önbellek sorunlarını veya ağ oluşturmadaki aptal pencere sendromunu tanımlamak için .

VAX işlemcilerde en kötü durum meydana gelebilir . Bir sayfa sınırını geçen tek bir MOVL, işlenen adresini içeren uzun kelimenin bir sayfa sınırını geçtiği yer değiştirme ertelenmiş adresleme modunu kullanan bir kaynak işlenene ve işlenen adresini içeren uzun kelimenin kesiştiği yerde yer değiştirme ertelenmiş adresleme modunu kullanan bir hedef işlenene sahip olabilir. bir sayfa sınırı ve kaynak ve hedefin her ikisi de sayfa sınırlarını aşabilir. Bu tek talimat on sayfaya atıfta bulunur; hepsi RAM'de değilse, her biri bir sayfa hatasına neden olur. Her hata meydana geldiğinde, işletim sisteminin kapsamlı bellek yönetimi rutinlerinden geçmesi gerekir, belki de diğer işlem sayfalarının diske yazılması ve etkin işlemin sayfalarının diskten okunması dahil olmak üzere birden fazla G/Ç'ye neden olabilir. İşletim sistemi bu programa on sayfa ayıramazsa, sayfa hatasının giderilmesi talimatın ihtiyaç duyduğu başka bir sayfayı atacak ve talimatın yeniden başlatılması yeniden hata verecektir.

Aşırı sayfalamayı azaltmak ve thrashing sorunlarını çözmek için, kullanıcı aynı anda daha az program çalıştırarak veya bilgisayardaki RAM miktarını artırarak program başına kullanılabilen sayfa sayısını artırabilir.

Paylaşım

Gelen çoklu programlama veya içinde çok kullanıcılı bir ortamda, birçok kullanıcı bu yüzden onun kod ve veri ayrı sayfalarda olduklarını yazılı aynı programı, yürütebilir. RAM kullanımını en aza indirmek için tüm kullanıcılar programın tek bir kopyasını paylaşır. Her işlemin sayfa tablosu , kodu adresleyen sayfalar paylaşılan tek kopyayı, verileri adresleyen sayfalar ise her işlem için farklı fiziksel sayfaları gösterecek şekilde ayarlanır.

Farklı programlar da aynı kitaplıkları kullanabilir. Yer kazanmak için, paylaşılan kitaplığın yalnızca bir kopyası fiziksel belleğe yüklenir. Aynı kitaplığı kullanan programların, aynı sayfalarla eşleşen (kütüphanenin kodunu ve verilerini içeren) sanal adresleri vardır. Programlar kitaplığın kodunu değiştirmek istediklerinde , yazma üzerine kopyalama kullanırlar , bu nedenle bellek yalnızca gerektiğinde tahsis edilir.

Paylaşılan bellek, programlar arasında etkili bir iletişim yoludur. Programlar bellekteki sayfaları paylaşabilir ve ardından veri alışverişi yapmak için yazabilir ve okuyabilir.

Uygulamalar

Ferranti Atlası

Destek çağrı için ilk bilgisayar süper oldu Atlas ortaklaşa geliştirdiği, Ferranti , Manchester Üniversitesi ve Plessey makinesi birleşmeli (vardı 1963 yılında içerik-adreslenebilir her 512 kelime sayfa için bir girişle) bellek. Süpervizör, eşdeğer olmayan kesintileri ele aldı ve programlara tek seviyeli bir depolama sağlamak için maça ve tambur arasındaki sayfa transferini yönetti.

Microsoft Windows

Windows 3.x ve Windows 9x

Disk belleği, 1990'daki Windows 3.0'dan bu yana Microsoft Windows'un bir özelliğidir . Windows 3.x, takas dosyası olarak kullanılmak üzere veya adlı gizli bir dosya oluşturur . Genellikle kök dizinde bulunur , ancak başka bir yerde (genellikle WINDOWS dizininde) görünebilir. Boyutu, sistemin ne kadar takas alanına sahip olduğuna bağlıdır (kullanıcı tarafından Denetim Masası → Gelişmiş altında "Sanal Bellek" altında seçilen bir ayar ). Kullanıcı bu dosyayı taşır veya silerse, Windows bir sonraki başlatılışında "Kalıcı takas dosyası bozuk" hata mesajıyla birlikte mavi bir ekran görünür . Kullanıcıdan dosyayı silip silmemeyi seçmesi istenecektir (var olup olmadığı). 386SPART.PARWIN386.SWP

Windows 95 , Windows 98 ve Windows Me benzer bir dosya kullanır ve bunun ayarları Denetim Masası → Sistem → Performans sekmesi → Sanal Bellek altında bulunur. Windows otomatik olarak sayfa dosyasının boyutunu fiziksel belleğin 1,5× boyutundan başlayacak ve gerekirse 3× fiziksel belleğe kadar genişletecek şekilde ayarlar. Bir kullanıcı, düşük fiziksel belleğe sahip bir sistemde bellek yoğun uygulamalar çalıştırıyorsa, bu boyutların varsayılandan daha yüksek bir değere manuel olarak ayarlanması tercih edilir.

Windows NT

Windows NT ailesinde sayfalama için kullanılan dosya pagefile.sys. Sayfa dosyasının varsayılan konumu, Windows'un kurulu olduğu bölümün kök dizinindedir. Windows, sayfa dosyaları için herhangi bir kullanılabilir sürücüde boş alan kullanacak şekilde yapılandırılabilir. Ancak, sistem bir Mavi Ölüm Ekranından sonra çekirdek veya tam bellek dökümleri yazacak şekilde yapılandırılmışsa, önyükleme bölümünün (yani Windows dizinini içeren sürücü) üzerinde bir sayfa dosyası olması gerekir . Windows, disk belleği dosyasını bellek dökümü için geçici depolama alanı olarak kullanır. Sistem yeniden başlatıldığında, Windows bellek dökümünü sayfa dosyasından ayrı bir dosyaya kopyalar ve sayfa dosyasında kullanılan alanı boşaltır.

parçalanma

Windows'un varsayılan yapılandırmasında, sayfa dosyasının gerektiğinde ilk tahsisinin ötesine genişlemesine izin verilir. Bu kademeli olarak gerçekleşirse, büyük ölçüde parçalanabilir ve bu da potansiyel olarak performans sorunlarına neden olabilir. Bundan kaçınmak için verilen genel tavsiye, Windows'un genişletmemesi için tek bir "kilitli" sayfa dosya boyutu ayarlamaktır. Ancak, sayfa dosyası yalnızca doldurulduğunda genişler; bu, varsayılan yapılandırmasında toplam fiziksel bellek miktarının %150'sidir. Bu nedenle, sayfa dosyası destekli sanal belleğe yönelik toplam talep, sayfa dosyası genişlemeden önce bilgisayarın fiziksel belleğinin %250'sini aşmalıdır.

Genişlediğinde oluşan sayfa dosyasının parçalanması geçicidir. Genişletilmiş bölgeler artık kullanılmadığı anda (daha erken değilse bir sonraki yeniden başlatmada) ek disk alanı tahsisleri serbest bırakılır ve sayfa dosyası orijinal durumuna geri döner.

Bir Windows uygulaması, toplam fiziksel bellek boyutundan ve sayfa dosyasından daha fazla bellek isterse, uygulamaların ve sistem işlemlerinin başarısız olmasına neden olabilecek bellek ayırma istekleri başarısız olursa, bir sayfa dosyası boyutunu kilitleme sorunlu olabilir. Ayrıca, sayfa dosyası nadiren sırayla okunur veya yazılır, bu nedenle tamamen sıralı bir sayfa dosyasına sahip olmanın performans avantajı minimumdur. Ancak, büyük bir sayfa dosyası genellikle daha fazla disk alanı kullanmanın yanı sıra herhangi bir ceza olmaksızın bellek ağırlıklı uygulamaların kullanımına izin verir. Parçalanmış bir sayfa dosyası kendi başına bir sorun olmasa da, değişken boyutlu bir sayfa dosyasının parçalanması zamanla sürücüde birkaç parçalanmış blok oluşturarak diğer dosyaların parçalanmasına neden olur. Bu nedenle, ayrılan boyutun tüm uygulamaların ihtiyaçlarını karşılayacak kadar büyük olması koşuluyla, sabit boyutlu bir bitişik sayfa dosyası daha iyidir.

Gerekli disk alanı, daha yeni özelliklere sahip sistemlerde kolaylıkla tahsis edilebilir (yani, 750 GB disk sürücüsünde 6 GB sabit boyutlu sayfa dosyasına sahip 3 GB belleğe sahip bir sistem veya 6 GB belleğe ve 16 GB belleğe sahip bir sistem). GB sabit boyutlu sayfa dosyası ve 2 TB disk alanı). Her iki örnekte de, sistem maksimum değerine önceden genişletilmiş sayfa dosyası ile disk alanının yaklaşık %0,8'ini kullanır.

Birleştirme sayfası dosyasını da bazen Windows sistem kronik toplam fiziksel bellek çok daha fazla bellek kullanırken performansı artırmak için önerilir. Bu görünüm, genişlemenin geçici sonuçlarının yanı sıra, sayfa dosyasının zamanla parçalanmadığı gerçeğini yok sayar. Genel olarak, sayfa dosyası erişimiyle ilgili performans sorunları, daha fazla fiziksel bellek eklenerek çok daha etkili bir şekilde ele alınır.

Unix ve Unix benzeri sistemler

Unix sistemleri ve diğer Unix benzeri işletim sistemleri, hem bellek sayfalarını RAM ve disk arasında taşıma işlemini hem de sayfaların depolandığı disk bölgesini tanımlamak için "takas" terimini kullanır. Bu sistemlerin bazılarında, bir sabit diskin tüm bölümünün takasa ayrılması yaygındır. Bu bölümlere takas bölümleri denir . Çoğu sistemde, veri sürücüsünden/sürücülerinden ayrı olarak, yalnızca bir takas bölümü içeren, takasa ayrılmış tüm bir sabit sürücü bulunur. Değiştirmeye ayrılmış bir sabit sürücüye "takas sürücüsü" veya "çalışma diski" veya "çalışma diski " denir . Bu sistemlerden bazıları yalnızca takas bölümüne geçişi destekler; diğerleri de dosyalara geçişi destekler.

Linux

Linux çekirdeği, neredeyse sınırsız sayıda takas arka ucunu (cihazlar veya dosyalar) destekler ve ayrıca arka uç önceliklerinin atanmasını da destekler. Çekirdek, sayfaları fiziksel bellekten değiştirdiğinde, kullanılabilir boş alana sahip en yüksek öncelikli arka ucu kullanır. Birden çok takas arka ucuna aynı önceliğe atanmışsa, bunlar her seferinde bir deneme tarzında kullanılır (biraz RAID 0 depolama düzenlerine benzer ), temel aygıtlara paralel olarak verimli bir şekilde erişilebildiği sürece gelişmiş performans sağlar.

Dosyaları ve bölümleri değiştirin

Son kullanıcı açısından bakıldığında, Linux çekirdeğinin 2.6.x ve sonraki sürümlerindeki takas dosyaları neredeyse takas bölümleri kadar hızlıdır; sınırlama, takas dosyalarının temeldeki dosya sistemlerine bitişik olarak tahsis edilmesi gerektiğidir. Takas dosyalarının performansını artırmak için çekirdek, temel aygıtlarda nereye yerleştirildiklerini gösteren bir harita tutar ve bunlara doğrudan erişir, böylece önbelleği atlar ve dosya sistemi ek yükünü ortadan kaldırır. Ne olursa olsun, Red Hat , takas bölümlerinin kullanılmasını önerir. Döner manyetik ortam aygıtları olan HDD'lerde bulunurken, takas bölümleri kullanmanın bir yararı, bunları daha yüksek veri çıkışı veya daha hızlı arama süresi sağlayan bitişik HDD alanlarına yerleştirme yeteneğidir. Ancak, takas dosyalarının idari esnekliği, takas bölümlerinin belirli avantajlarından daha ağır basabilir. Örneğin, bir takas dosyası herhangi bir bağlı dosya sistemine yerleştirilebilir, istenen herhangi bir boyuta ayarlanabilir ve gerektiğinde eklenebilir veya değiştirilebilir. Takas bölümleri o kadar esnek değildir; çeşitli karmaşıklıklar ve olası kesinti süreleri getiren bölümleme veya hacim yönetimi araçları kullanılmadan genişletilemezler .

değiş tokuş

Değiştirilebilirlik , boş bellekten bir bellek ayırma isteği karşılanamadığında, sayfaların sistem sayfası önbelleğinden çıkarılmasının aksine , çalışma zamanı belleğinin değiştirilmesine verilen göreli ağırlığı kontrol eden bir Linux çekirdeği parametresidir . Takas, 0 ile 200 (dahil) arasında değerlere ayarlanabilir. Düşük bir değer, çekirdeğin sayfaları sayfa önbelleğinden çıkarmayı tercih etmesine neden olurken, daha yüksek bir değer, çekirdeğin "soğuk" bellek sayfalarını değiştirmeyi tercih etmesine neden olur. Varsayılan değer olduğunu ; daha yükseğe ayarlamak, soğuk sayfaların tekrar değiştirilmesi gerektiğinde (örneğin, boşta olan bir programla etkileşime girerken) yüksek gecikmeye neden olabilirken, daha düşük bir değere ayarlamak (0 bile) dosyalardan çıkarıldığında yüksek gecikmeye neden olabilir. önbelleğin yeniden okunması gerekir, ancak soğuk sayfaları değiştirmeye daha az ihtiyaç duyacakları için etkileşimli programları daha duyarlı hale getirecektir. Değiştirme, HDD'leri daha da yavaşlatabilir çünkü çok sayıda rastgele yazma işlemi içerirken SSD'lerde bu sorun yoktur. Elbette varsayılan değerler çoğu iş yükünde iyi çalışır, ancak beklenen herhangi bir görev için masaüstü bilgisayarlar ve etkileşimli sistemler, toplu işleme sırasında ayarı düşürmek isteyebilir ve daha az etkileşimli sistemler bunu artırmak isteyebilir. 60

ölümü takas et

Sistem belleği mevcut görevler için son derece yetersiz olduğunda ve bellek etkinliğinin büyük bir kısmı yavaş bir takastan geçtiğinde, CPU boşta olsa bile sistem herhangi bir görevi yürütemez hale gelebilir. Her işlem takasta beklerken, sistem takas ölümünde kabul edilir .

Yanlış yapılandırılmış bellek fazlalığı nedeniyle takas ölümü gerçekleşebilir .

"Ölüm için takas" sorununun orijinal açıklaması X sunucusuyla ilgilidir . X sunucusu tarafından bir tuş vuruşuna yanıt vermek için kullanılan kod veya veriler ana bellekte değilse, kullanıcı bir tuşa basarsa, sunucu bir veya daha fazla sayfa hatası alır ve tuş vuruşu gerçekleştirilmeden önce bu sayfaların takastan okunmasını gerektirir. işlenir, buna yanıtı yavaşlatır. Bu sayfalar bellekte kalmazsa, bir sonraki tuş vuruşunu işlemek için yeniden hataya düşmeleri gerekir, bu da sistemin diğer görevleri normal şekilde yürütüyor olsa bile pratik olarak yanıt vermemesine neden olur.

Mac os işletim sistemi

macOS , birden çok takas dosyası kullanır. Varsayılan (ve Apple tarafından önerilen) yükleme, bunları kök bölüme yerleştirir, ancak bunun yerine ayrı bir bölüme veya aygıta yerleştirmek mümkündür.

AmigaOS 4

AmigaOS 4.0 , RAM tahsis etmek ve fiziksel belleği birleştirmek için yeni bir sistem tanıttı. Hala birleştirilemeyen düz paylaşılan adres alanı kullanır. Döşeme tahsis yöntemine ve takasa izin veren sayfalama belleğine dayanmaktadır . Sayfalama, AmigaOS 4.1'de uygulandı, ancak tüm fiziksel bellek kullanılırsa sistemi kilitleyebilir. Takas belleği, kullanıcının yalnızca fiziksel RAM kullanmayı seçmesine izin vererek her an etkinleştirilebilir ve devre dışı bırakılabilir.

Verim

Bir sanal bellek işletim sistemi için yedekleme deposu tipik olarak çok olan büyüklüklerdir daha yavaş RAM . Ek olarak, mekanik depolama aygıtlarının kullanılması , bir sabit disk için birkaç milisaniyelik bir gecikme sağlar . Bu nedenle, pratik olduğu durumlarda takasın azaltılması veya ortadan kaldırılması arzu edilir. Bazı işletim sistemleri, çekirdeğin kararlarını etkilemek için ayarlar sunar.

  • Linux, sayfaları sistem sayfası önbelleğinden çıkarmak yerine, çalışma zamanı belleğinin değiştirilmesi arasındaki dengeyi değiştiren parametreyi sunar ./proc/sys/vm/swappiness
  • Windows 2000, XP ve Vista DisablePagingExecutive, çekirdek modu kodunun ve verilerin sayfalama için uygun olup olmadığını denetleyen kayıt defteri ayarını sunar .
  • Ana bilgisayar bilgisayarları, arama süresini ortadan kaldırmak için sayfa ve takas depolaması için sık sık kafa başına disk sürücüleri veya tamburlar kullandı ve dönme gecikmesini azaltmak için aynı cihaza birden çok eşzamanlı istekte bulunmak için çeşitli teknolojiler kullandı .
  • Flash belleğin sonlu sayıda silme-yazma döngüsü vardır ( flash belleğin sınırlamalarına bakın ) ve bir kerede silinebilecek en küçük veri miktarı çok büyük olabilir (Intel X25-M SSD için 128 KiB), nadiren çakışır. sayfa boyutu. Bu nedenle, flash bellek, sıkı bellek koşullarında takas alanı olarak kullanılırsa hızla yıpranabilir. Çekici tarafı, flash bellek, sabit disklere kıyasla pratik olarak gecikmesizdir ve RAM yongaları kadar uçucu değildir . ReadyBoost ve Intel Turbo Memory gibi şemalar bu özelliklerden yararlanmak için yapılmıştır.

Unix benzeri birçok işletim sistemi (örneğin AIX , Linux ve Solaris ) performansı artırmak için takas alanı için paralel olarak birden çok depolama aygıtının kullanılmasına izin verir.

Alan boyutunu değiştir

Bazı eski sanal bellek işletim sistemlerinde, programlar çalışma zamanı verileri için bellek ayırdığında takas yedekleme deposundaki alan ayrılır. İşletim sistemi satıcıları genellikle ne kadar takas alanı tahsis edilmesi gerektiğine ilişkin yönergeler yayınlar.

32 bit donanımda adresleme sınırları

Sayfalama, işlemin "sanal adres alanı" veya "mantıksal adres alanı" olan bir işlem tarafından kullanılan adreslerin boyutunun, belirli bir bilgisayarda gerçekten yüklü olan ana bellek miktarından farklı olmasına izin vermenin bir yoludur. fiziksel adres alanı.

Sanal bellekten daha küçük ana bellek

Çoğu sistemde, bir işlemin sanal adres alanının boyutu, kullanılabilir ana bellekten çok daha büyüktür. Örneğin:

  • Adres yolu ana belleğe CPU bağlayan sınırlı olabilir. İ386SX CPU 16 MB yüklü fiziksel bellek sınırlama, 'ın 32-bit dahili adresler 4 GB ele alabilir, ancak adres yoluna bağlanır sadece 24 pin vardır. Takılabilecek maksimum RAM miktarında başka donanım kısıtlamaları olabilir.
  • Maksimum bellek, maliyet nedeniyle, modelin standart yapılandırmasında bulunmadığından veya alıcı bunun avantajlı olacağına inanmadığından takılmamış olabilir.
  • Donanım mimarisi G/Ç veya diğer özellikler için büyük bölgeler ayırabileceğinden, bazen tüm dahili adresler zaten bellek için kullanılamaz.

Ana bellek, sanal bellekle aynı boyutta

Gerçek n- bit adreslemeli bir bilgisayarda 2 n adreslenebilir RAM birimi kurulu olabilir. Bir örnek, 4 GB'lık ve Fiziksel Adres Uzantısı (PAE) olmayan 32 bit x86 işlemcidir  . Bu durumda, işlemci yüklü olan tüm RAM'leri adresleyebilir ve daha fazlasını değil.

Ancak bu durumda bile sayfalama, 4 GB'ın üzerinde bir sanal bellek oluşturmak için kullanılabilir. Örneğin, birçok program aynı anda çalışıyor olabilir. Birlikte 4 GB'den fazlasına ihtiyaç duyabilirler, ancak hepsinin aynı anda RAM'de olması gerekmez. Bir çağrı sistemi, hangi belleğin ikincil depolamaya devredileceği konusunda etkin kararlar vererek kurulu RAM'in en iyi şekilde kullanılmasını sağlar.

Bu örnekteki işlemci 4 GB'ın üzerindeki RAM'i adresleyemese de, işletim sistemi, kurulu RAM'in sınırlarını aşabilen dosyalar gibi daha büyük bir bellek öngören programlara hizmetler sağlayabilir. İşletim sistemi, gerektiğinde dosyanın bölümlerini RAM'e getirmek için sayfalamayı kullanarak bir programın dosyadaki verileri keyfi olarak değiştirmesine izin verir.

Sanal adres alanından daha büyük ana bellek

Magic-1, bazı PDP-11 makineleri ve Fiziksel Adres Uzantısı ile 32-bit x86 işlemci kullanan bazı sistemler gibi birkaç bilgisayarın bir işlemin sanal adres alanından daha büyük bir ana belleği vardır . Bu, sayfalamanın önemli bir avantajını geçersiz kılar, çünkü tek bir işlem, sanal adres alanı miktarından daha fazla ana bellek kullanamaz. Bu tür sistemler genellikle ikincil faydalar elde etmek için çağrı tekniklerini kullanır:

  • "Ekstra bellek", sık kullanılan dosyaları ve dizin bilgileri gibi meta verileri ikincil depolamadan önbelleğe almak için sayfa önbelleğinde kullanılabilir.
  • İşlemci ve işletim sistemi birden çok sanal adres alanını destekliyorsa, daha fazla işlemi çalıştırmak için "ekstra bellek" kullanılabilir. Sayfalama, sanal adres alanlarının kümülatif toplamının fiziksel ana belleği aşmasına izin verir.
  • Bir işlem, verileri tmpfs dosya sistemi veya bir RAM sürücüsündeki dosya sistemleri gibi bellek destekli dosya sistemlerindeki bellek eşlemeli dosyalarda depolayabilir ve gerektiğinde dosyaları adres alanının içine ve dışına eşleyebilir.
  • Bir dizi işlem, sayfa tabanlı izolasyonun çoklu görev ortamına getirebileceği gelişmiş güvenlik özelliklerine bağlı olabilir.

Sanal adres alanlarının kümülatif toplamının boyutu, mevcut ikincil depolama miktarıyla sınırlıdır.

Ayrıca bakınız

Notlar

Referanslar

Dış bağlantılar