Umut Benzer

Umut Benzer

Software Engineer, MSc. in Berlin

Ana SayfaKategoriler

UBenzer’den Alın!

Ablam evdeki kullanılmayanları ayırmış, “Umut bunları sat.” dedi. Hazır elime almışken, evde kendi kullanmadıklarımı da ayırdım, hepsinin fotoğrafını çektim, verdim ilanlarını…

Gitti Gidiyor'da UBenzer Gitti Gidiyor'da UBenzer  

Şu an hepsi GittiGidiyor’da! Birisi satıldı bile! Kaldı geriye 10 ürün.

Ürünler arasında ne yok ki! C kitabından kalorifere, ana kucağından kondisyon bisikletine kadar çok geniş yelpazede satış yapıyorum maşallah. 😄

Kullanmadığımız her şey!

Bence bir göz atın, ilginizi çeken bir şey olursa, alın! 😄 Ürünler için oraya ne yazdıysam doğrudur, bende yalan olmaz. 😃

Gitti Gidiyor Sayfama Işınlanmak İçin Tıklayın!

C’de ve POSIX ile Multithreading

Bu sene Doç. Dr. Aylin Kantarcı hocamızın verdiği İşletim Sistemleri 2 dersinde, süreç (process) ve iş parçacıklarının (thread) neler olduklarını ve nasıl işlediklerini ayrıntılı bir şekilde öğrendik. Bize verilen ikinci ödevde, iki matrisin çarpma işleminin her satırını bir iş parçacığına yaptıracağımız bir program istendi.

Ödevde, yaratılan bir thread çalışmaya başlamadan önce diğer tüm threadlerin yaratılmasını beklemeliydi. Biz de bu ödevi POSIX kütüphanesi ile hayata geçirdik.

POSIX: Linuxgiller. Onun için aşağıdaki kod Windows’ta çalışmaz.

Kaynak kodlarında mutex kullanımına örnek bulabilirsiniz. Kaynak kodlarını, ödev metnini ve ödev raporunu aşağıdan indirebilirsiniz. Kaynak kodu indirmek istemezseniz yazının devamına göz atabilirsiniz.

Dipnot: Kaynak kodları eğitim amaçlı olup, acemisi olduğum bir konu üzerinde yazılmış olduğundan bu kodları geliştirip Max Payne 3 yazarsanız ve yazdığınız oyun çökerse beni suçlayıp topuğuma sıkamayacağınızı bilmenizi isterim.

undefined reference to pthread_create

Linux’te program yazıyordunuz ve POSIX ile çok iş parçacıklı (multithreading) bir program yazmaya karar verdiniz.

Thread yaratmak için pthread_create kullandınız ve derleyici bu komutu inatla tanımıyor. “undefined reference to pthread_create” diyor.

Linux ödevini yaparken başıma gelmişti, sizin de gelebilir.

Muhtemelen libpthread kütüphanesini derleyiciye bağlamayı unuttunuz. Bu kütüphaneyi derleyiciye göstermek için derlerken kullandığınız komuta -lpthread parametresini de eklemelisiniz. Code::Blocks gibi görsel bir ortam kullanıyorsanız bu yapılandırmayı derleyici ayarlarından yapabilirsiniz:

C’de Processler ve vfork()

Bu sene Doç. Dr. Aylin Kantarcı hocamızın verdiği İşletim Sistemleri 2 dersinde, süreçleri (processler) ve nasıl işlediklerini ayrıntılı bir şekilde öğrendik.

Bize verilen ödevde, iki matrisin çarpma işleminin her satırını bir sürece yaptıracağımız bir program istendi. Ödevin daha sonra değiştirilen ve kontrolü iptal edilen ilk sürümünde, henüz IPC’leri görmediğimizden süreçler arası bilgi aktarımını süreçleri aynı adres sahasında farklı program counterlar ile çalıştırarak sağlamıştık. (vfork)

Zaten sonra IPC’lere dönüştürmek 15 dakikamı ya aldı ya almadı.

Vfork bir linux sistem çağrısıdır. (system call) Onun için aşağıdaki kod Windows’ta çalışmaz.

Kaynak kodlarını, örnek girdi dosyasını ve ödev metnini aşağıdan indirebilirsiniz. Kaynak kodunu indirmek istemezseniz yazının devamına göz atabilirsiniz.

C’de Processler ve IPC

Bu sene Doç. Dr. Aylin Kantarcı hocamızın verdiği İşletim Sistemleri 2 dersinde, süreçleri (process) ve nasıl işlediklerini ayrıntılı bir şekilde öğrendik. Üzerinde durduğumuz konulardan bir tanesi Inter Process Communication (Süreçler Arası İletişim) idi.

Bize verilen ödevde, iki matrisin çarpma işleminin her satırını bir sürece yaptıracağımız bir program istendi. Bu processler birbirleri ile bir IPC yöntemi olan pipeler ile iletişecekti.

Biz de bu ödevi POSIX arayüzünü kullanan işletim sistemlerine yönelik sistem çağrılarını kullanarak hayata geçirdik.

POSIX: Linuxgiller. Onun için aşağıdaki kod Windows’ta çalışmaz.

Kaynak kodlarını, ödev metnini ve ödev raporunu aşağıdan indirebilirsiniz. Kaynak kodu indirmek istemezseniz yazının devamına göz atabilirsiniz.