Header Ads

İş Parçacıkları (Threads)



  Thread işletim sistemlerinde karşımıza sıkça çıkan bir terimdir. Bir yazılımda eş zamanlı olarak gerçekleşen birden fazla işin aynı anda yapılması için kullanılır. Proses oluşturmaya göre daha az kaynak ve zaman tüketir. Çekirdekler genellikle çoklu iş parçacığı olarak çalışırlar. İş parçacıkları uygulama altında çalışırlar.  Kullanıcı tarafından oluşturulan ve işlemci tarafından oluşturulan olmak üzere iki çeşit iş parçacığı vardır.
Faydaları:
  • Duyarlılık (Responsiveness)
  • Kaynak Paylaşımı
  • Tasarruf
  • Ölçeklenebilirlik
Kullanıcı Seviyeli İş Parçacıkları
  İş parçacığı yönetimi, kullanıcı seviyeli iş parçacığı kütüphaneleri ile yapılır. 3 adet temel iş parçacığı kütüphanesi vardır:
  • POSIX
  • Win32 iş parçacıkları
  • Java iş parçacıkları
Çekirdek İş Parçacıkları
  Çekirdek tarafından çalıştırılır.
Örnekler :
  • Windows XP/2000
  • Solaris
  • Linux
  • Tru64 UNIX
  • Mac OS X
Çoklu İş Parçacığı Modelleri
Çok-a-tek
  Birden fazla kullanıcı-seviyeli iş parçacığı, tek bir çekirdek iş parçacığı ile ilişkilendirilir. (Solaris Green iş parçacığı , GNU Portable iş parçacığı)


Bir-e-bir
  Her kullanıcı-seviyeli iş parçacığı, çekirdek iş parçacığı ile ilişkilendirilir.( Windows NT/XP/2000, Linux, Solaris 9 ve üstü)


Çok-a-çok
  Çok sayıda kullanıcı-seviyeli iş parçacığının, yine çok sayıda çekirdek iş parçacığı ile ilişkilendirilmesine izin verir.  İşletim sisteminin yeterli sayıda çekirdek iş parçacığı oluşturmasına izin verir.


İki-Seviyeli Model
  Bir kullanıcı-iş parçacığının, bir çekirdek iş parçacığına bağlı olmasına izin vermesi dışında Çok-a-Çok modeli ile benzerdir.  Örnekleri :IRIX, HP-UX,  Tru64 UNIX,  Solaris 8 ve önceki sürümler...

İş Parçacığı Kütüphaneleri
  İş parçacığı kütüphanesi programcılara API vasıtasıyla iş parçacıkları oluşturma ve bunları yönetme imkanı sağlar.
İki temel uygulama yöntemi:
  • Kütüphane tamamen kullanıcı tarafındadır.
  • Çekirdek taraflı kütüphane, işletim sistemi tarafından sağlanır.

Windows XP İş Parçacığı Veri Yapıları
Bir-e-bir model uygulanır.
 Her iş parçacığı şu özellikleri içerir :
- Bir iş parçacığı id’si
- Kaydedici seti
- Ayrı kullanıcı ve çekirdek yığınları
- Özel veri depolama alanları
- Kaydedici seti, yığınlar ve özel depolama alanı, iş parçacığının bağlamı olarak
bilinir.

Bir iş parçacığı, temel veri yapılarını içerir:
- ETHREAD (yürütücü iş parçacığı bloğu)
- KTHREAD (çekirdek iş parçacığı bloğu)
- TEB (iş parçacığı ortamı bloğu)



Linux İş Parçacığı
  Linux iş parçacığı yerine "görev" kelimesi kullanılır. İş parçacığı clone() sistem çağrısı ile yapılır. Clone() sayesinde child görevin, ebeveyn görevin adres alanını paylaşmasını sağlar.




Kaynaklar:
https://nurten.wordpress.com ,
Doç. Dr. Ahmet Zengin, SAÜ Bilgisayar ve Bilişim Bilimleri Fakültesi, İşletim Sistemleri Ders Slaytları,
Operating System Concepts with Java 8. Edition Silberschatz, Galvin and Gagne, 2009


Hiç yorum yok

Blogger tarafından desteklenmektedir.