C dilinde üç beş zımbırtı…
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. Devamını oku »
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: Devamını oku »
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. Devamını oku »
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. Devamını oku »
Bu yazı ziyaretçilerimden Oben Işık tarafından yazılmıştır. Oben Işık, İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği ikinci sınıfta okumaktadır. Katkıları için kendisine teşekkür eder, web sitesine bir an önce kavuşmasını dilerim.
Merhaba arkadaşlar, bir localhost yazısı ile daha karşınızdayım.
Sağolsun yazılımportal.com adresindeykenki sponsorumuz Turan İnanır’ın sitemin kapanacağını ve beni yüzüstü bırakacağını 10 gün kala haber vermesinden dolayı artık yazılarımı localhostta yazıp sizlerle paylaşıyorum, yani paylaşacağım.
Bu yazımda ağaç (tree) veri yapısını irdeleyeceğiz, hem de ne irdeleme!
Şunu en baştan söylemekte fayda var; bir çok veri yapısı zaten Standart Template Library (STL) de olan veri yapıları yani hazır olarak var fakat bizim amacımız bedava kullanmayı değil de işin mantığını öğretmek.
Mantığı öğrenmek sizin için çok önemli olacak çünkü belki ilerde başka bir veri yapısını da siz üreteceksiniz ve millet sizin hazır kütüphanenizi kullanacak, hoş olmaz mı?
Devamını oku »
Bu sene Algoritma ve Programlama dersi almamama rağmen hem birinci sınıflara yardımcı olsun, hem sitemin trafiği artsın
, hem de internetteki C kaynak kodu örnekleri artsın diye ödev çözümlerini arkadaşlardan toplayıp paylaşıyorum.
Şaka bir yana, kodunu paylaştığı için Özlem’e çok teşekkür ediyorum. Umuyorum burada paylaşılanlar birinin işine yarar. Devamını oku »
Bu sene Algoritma ve Programlama dersi almamama rağmen hem birinci sınıflara yardımcı olsun, hem sitemin trafiği artsın
, hem de internetteki C kaynak kodu örnekleri artsın diye ödev çözümlerini sağdan soldan toplayıp paylaşıyorum.
Şaka bir yana, kodunu paylaştığı için Özlem’e çok teşekkür ediyorum. Umuyorum burada paylaşılanlar birinin işine yarar… Devamını oku »
Bu yazıda ikili arama ağacının C dilinde nasıl kodlanabileceğine dair basit bir örnek göreceksiniz. Yazmış olduğum program ikili bir arama ağacı oluşturur. Daha sonra kullanıcıdan bir değer alarak, bu değer kadar rastgele sayı oluşturur ve bunları arama ağacına ekler. Ekleme tamamlandıktan sonra ağacı inorder (kök ortada) dolaşarak rastgele yaratıp ağaca eklediği tüm sayıları listeler.
Kullanıcı daha sonra ağaçta bu sayıları arayabilir. Eğer sayı bulunursa ve bulunan sayı yaprak düğümdeyse (leaf node) girdi silinir. Eğer yaprak düğümde değilse sadece ekrana sayının bulunduğunu belirten bir yazı yazdırılır. Devamını oku »