CCoW: İş Yüklerindeki Mekansal Yerelliği Göz önünde bulundurarak Yazma Üzerine Kopyalamayı Optimize Etme Bölüm 2

Apr 02, 2024

Sistemler büyük miktarda fiziksel belleği işleyebilecek kapasiteye sahip olduğundan küçük sayfa boyutu sorun yaratabilir. Hiyerarşik sayfa tablosu organizasyonuyla, her sanal adres çevirisi, her sayfa tablosu düzeyi için bir tane olmak üzere birden fazla bellek erişimi gerektirir ve bu kabul edilemez.

İnsanlar yaşlandıkça hafıza giderek zayıflar. Ancak fiziksel hafıza hafızamızı doğrudan etkileyen faktörlerden biri değildir. Bellek, beyindeki nöronlar arasındaki bağlantıların gücüyle, beynin sağlığıyla ve belleğin ne sıklıkla kullanıldığıyla ilgilidir.

Beynimizdeki nöronlar sinapslarla birbirine bağlanır. Bu sinapslar bizi bilgiyi depolamaya ve almaya teşvik eder. Ancak yaşlandıkça bu sinaptik bağlantılar azalarak hafızamızın bozulmasına neden olur. Bunun nedeni fiziksel hafızamızın azalması değil, beynimizin yeteneklerimizi etkileyen bazı değişiklikler geçirmesidir.

Ancak beynimizi kullanmak güzel anıları korumamıza yardımcı olabilir. Beynin de tıpkı vücut gibi egzersize ihtiyacı vardır; sağlıklı kalmak için boş zamanlara ve egzersize ihtiyacı vardır. İyi düşünme alışkanlıkları geliştirmek beyninizin sağlığına ve verimliliğine yardımcı olacaktır. Örneğin yeni şeyler öğrenmek, hafıza tekniklerini kullanmak, mantıksal bulmacalar oynamak vb. beyninizin kalitesini ve verimliliğini artırabilir.

Bu nedenle fiziksel hafıza, basitçe beynin kullanabileceği depolama kapasitesidir. Hafızamız, beynimizin başarabileceklerinin sınırlarıyla yakından bağlantılıdır. Beynimizi sürekli çalıştırarak hafızamızı daha dayanıklı hale getirebilir ve yüksek seviyede tutabiliriz. Belleği geliştirmek için, olumlu bir tutum ve iyi sağlık alışkanlıklarımızı sürdürürken beynimizi çalıştırmaya odaklanmalıyız. Belleği geliştirmemiz gerektiği görülebilir ve Cistanche Deserticola hafızayı önemli ölçüde geliştirebilir, çünkü Cistanche Deserticola'nın antioksidan, antiinflamatuar ve yaşlanma karşıtı etkileri vardır, bu da beyindeki oksidasyonu ve inflamatuar reaksiyonları azaltmaya yardımcı olabilir, böylece beyni korur. sinir sisteminin sağlığı. Ek olarak, Cistanche Deserticola sinir hücrelerinin büyümesini ve onarımını da teşvik edebilir, böylece sinir ağlarının bağlantısını ve işlevini geliştirebilir. Bu etkiler hafızayı, öğrenmeyi ve düşünme hızını artırmaya yardımcı olabilir ve ayrıca bilişsel işlev bozukluklarının ve nörodejeneratif hastalıkların gelişimini de önleyebilir.

increase brain power

Beyin fonksiyonunu iyileştirmenin yollarını bilin'e tıklayın

Sanaldan fiziksele adres çevirisinin yüksek yükünü hafifletmek amacıyla birçok modern mimari, adres çevirisi için bir önbellek içerir. MMU, birçok yeni çeviri sonucunu, TLB olarak da bilinen, çeviriye bakma arabelleği adı verilen bir donanım mantığında tutar.

Genellikle modern mimarilerin TLB'leri yaklaşık 500 ila 2000 giriş tutabilir [6,7]. Girişler donanım tarafından indekslenir, böylece işlemci çekirdeği çeviriyi çok hızlı bir şekilde arayabilir. Bellek referanslarının yerelliğinden yararlanılarak, birçok adres çevirisi sayfa tablosunda gezinmeden gerçekleştirilebilir (TLB isabeti olarak anılır).

Yoğun bellek kullanan uygulamaların bellek ayak izi hızla büyüdükçe, bir işlem için sanaldan fiziksele sayfa eşlemelerinin sayısı da artar. Ancak donanım sınırlamaları nedeniyle TLB girişlerinin sayısı, uygulama bellek ayak izlerinin hızlı büyümesine ayak uyduramaz. Böylece TLB kaçırma oranları artarak bellek yoğun uygulamaların performansında darboğazlara neden olur [8-11].

Bu sınırlamanın üstesinden gelmek için bazı mimariler, 4 KB temel sayfa boyutundan daha büyük ek sayfa boyutlarını destekler. Örneğin, modern Intel mimarileri 2 MB ve 1 GB sayfa boyutlarını destekler [7]. Bu kadar büyük bir sayfa boyutuyla, bir adres çevirisi daha geniş bir adres aralığını kapsayabilir ve TLB'nin aynı sayıda girişle sağlayabileceği kapsamı etkili bir şekilde artırır.

