C Programlama

C Programlama ile Posix Mutex

C Programlama ile Posix Mutex
Bugünkü makale Posix Mutex'in Linux Mint 20'de C programlama ile kullanımına odaklanacak. Ancak, ana örneğimize geçmeden önce, sizinle paylaşacağımız örnek senaryoyu kolayca anlayabilmeniz için birkaç terminolojiyi temizlemek istiyoruz. İşletim sistemlerinde iş parçacığı kavramı yaygın olarak kullanılmaktadır. Konular temelde farklı görevlerle yetkilendirilen alt süreçlerdir. Threadlerin çalışmasını anlamak için aşağıdaki örneği düşünebilirsiniz.

Diyelim ki işi w=x+1 ve y=z+2 olan w ve y değişkenlerinin toplamını hesaplamak olan bir ana iş parçacığı A var. x ve z değişkenlerinin değerleri kullanıcı tarafından getirilecektir. Bu senaryoda, B ve C olmak üzere iki iş parçacığı oluşturabiliriz. B iş parçacığının işi, kullanıcıdan x değişkeninin değerini almak, onu 1 arttırmak ve w değişkenine kaydetmek olacaktır. C iş parçacığının işi, kullanıcıdan z değişkeninin değerini almak, onu 2 artırmak ve ardından y değişkenine kaydetmek olacaktır. Son olarak, bu iş parçacıklarının her ikisi de bu sonuçları ana iş parçacığı A'ya aktaracak, bu da daha sonra toplamlarını hesaplayacak ve nihai sonucu gösterecek.

Bu senaryoda herhangi bir iş parçacığı oluşturmamış olsaydık, tüm görevler ana iş parçacığı A tarafından çok daha uzun sürede gerçekleştirilebilirdi. Bu sayede threadler gereksiz gecikmeler olmadan hesaplamalarınızı verimli bir şekilde gerçekleştirebilir. Bununla birlikte, “ırk durumu” olarak bilinen ipliklerin kullanımıyla ilgili çok büyük bir endişe var. Bu, iki iş parçacığının aynı verilere erişmeye ve bunları değiştirmeye çalıştığı ve dolayısıyla onu tutarsız bıraktığı bir durumdur. Bir programcı olarak amacımız, yarış koşullarından en zarif şekilde kaçınmak olmalıdır.

Yarış koşullarından kaçınmak için en yaygın olarak kullanılan çözüm Mutex'in kullanılmasıdır. Mutex, karşılıklı dışlama anlamına gelir ve temel olarak, aynı anda birden fazla kullanıcı tarafından kritik verilere erişimini ve değiştirilmesini engelleyen bir kilitleme mekanizması sağlar. Bu şekilde veri tutarlılığı sağlanır. Posix, temel olarak, bize iş parçacıklarının ve Mutex'in uygulanmasını çok daha kolay hale getiren farklı yerleşik işlevler sunan bir kitaplıktır. Aşağıdaki örnek ile Posix Mutex'in Linux Mint 20'de C programlama ile kullanımını öğrenmeye çalışacağız.

Linux Mint 20'de Posix Mutex'i C Programlama ile Kullanma Örneği

Linux Mint 20'de C programlama ile Posix Mutex kullanımında size yol göstermek için aşağıdaki üç adımı gerçekleştireceğiz.

Adım 1: Linux Mint 20'de C Programlama ile Posix Mutex Kullanımını Gösteren Bir Program Oluşturma

Her şeyden önce, bir oluşturacağız .cpp dosyası Linux Mint 20 sistemimizde. Basitçe Ana klasörümüze gideceğiz, boş bir belge oluşturacağız ve buna Mutex adını vereceğiz.tbp. bir kez bizim .cpp dosyası oluşturuldu, onu metin düzenleyici ile açacağız. Daha sonra aşağıdaki resimlerde görülen kodu sayfamıza yazacağız .cpp dosyası:

