İşlemsel Bellek Nedir?

Yazılımda, işlemsel belleğin şeması, bir veritabanının kullandığı işlemlere çok benzeyen işlemleri kullanan çok iş parçacıklı programlama için bir eylem sürecidir. İki veya daha fazla iş parçacığı aynı verilere aynı anda erişmeye çalıştığında, programın sonucunun iş parçacığı erişim sırasına bağlı olduğu durumlarda birçok farklı istenmeyen durum ortaya çıkabilir. Genellikle, bir sipariş istenir ve çok iş parçacıklı olarak, kilitler, aynı anda yalnızca tek bir dişlinin belirli bir kaynağa erişebilmesini sağlamak için baskın ve en basit yoldur.

İşlemsel belleğe bu yaklaşım, çoklu okuyuculu kilitlerle ilgili birden fazla sorun içerir. Bir tür beklenmeyen hata meydana gelirse kilit kalıcı olabilir ve kilitler, kilitlenme veya öncelikli inversiyon gibi eşzamanlılık ile öngörülemeyen sorunlar doğurabilir. Kilitlerin çok ince taneli olmalarının bir sonucu olarak, başka bir konu da kodun nihayetinde kilitleme, bağlam değiştirme ve kilit açma arasında zamanın çoğunu harcayan kodu içerir. Bu çok önemli bir sorundur, çünkü kodun bu eylemler için programdaki diğer önemli işleri yapmaktan daha fazla zaman geçirmesine neden olabilir. Buna karşılık, kaba taneli kilitler işlem performansının düşmesine ve eşzamanlılığın azalmasına neden olabilir.

İşlemsel bellekteki problemler, C # 'dan "kilit bloğu", okuma-yazma kilitleri, yazma engelleri vb. Dahil olmak üzere gelişmiş kilitlerle giderilir. İşlemsel bellek ile ilgili temel önceliklerden biri kilitlerin olmaması ve gereksiz kilitleme işlem sürelerinin olmamasıdır. . Genelde, paylaşılan bir veri yapısının, faaliyetlerinin karşılıklı olarak dışlanması gerekmediğinde kilitsiz olduğu kabul edilir. Paylaşılan ve kilitsiz olan veri yapıları, aynı anda yüksek olan sistemlerdeyse, standart kilitleme teknikleriyle sıkça ilişkilendirilen sorunları önler.

İşlemsel Bellek Tutarlılığı ve Tutarlılık (TCC) modeli, paylaşılan hafıza üzerinde önerilen yeni bir modeldir. Modele göre, atomik işlemler her zaman aşağıdakilerin temel birimleridir: paralel çalışma, hafıza tutarlılığı, iletişim ve hafıza referansının tutarlılığı. TCC modeli ayrıca standart kilitler veya semaforlar kullanan senkronizasyonu ortadan kaldırarak paralel yazılımı basitleştirir. Donanım aracılığıyla, TCC ayrıca, işlemi kalıcı olarak paylaşılan bir hafıza durumuna atomik olarak yayınlamak için işlemin gerçekleştiği her bölgeden gelen her yazıyı bir pakette birleştirir. Basitleştirilmiş tutarlılık donanımına ek olarak, bu, gereken düşük uyuşukluk mesajlarında bir azalma ve belirli, standart tutarlılık protokollerinin tamamen ortadan kaldırılması anlamına gelir.