Proses ile Thread Arasındaki Farklar ve İpliklerin (Thread) Avantajları

Yazar:

Daha önceki yazılarda bir prosesi ancak başka bir proses yaratabilir dedik ve bir prosesin fork() çağrısıyla başka bir prosesi yaratması sonucu bir program için birden çok proses paralel olarak çalışabilir dedik fakat; proses oluşturmak işletim sistemi için bazı sebeplerden dolayı çok maliyetli bir iştir. Bu sebeple bir programın birden çok işlem yapması gerekiyorsa eğer birden fazla proses üretmesi yerine Thread yani iplik kullanımının işletim sistemi açısından daha avantajlı olduğunu söylemiştik. Buraya kadar yazdığım ve belirttiğim herşeyin sebeplerini öğrenecez bu yazıda.

Bir program çalışırken ana prosesin yeni bir proses yaratması yerine bir iplik yaratması neden daha avantajlı. İplikler de prosesler gibi çalışırlar fakat hafif proseslerdir dedik. İplikler de prosesler gibi çalışıyorlarsa iplikler ile prosesler arasında farklar nelerdir? Bunlara değineceğiz.

İpliklerin Özellikleri ve Proses'ten Farkları

  • Thread'ler, proses içinde bulunurlar ve aynı adres uzayını paylaşırlar. Bir proses içerisinde birden fazla iş yürütebilirler.
  • İplikler prosesler gibi birbirlerinden bağımsız değildirler. Kendi aralarında kaynakları ve bazı verileri birbirleriyle paylaşırlar. 

Bakınız :

Yani kısacası; 
İşler birbirinden tamamen bağımsız ise : PROSES
İşler birbirine bağlı ve birlikte yürütülüyorsa : THREAD (İplik)  diyebiliriz.


İpliklerin Prosesler İle Olan Ortak Özellikleri:

  • Paralel çalışabilirleri etkileşebilirler ve haberleşebilirler.
  • Dış dünya ile haberleşebilirler.
  • Ardışıl işlemler yapılabilir.
  • İplikler de prosesler gibi bağlam(durum) değiştirebilirler. Hazır, Askıda, Çalışıyor durumlarda olabilirler.


İpliklerin Proseslere Göre Avantajları

  • Tek bir proses bile birden fazla işlem yapabilir. Böylece işlemcide daha az bağlam değiştirme olayı gerçekleşir. Sırada olan daha az proses olur ve bilgisayar işlemleri daha çabuk gerçekleştirebilir. Her işlemde proses kontrol bloğu yeniden güncellenmez. İşletim sistemi işlemleri gerçekleştirirken zaman kaybı yaşamaz.
  • Çok işlemcili sistemlerde faydalıdır. İpliklerin bazıları işlemciye yönelik işlemler yaparken bazıları giriş -çıkış işlemleri yapıyorsa yapılan iş için daha iyi performans elde edilir.
  • Proseslerin kaynakları vardır. İşletim sisteminde yer işgal ederler. Ne kadar çok proses olursa RAM'de o kadar çok yer işgal edilir. İpliklerin ise kaynakları yoktur. Mevcut prosesin sahip olduğu kaynağı kullanılar. Fazladan yer işgal etmezler. Yaratılmaları ve yok edilmeleri proseslere göre daha kolaydır.

Daha önceki yazımda şunu demiştim;
Bir programı birden çok prosesin çalıştırmasının avantajları ve dezavantajları vardır. Avantajı; bir programın çalışması için birden çok proses çalıştığı için o program kısa sürede işleme girebilir. Yani bir binayı birden çok işçinin inşa etmesi gibi fakat; bunun şöyle bir dezavantajı var. Ne kadar çok proses olursa, bilgisayarın RAM'inde o kadar yer işgal edilecektir ve CPU bir program için birden fazla proses işleyeceği için bu bilgisayarı daha çok yoracaktır. Kısacası bellek tahsisi, bağlam değiştirme veya anahtarlanma işlemleri sırasında yüklenmeleri işletim sistemi açısından daha maliyetli olur.

İplik denen olay işte tam da burada devreye giriyor. Yani tam olarak demek istediğim şey şudur. İşletim sisteminde bir iş için 3 ayrı prosesin çalışması yerine, tek bir prosesin çalışıp içinde 3 iplik bulundurması ile aynı işlemler  gerçekleştirilebilir. Proses işlemlerini işletim sistemleri CPU'da işlerken, yukarıda da saydığımız bazı sebeplerden dolayı (bağlam değiştirme olayı vs. ) maliyetli olması sebebiyle, işletim sisteminde bir iş yaparken çok fazla proses kullanmak yerine daha az proses ve daha çok iplik kullanmak, daha çok tercih edilir.

Özetle, aynı örnek üzeriden konuşacak olursam. Tek proses ve bu proses içinde 3 iplik barındırarak çalışan bir program, 3 farklı proses ile çalışan programa göre, işletim sistemi açısından çoğu zaman avantajlıdır. Bu sebeple bir işlem için çok fazla proses kullanmak yerine, tek proses kullanıp ve tek prosesin içinde iş bölümü yapacak olan birden çok iplik yaratıp kullanmak daha mantıklıdır.





Hey!

Blogkafem'de okuduğunuz içeriklerle ilgili kişisel Twitter hesabım üzerinden benimle iletişme geçmek isterseniz Twitter adresim : www.twitter.com/aliarslan10

Sosyal medya hesabım dışında Blogkafem'de okumuş olduğun içerik ile ilgili belirtmek istediklerinizi aşağıdaki yorum formuna yazabilirsin. En kısa sürede dönüş yapacağımdan emin olabilirsin. :)

Okuduğunuz içerik faydalı olduysa #blogkafem etiketiyle okuduğunuz içeriğin linkini Twitter'da paylaşarak Blogkafem'e destek olabilirsiniz.

3 yorum:

  1. mantığı çok güzel anlatmışsınız

    YanıtlaSil
  2. teşekkürler güzel anlatım

    YanıtlaSil
  3. İŞletim sistemi vizesi için mükemmel oldu.Güzel anlatım için teşekkürler

    YanıtlaSil
Yorum Sayfası :



Yorum yaparken dikkat edilmesi gerekenler;

1. Yorum Formunu doldurduktan sonra Profil Seç -> ADI/URL bölümünden isminizi yazıp yorum yaparsanız size karşı bir hitap şeklimiz olur. (URL kısmını boş bırakabilirsiniz.)

2. Anonim olarak yaptığınız yorumlar "Adsız" olarak gözükmektedir.

3. Türkçe yazım ve dilbilgisi kurallarına uymaya özen gösteriniz.

4. Küfür,hakaret,mail adresi veya konu ile ilgisi olmayan reklam amaçlı website adresi içeren yorumlar yayınlanmamaktadır.

Custom Search

Kafemizde En Son Kim, Ne Demiş?

Kafeyi Dikizleyenler :)

Blog Istatistik

BLOGKAFEM.NET

© Copyright 2008-2016
Sitedeki yazıların her hakkı BLOGKAFEM.NET sitesine aittir.
Kopyalanması halinde lütfen kaynak gösteriniz.
DMCA.com Protection Status
Anasayfa | Hakkımızda | Bizden | Reklam | İletişim