Örneğin, 1024 TLB girişi ve 4 KB temel sayfa boyutu olan bir sistem, 4 MB TLB kapsamı sağlayabilirken, 1 GB devasa sayfalara sahip aynı sayıda giriş, 1 TB kapsama alanı sağlar. Linux, devasa sayfayı şeffaf devasa sayfalar biçiminde kullanır. (THP'ler). Adından da anlaşılacağı gibi Linux, mümkün olduğunca kullanıcı işlemlerine örtülü olarak büyük sayfalar sağlar.

THP etkinleştirilmezse Linux, 4 KB'lık temel sayfa birimindeki işlemlere bellek ayırır. THP etkinleştirilirse Linux, temel sayfa yerine büyük bir sayfa (2 MB boyutunda) ayırmaya çalışır ve kaba taneli bir sayfa eşlemesine izin verir. Bu büyük ayrıntı düzeyi, çatal aracılığıyla ebeveyn ve alt süreçler arasında verimli sayfa paylaşımına olanak tanır. Şu anda büyük bir sayfa tahsisinin mümkün olmaması durumunda Linux, temel sayfa tahsisine geri döner. Linux, temel sayfaları bulmak ve bunları büyük sayfalarda birleştirmek için süreç adres alanlarını periyodik olarak tarar.

improve your memory

Eksikliklerini daha da maskelerken büyük sayfaları performans açısından tanıtmaya çalışan çalışmalar yapıldı. Ingens [12,13] kritik yolun dışında büyük sayfaların eş zamanlı olarak hazırlanmasını önermektedir.

Hawkeye [14], minimum sayıda büyük sayfa tanıtımlarıyla performansı en üst düzeye çıkarmak için bellek erişim modellerine dayalı, ince taneli, büyük bir sayfa tanıtım şeması sunar. Zhu ve diğerleri. [15] büyük sayfaların kullanım süreçlerini genelleştiriyor ve büyük sayfaların yaşam döngüsünü optimize ediyor. Parça ve ark. [16] büyük sayfalarda deliklere izin vererek büyük sayfalarda bellek yönetiminde esneklik sağlar.

Ancak devasa sayfa çift bıçaklı bir kılıçtır. Artan yönetim birimi boyutundan dolayı sayfa tahsisinde dahili parçalanma sorunu yaşanır. Tahsis edilen adres aralığı büyük sayfa boyutundan küçükse sayfanın geri kalanı kullanılamaz ve boşa harcanır. Bu sözde bellek şişkinliği, büyük sayfalara sahip sistemlerde bellek kullanımını önemli ölçüde azaltabilir [12-17].

Artan sayfa boyutu program performansını da olumsuz etkileyebilir. Modern işletim sistemleri, işlemler arasında verimli bellek paylaşımı için yazma üzerine kopyalama şemasını kapsamlı bir şekilde benimser. Ancak CoW yalnızca temel sayfa ayrıntı düzeyinde işlenir.

Böylece CoW'u büyük bir sayfada yönetmek için büyük sayfa temel sayfalara bölünür ve yalnızca hatalı sayfa kopyalanır. Büyük sayfaları bölmek oldukça fazla zaman alır ve bu da aralıklı olarak uzun sayfa hatalarının işlenmesine neden olur. Bu anlamda bazı uygulamalar, hatta yoğun bellek kullananlar bile, istikrarlı performans ve bellek kullanımı için büyük sayfaların kullanılmasını önermemektedir [4,18].

Genel olarak, süreç adres alanında, aralıktaki tüm sayfaların aynı izne ve özelliklere sahip olduğu adres alanı aralıkları vardır. Yönetim için, modern işletim sistemleri genellikle bu tür adres alanı aralıklarını temsil etmek üzere 'sanal bellek alanı (VMA)' kavramını benimser. Proses adres uzayındaki sayfaları kökenlerine göre sınıflandırabiliriz.

improving brain function

Bazı sayfalar, 'dosya destekli sayfalar' olarak adlandırılan ikincil depolama birimindeki bir yedekleme dosyasından yüklenebilir. Oysa bazı sayfalar herhangi bir destek verisi olmadan dinamik olarak doldurulur. Yığın ve yığın sayfaları bu durumda 'anonim sayfalar' olarak adlandırılır.

2.2. Çatal ve Yazıldığında Kopyala

Fork, yeni bir süreç oluşturmak için POSIX standart sistem çağrılarından biridir. Bir süreç fork sistem çağrısını çağırdığında, çağıran sürecin çocuğu olarak yeni bir süreç yaratılır.

Temelde işletim sistemi, arama sürecinin tüm adres alanını kopyalayarak alt süreci oluşturur. Bu, alt sürecin ana süreçle aynı verilerle başlaması gerektiği anlamına gelir.

Adres alanı çoğaltmasını verimli bir şekilde gerçekleştirmek için çoğu modern işletim sistemi, yazarken kopyala (CoW) tekniğini kullanır. Ana öğenin adres alanını kopyalamak için işletim sistemi her sayfayı kopyalamaz. Bunun yerine, alt sürecin sayfa tablosu ana sürecin sayfa tablosunun kopyalanmasıyla oluşturulur.

Bu, ebeveynin adres alanına etkili bir şekilde paylaşımlı eşleme yapar. Paylaşılan eşleme yapılırken, ilgili PTE'deki izin biti temizlenerek her sayfa için yazma izni bırakılır.

Eşlemeyi kopyaladıktan sonra hem ebeveyn hem de çocuk, paylaşılan sayfaları kendi sayfaları olarak okuyabilir. İşlemlerden biri bir sayfaya yazma erişimi sağladığında MMU, yazma izninin olmaması nedeniyle bir sayfa hatasını tetikler. Sayfa hatası işleyicisinde, işletim sistemi yeni bir sayfa tahsis eder, orijinal sayfayı kopyalar ve yazılı izinle hataya neden olan işlemin ilgili sayfa eşlemesini günceller.

Bu noktada ebeveyn ve çocuk aynı sanal adres üzerinde farklı verilere sahip olabilirler. Bu yazma üzerine kopyalama mekanizması, birçok sanal bellek özelliğinin gerçekleştirilmesinde temel anahtar mekanizma olarak yaygın şekilde kullanılmaktadır. Spesifik olarak, başlatılmamış yığın bölgelerinin okunması genellikle tamamı sıfırları içeren özel bir sayfa olan sıfır sayfasına paylaşılan eşlemeyle gerçekleştirilir.

Çekirdek aynı sayfa birleştirme (KSM), sistemdeki aynı sayfaların tekilleştirilmesi tekniğidir. İşletim sistemi, aynı verilere sahip sayfaları belirlemek için sistemdeki sayfaları tarar. Bu tür sayfalar bulunduğunda, işletim sistemi bir sayfa dışındaki tüm sayfaları geri alır ve kalan sayfayı paylaşmak için ilgili sayfa tablolarını günceller.

İşleme sırasında, sayfaya daha sonra yazma erişiminin tanımlanması ve kopyalanması için yazma izni kaldırılır. Yazma sırasında kopyalamanın yüksek verimliliği ile süreç oluşturma verimli hale gelir ve bazı veri yoğun uygulamalar, bir veri kopyası oluşturmak için bu avantajdan yararlanır. .

Popüler bellek içi anahtar/değer depolama hizmetlerinden biri olan Redis [4] böyle bir durumdur [19]. Redisis, yüksek verim ve düşük gecikme sağlamak için öncelikle verileri bellekte tutmak üzere tasarlanmıştır.

Ancak bazı uygulamalar depolanan verilerin kalıcılığını gerektirir ve bellek içi tasarımı bir çatalla yeniden tamamlar. Redis, gelen istekleri yalnızca bellek içi dizine ve veri yapılarına uygular ve periyodik olarak çatal sistem çağrısını çağırır. Bu, orijinal Redis işleminin kopyalanmış bellek içeriklerine sahip bir alt işlemi etkili bir şekilde oluşturur ve çağıran işlem (yani orijinal işlem), gelen istekleri işlemeye devam eder.

Alt süreç yürütmeyi yönlendirir; mevcut bellek içeriğini anlık görüntü olarak kullanarak, bellek içi veri yapılarını dosyalar halinde serileştirir, böylece bellek içi anlık görüntünün kalıcılığını sağlar. Anlık görüntüyü temizledikten sonra alt süreç sonlandırılır.

Orijinal süreç aynı şekilde bir anlık görüntü daha oluşturabilir ve bir sistem çökmesi durumunda Redis, son anlık görüntüyü okuyarak kurtarılabilir. Çatal, paha biçilmez bir sistem çağrısı olmasına rağmen, ek yükü eleştirilmiştir.

supplements to boost memory

Baumann ve ark. [20] çatalı analiz etmiş ve çatalın modern uygulamalarda performans düşüşüne neden olduğunu bulmuşlardır. Örneğin, modern uygulamalar daha karmaşık hale geldikçe, işletim sistemi, POSIX spesifikasyonuna uymak amacıyla çatal sistem çağrısını işlemeye başlamak için yaklaşık 25 özel durumu dikkate almalıdır. Çatal sistem çağrısının sorunlarını özetlediler ve çatal sistem çağrısının modern bilgisayar için sahip olması gereken özellikleri önerdiler.

Ayrıca çatalı değiştirmenin alternatif yollarını da sağlarlar. Zhao ve diğerleri. [19], mevcut sistemlerde çatal uygulamasının verimsiz olduğuna, çünkü büyük bellek alanına sahip uygulamaların sayfa tablosunu ayarlamanın uzun zaman gerektirdiğine dikkat çekti. Çözüm olarak, yazarken kopyala tekniğini genelleştirerek sayfa tablosunun normal sayfaların yanı sıra yazma sayfalarına da kopyalanmasını sağladılar.


For more information:1950477648nn@gmail.com

Bunları da sevebilirsiniz