Evet arkadaşlar, şimdi sahip olduğumuz semafor türlerinin neler olduğunu tartışalım.
Dolayısıyla semaforlar genel olarak isimsiz semaforlar ve isimli semaforlar olmak üzere iki kategoride sınıflandırılabilir.
Şimdiye kadar, bu derste sadece isimsiz semaforlarla ilgilendik ve isimsiz semaforlar iş parçacıklarının
senkronizasyonu için kullanılabileceği gibi ilgili süreçlerin senkronizasyonu için de kullanılabilir.
Şimdi ilgili süreçler nelerdir?
İlgili süreçler fork sistem çağrısı kullanılarak oluşturulan süreçlerdir?
Çatal sistem çağrısı.
Doğru.
Diyelim ki bir P bir süreciniz var ve eğer P bir süreci fork sistem çağrısını çağırırsa, o zaman P iki adında yeni
bir çocuk süreç yaratır, değil mi?
Yani burada P bir ve P iki birbiriyle ilişkili süreçlerdir.
Dolayısıyla, isimsiz semaforlar, iş parçacıkları arasında ve semafor olarak adlandırılan ilgili işlemler arasında senkronizasyon
gerçekleştirmek için kullanılabilir.
Öte yandan, kendisiyle ilişkilendirilmiş isimsiz semaforlar vardır.
Şimdiye kadar normal bir veri yapısı olarak bir semafor oluşturduk.
Ancak adlandırılmış semaforlar söz konusu olduğunda, bir semafor oluşturacağımız zaman, bu semafora belirli bir
isim verecektik, tıpkı sizin ve benim adlandırılmış bir ismimiz olduğu gibi Semaforlar da semaforun sistemde benzersiz
bir şekilde tanımlanabileceği isimlere sahip olacaktı Adlandırılmış semaforlar neredeyse her şeyi senkronize
etmek için kullanılabilir.
Yani, aynı sürecin iş parçacıklarını senkronize etmek için kullanılabilirler.
İlgili süreçleri senkronize etmek için kullanılabilecekleri gibi makine üzerinde çalışan herhangi iki süreci senkronize
etmek için de kullanılabilirler.
Doğru.
Adlandırılmış semaforlar, her şeyi senkronize etmek için kullanılabilmelerine rağmen, özellikle ilgisiz süreçlerin senkronizasyonu
için kullanılır.
Ancak aynı makine üzerinde çalışan iki farklı sürecin senkronizasyonu söz konusu olduğunda, Semafor
adından başka seçeneğimiz yoktur.
Bu nedenle, bu kursun SQL bölümünde iki süreç arasında senkronizasyon gerçekleştirmek için Semafor
adının nasıl kullanılabileceğini tartışacaktık.
Yani kapsam diyagramı, iş parçacıklarının senkronizasyonu için kullanılan mutex ve koşul değişkenine sahip olduğumuzu
söylüyor.
Bunun da ötesinde, iş parçacıkları arasında ve ilgisiz süreçler, pardon, ilgili süreçler arasında
senkronizasyon gerçekleştirmek için kullanılabilen isimsiz semaforlarımız vardır.
Ve son olarak, herhangi iki varlık arasında senkronizasyon gerçekleştirmek için kullanılabilen semaforları
adlandırdık.
Bu iki varlık süreç veya ilgili süreçler olabileceği gibi iş parçacıkları da olabilir.
Değil mi?
Bu nedenle, adlandırılmış semaforlar neredeyse her şeyi yapabilir ve adlandırılmamış semaforlar yalnızca
ilgili süreçler ve iş parçacıklarıyla sınırlıyken, muteks ve koşul değişkenleri yalnızca aynı sürecin iş parçacıklarının senkronizasyonu
ile ilgilidir.
Bu yüzden bu kursun SQL bölümünde adlandırılmış semaforları ve nasıl çalıştıklarını tartışacağız.
Bu kursta mı?
Adlandırılmış semaforlarla ilgili herhangi bir tartışma kapsam dışındadır.