Sayfalar

19 Şubat 2012 Pazar

C ile Multithreading Örneği

Geçen dönem İşletim Sistemleri dersinin en heyecanlı lab dersi Thread konusundakiydi. Bir programın yapacağı işi parçalara bölmek ve her parçayı ayrı ayrı thread’lere paralel olarak yaptırma fikri gerçekten herkesin ilgisini çekmişti.

Labda yaptığımız örnek ise Silberschatz’ın kitabındaki matris çarpma projesi oldu. Labdan kısaca bahsedeyim: A ve B matrisini çarpıp C matrisi elde ediyoruz. Yalnız bu çarpma işlemini yaparken C’nin her bir elemanını ayrı ayrı thread’lerde hesaplıyoruz. Örneğin, A 3x2 bir matris ve B 2x3 bir matris olsun, çarpma sonucu oluşan C matrisi bu durumda 3x3 olur ve C matrisini oluşturmak için toplam 9 thread kullanılırız. Umarım anlatabilmişimdir.

Labın kodlama kısmı şöyle:


Şimdi ise nasıl derleyip çalıştırdığımıza ve çıktısına bakalım.

ozan@pardus2011 Labs $ gcc thread_project2.c -o thread_project2.o -pthread
ozan@pardus2011 Labs $ ./thread_project2.o  
28      23      18
41      34      27
54      45      36

Görüşmek üzere.

3 yorum:

  1. Bilgi için teşekkürler, devamı gelecek mi?

    YanıtlaSil
    Yanıtlar
    1. Fırsat buldukça ve aklıma yazacak şeyler geldikçe devamı da gelecektir diye umuyorum.

      Sil
  2. Watch online movies for free, sharp image quality, fast movie download speed, do not wait long to watch movies. We always updating new movies to bring you the most interesting and attractive action, thriller, drama, horror, romance movies. Play now:
    fandango
    vexmovies

    YanıtlaSil