Yukarıdaki iki resimde gösterilen kod, iki farklı iş parçacığı oluşturdu. İlk iş parçacığı İş #1'e karşılık gelirken ikinci iş parçacığı İş 2'ye karşılık gelir. Daha sonra “Mutex Function” adında bir örnek fonksiyon oluşturduk. Bu fonksiyonda, ilk önce Mutex kilit değişkenini kilitliyoruz ve sadece iş parçacığı #1 İş #1'i bitirdiğinde kilidi açılacaktır. Benzer şekilde, Mutex kilit değişkeni, 2. İşi bitirene kadar 2. iş parçacığı tarafından tekrar kilitlenecektir. Bu “Mutex İşlevi”, “ana” işlev tarafından çağrılır.

Adım #2: Linux Mint 20'de C Programını Derlemek

kaydettikten sonra .cpp dosyası olarak, şimdi aşağıdaki komutla Linux Mint 20 terminali aracılığıyla derleyeceğiz:

$ gcc -o Mutex Mutex.cpp -pthread

Burada “-o” işaretinden sonra “Mutex” oluşturulacak nesne dosyasının adını ifade ederken, “Mutex”.cpp” orijinalin adıdır .cpp dosyası. Bu programı derlemek için “-pthread” bayrağı gereklidir, çünkü bu program “pthread” kitaplığı kullanılarak yazılmıştır. Bu bayrağı atlarsanız, programınız derlenmeyecek ve bazı hatalar verecektir. Başarılı derlememiz .cpp dosyası, aşağıdaki resimde gösterildiği gibi terminalde herhangi bir mesaj üretmeyecektir:

Adım #3: C Programını Linux Mint 20'de Çalıştırmak

“Mutex” isimli nesne dosyası oluşturulduktan sonra aşağıdaki komutu kullanarak onu çalıştırabiliriz:

$ ./Muteks

Mutex'imizin çıktısında.cpp programında, ilk İş 1'in başladığını fark edeceksiniz, bu, iş parçacığı 1'in Mutex kilidini aldığı anlamına gelir. Bundan sonra, İş 1 bir süre sonra tamamlanır. Ardından, 2. İş başlar, bu, 2. iş parçacığının Mutex kilidini aldığı anlamına gelir. Sadece 2. İş bittiğinde açılacaktır.

Sonuç

Bu makale, Posix Mutex'in Linux Mint 20'de C programlama ile kullanımına ilişkin derinlemesine bir açıklama sağlamıştır. Mutex, programlama sırasında sadece Posix veya pthread kitaplığını C kodumuza dahil ederek yarış koşullarından kaçınmak için çok etkili bir şekilde kullanılabilir. Bu yalnızca veri tutarlılığını sağlamakla kalmayacak, aynı zamanda işlemeyi çok daha verimli hale getirecektir.

Linux'ta Posix kitaplığını kullanmanın en iyi yanı, bunun için herhangi bir özel yazılım, paket veya derleyici kurmamıza bile gerek olmamasıdır. C kodu, Linux'ta herhangi bir varsayılan metin düzenleyicide yazılabilir ve varsayılan gcc veya g++ derleyicileriyle derlenebilir ve çalıştırılabilir. Bu, Posix Mutex'in Linux Mint 20'de C programlama ile kullanımında ek bir kolaylık ve rahatlık katmanı olduğunu kanıtlıyor.

Wesnoth 1 Savaşı.13.6 Geliştirme Yayınlandı
Wesnoth 1 Savaşı.13.Geçen ay yayınlanan 6. sürüm, 1. sürümdeki altıncı geliştirme sürümüdür.13.x serisi ve özellikle kullanıcı arayüzü için bir dizi i...
Ubuntu 14'te League Of Legends Nasıl Kurulur.04
League of Legends hayranıysanız, bu, League of Legends koşusunu test etmeniz için bir fırsattır. Linux kullanıcısıysanız LOL'nin PlayOnLinux'ta destek...
En son OpenRA Strateji Oyununu Ubuntu Linux'a yükleyin
OpenRA, klasik Command & Conquer: Red Alert gibi erken Westwood oyunlarını yeniden yaratan bir Libre/Free Gerçek Zamanlı Strateji oyun motorudur. Dağı...