Mutex vs Semafor
Mutex, bir yeniden giriş kodunun birden fazla iş parçacığıyla paralel olarak yürütülemeyen bir bölümüne seri olarak erişim sağlamak için kullanılır. Muteks, kontrollü bölüme aynı anda yalnızca bir kodun erişebilmesini sağlar. Erişim elde etmek için, diğer kodlar ilk kod çıkana kadar beklenir. Bir odanın anahtarı gibi düşünebilirsiniz. Önce o anahtara erişen kişi önce gelir. Kişi geri dönünceye kadar bu odaya başka kimse erişemez.
Semafor, aynı anda birkaç kullanıcıya paylaşılan bir kaynağa erişim sağlar. Kaynağa erişen kullanıcı sayısı arttıkça semafor sayısı azalır. Kullanıcılar kaynağı serbest bırakmaya başladığında, semafor sayısı tekrar yükselmeye başlar. Senkronizasyon gerektiren uygulamalar tarafından kullanılır. Eşzamanlı kullanıcı sayısı semafor sınırına göre kısıtlanır. Bir semafor, tek bir odaya benzer kilitlere benzer anahtarlar bir grup olarak düşünülebilir, ancak bu anahtarların sayısı sınırlıdır. Bu anahtarlara sahip kişiler odayı paylaşabilir.
Muteks ve semafor arasındaki farklar:
1. Mutex karşılıklı dışlama için kullanılırken, semafor her iki olayda da faydasını bulur
bildirim ve karşılıklı hariç tutmalar.
2. Mutex ortak kaynaklara seri erişim sağlarken, semafor aşağıdakilere bir sınır koyar:
eşzamanlı erişim sayısı.
3. Semafor birden çok iş parçacığını yönetirken muteks her seferinde bir iş parçacığı ile çalışır
birlikte.
4. Mutex, muteksi kilitleyen sürecin sadece
yeniden açın. Diğer işlemlerin hiçbiri bunu yapamaz. Ama semafor söz konusu olduğunda,
kısıtlamalar mevcut değil.
5. Muteks bir kilitleme mekanizması, bir semafor ise bir sinyalleme mekanizmasıdır.
kaynağa erişimi senkronize etme.
Özet:
1. Anlamsal olarak ve teorik olarak, hem muteks hem de semafor aynıdır. Biri olabilir
diğerini kullanarak uygulanır, ancak pratik olarak ikisi de farklıdır.
2. Muteks, sayı değeri bire eşit olan bir semafordan başka bir şey değildir.
3. Muteks, mülkiyet ve öncelikli ters çevirme gibi ek özelliklere sahip bir semafordur
koruma.
4. Semafor, ortak bir kaynağa erişimi denetleyen soyut bir veri türüdür.
paralel programlama ortamında birden çok işlem.
5. Semaphore birçok işletim sisteminde kullanımını senkronizasyon ilkel olarak bulur.
6. Hem muteks hem de semafor, aşağıdakiler için kullanılan çekirdek kaynaklarıdır:
senkronizasyon.