Mutex ve Semafor Arasındaki Fark

Anonim

Muteks ve Semafor

erişim sağlayabilen tek kişi, anahtarı tutan bir kişidir. Anahtarı tutan, bir ipliğe benzeyen bir kişi, odaya erişebilen tek kişidir. Erişime sahip olan kişi, sırayla sıradaki bir kişiye anahtarı bırakmak zorunda kalacaktır. Bu nedenle, bir muteks ancak onu alan iş parçacığı tarafından serbest bırakılabilir.

Bir mutex normalde birden fazla iş parçacığı tarafından bir defada yürütülmesi mümkün olmayan bir tür kodun "" tekrar giren bir kodunun bir bölümüne erişimini seri hale getirmek için kullanılır. Bir bölüme yalnızca tek bir iplik konmasına izin verilir. Bu, sıradaki diğer iş parçacıklarını bekletmeye zorlar. Bir ipliğe erişmeden önce, iplikten kesilinceye kadar beklemesi gerekecektir.

Mutex'te aynı benzetmeyi kullanan semaforlar, benzer kilitlerle aynı sayıda odaya erişebilen benzer anahtarların sayısıdır. Bir semafor veya bir semafor sayımı değeri, odaya giren veya odadan çıkılan kişi sayısına bağlıdır. Eğer 5 oda varsa ve hepsi işgal edilmişse, semafor sayısı sıfırdır. İkisi odadan çıkarsa, sayım iki, sıradaki iki sonraki tuşa iki tuş verilir.

Bununla birlikte, semaforlar eşzamanlı olarak herhangi bir iş parçacığı veya işlemle işaretlenebilir ve senkronizasyon gerektiren uygulamalar için idealdir. Bununla birlikte, semaforlar, maksimum semafor sayısı temel alınarak ortak bir kaynağın eşzamanlı kullanıcı sayısını etkili bir şekilde sınırlamak için kullanılır.

Temel olarak, bir muteks, bir değerli bir semafor olarak düşünülebilir.

Semaforun azaltılması ve arttırılması, iş parçacıklarının ortak kaynağa erişim isteyip istemediğine veya bölümden ayrılmasına bağlıdır.

Teorik olarak muteks ve (ikili) semaforlar semantik olarak benzerdir. Mutex'in uygulanması semaforlar kullanılarak yapılabilir ve diğer yol budur. Bununla birlikte, pratik anlamda, biraz farklı olabilirler.

Mutekslerin karşılıklı dışlanma için uygulanması amaçlanmıştır ve ikili semaforların karşılıklı dışlama ve olay bildiriminde kullanılması amaçlanmıştır. Uygulama ve genel anlambilim açısından çok benzer olmalarına rağmen farklı kullanılırlar.

Özet:

1. Mutex, genelde, ortak bir kaynağa erişimi seri hale getirmek için kullanılırken, bir semafor eşzamanlı bir takım erişimlerdir.

2. Mutex, bir sayıyla bir semafor gibidir.

3. Mutex yalnızca tek bir iş parçacığının erişimine izin verirken, semaforlar eşzamanlı olarak herhangi bir iş parçacığı veya işlem tarafından bildirilebilir.

4. Semaforlar senkronizasyon için idealdir ve olay bildirimi ve karşılıklı dışlanma için sıklıkla kullanılırken, muteks sadece karşılıklı dışlama için uygulanır.