Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Parallel Programming

No description
by

pelin karacan

on 27 December 2014

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Parallel Programming

Paralel Programlama
Kritik Alan
Her nesnenin,
gözlemci (monitor)
olarak isimlendirilen ve o nesne üzerinde hangi thread’in kontrol sahibi olacağını belirleyen bir kilit özelliği bulunur.Bu
“kilit” (lock)
aynı anda ancak bir thread tarafından açılabilir ve kilite erişim sıralı olarak gerçekleşir.
Senkronize (synchronized)
metodlar kilite sahip olmayı gerektirir ve çalışma öncesinde kilit alınmış olmalıdır.Senkronize metodlar kritik alanı (critical section) belirler.Kritik alanlar birbirlerini dışlayıcı türdedir (mutually exclusive - mutex). Yani bir nesne için aynı anda ancak bir kritik alan çalıştırılabilir.
Senkronizasyon Yöntemleri Ve Sorunları
Aynı nesne üzerinde işlem yapmak isteyen Thread’lerin birbiri ile işbirliği yapabilmesine imkan tanır. Bir nesneye ait kilitin (lock) wait ve notify işlemleri aracılığı ile işbirliği içinde kullanılması esasına dayanır.
**Wait() çağrısı
**Notify() metodu
Thread Methodlar
Threadin başlatılması, durdurulması, duraklatılması ve durduğu yerden devam etmesi gerekir çoğu zaman bu işlemler için gerekli fonksiyonlar şöyle;
1.Suspend();Bir işi “pause” ettiğimiz gibi durdurur.
2.Resume();Suspend metodu ile durdurulmuş işi kaldığı yerden devam ettirir.
3.Abort();Devam eden işlemi sonlandırır, bitirir. Abort ile sonlanmış işlem geri döndürülmez.
4.ThreadState;Bununla Threadin durumunu öğreniriz
5.IsAlive;Bununla threadin hala hayatta olup olmadığını öğreniriz.
6.Priority; Bununla threadimizin öncelik değerini öğrenir veya değiştirebiliriz.
7.Join : bir threadi sonlandırmak için programın içerisinde yaratılan başka bir threadin beklenmesi gerekebilir.Bu gibi durumlarda kullanılır.
8.sleep();Bu metodu kullanarak geçici olarak iş parçacıklarınız dondurabilirsiniz.Sleep aşamasında iş parçacığınız kesinlikle
CPU'yu meşgul etmemektedir.
Paralel Programlama nedir?
*Bir problemi çözmek için çok sayıdaki hesaplama kaynağını aynı anda kullanmaktır.
*Program çok sayıda CPU üzerinde çalışmaktadır.
*Problem eşzamanlı olarak çözülebilecek komutlara ayrılır.
*Her bir parça kümesi komutlara ayrılır.
*Her bir parçanın komutları aynı anda farklı CPU ‘lar üzerinde çalıştırılır.
Konsept ve Terminoloji
Flynn klasik taxonamy modelinin 4 önemli noktası var.
*Tek işlem tek data(sisd)
*Tek işlem çoklu data(simd)
*Çoklu işlem tek data(misd)
*Çoklu işlem çoklu data(mimd)
Thread Kullanmanın Faydaları
Thread nedir?
Thread kullanimi iki veya daha fazla is yaparken bir isin diger bir ise engel olmasinin önüne geçmek için kullanilir.
Thread çesitleri;
İki tip thread vardır:
· Kullanıcı tarafından oluşturulan thread’ler.Bir programda oluşturulan thread’ler program için ayrılan adres alanını kullanır, yani onun için işlemci tarafından ayrı bir adres alanı ayrılmaz.
· İşlemci tarafından oluşturulan thread’ler.
*Çoklu işlemci kullanımı
*Devamlılık sorunları
*Performans sorunları
*Program modellemede kolaylık
*Asenkron işlemlere uyum
Thread Kullanmanın riskleri
*Hata ayıklama islemleri daha zor, yapılan bir hata fark edilemeyebiliyor.
*Multithreading programlama yaparken programcıyı en fazla zorlayan
seylerin basında farklı threadler arasındaki veri alısverisi gelmektedir.
Deadlock
İki eylemin devam etmek için birbirinin bitmesini beklemesi ve sonuçta ikisinin de devam edememesi sorunu olarak ifade edilebilir.Bu durumda sözkonusu süreçler program sonlan(dırıl)ana kadar yanıt veremez duruma geleceklerdir.
Şimdi örneklere
geçelim... :)
Full transcript