Yazılım kilitlemesi, çok işlemcili sistemlerde ortaya çıkabilecek bir bilgisayar sorunudur. Bu kilitleme, bilgisayarın performansının çarpıcı şekilde düşmesine neden olabilir ve ek işlemci özelliğinin kullanılmasını önleyebilir. Modern çok işlemcili bilgisayarlarda, yazılım kilitlenme arızasını önlemek için özel işletim sistemi yazılımı kullanılmalıdır.
Yazılım kilitlenmesinin oluşumu ilk önce 1968'de IBM ™ bilim adamı Stuart Madnick tarafından tanımlanmıştır. Bilgisayar tarihinin bu ilk aşamasında, Madnick kişisel bilgisayarların önümüzdeki birkaç on yıl içinde daha küçük ve daha ucuz olacağını, ancak kabaca sınırlı kalmaya devam edeceğini öngördü. Aynı veri aktarım hızları. Bu tahminin çoğunlukla doğru olduğu ortaya çıktı ve bilgisayarların yararlı gücü çoğu zaman yalnızca ekstra işlemciler eklenerek arttırıldı.
Yazılım kilitlemesinin birincil nedeni başlı başına bir hata değil, bir özelliktir. Birbirine bağlı birkaç işlemciye sahip bir bilgisayarda, her biri aynı bilgiyi taşıyan birden fazla işlemciye sahip olmanın avantajı yoktur. Aslında, her biri tek bir veri kaynağını değiştirmeye çalışan farklı işlemciler orijinal kaydı bozabilir. Birden fazla birimin aynı bilgileri açmasını önlemek için, kalan işleme bileşenleri dosyadan “kilitli” iken yalnızca bir işlemciye erişime izin verilir.
Bu kilitleme yöntemi, az sayıda işlemciye sahip bilgisayarlar için etkilidir. Bununla birlikte, yaklaşım, çok çeşitli bağlantılı işlem birimleri bulunan cihazlarda bir sorun haline gelir. Yazılım kilitleme, bilgisayarlara birden fazla işlemci eklemenin ölçeklenebilirliğini ve etkinliğini ciddi şekilde sınırlar, çünkü verilerin depolama alanı ile işlemciler arasında ne kadar hızlı dağıtılabileceğinin sınırları vardır.
Bilgisayar da dahil hiçbir makine tamamen verimli değildir; bu doğal verimsizlik çok işlemcili bilgisayarlarda daha da artmaktadır. Örneğin on altı işlemciye sahip bir bilgisayar, işlemcilerinden her zaman boşta kalabilir, çünkü veriler gerektiği kadar hızlı dağıtılamaz. Bir noktada, bileşik verimsizliği, bir bilgisayardaki işlemci sayısını arttırmanın artık yararlı olmadığı anlamına geliyor. Bir sisteme bin işlemci eklemek yararsızdır, çünkü veri hızı sınırlıdır ve gereksiz işlemcilerin çoğu sabit yazılım kilitlenmesinde sıkışıp kalır.
Yazılım kilitlemesi, özellikle birden fazla işlemci için tasarlanmış bir işletim sistemi kullanılarak en aza indirilebilir. Özel yazılım bir veri kaynağını birçok farklı parçaya bölebilir ve bu kısımları işlemcilere dağıtabilir. Bu yaklaşım işlemcileri kilitleme ihtiyacını azaltır, çünkü her birim orijinal verilerin küçük bir bileşenini işleyebilir. Temel olarak, çok işlemcili yazılım her işlem biriminin daima bir görevi olmasını sağlar ve verilerin daha dağınık ve eşit dağılmış bir şekilde akmasını sağlar.


