Başlangıç olarak iplik modellerinden bahsetmek istiyorum. İplik modelleri proses ve iplik olarak ikiye ayrılır.
İplik durumları çalışır, askıda, hazır olmak üzere proses durumlarıyla aynıdır. Her ipliğin kendi yığını vardır. Yığında çağrılmış ama dönülmemiş yordamlar vardır ve yerel değişken bulunur. Her iplik farklı yordam çağrıları yapabildiği gibi geri dönecekleri yerler farklı ise ayrı yığın gerekmektedir. İplikler prosesler gibi bağımsız değillerdir. Çoklu iplikli yazılım geliştirirken iplikleri aynı adres uzayına erişmeleri sonucu oluşabilecek kitlenme problemlerinin sezilmesi ve giderilmesi zorunludur.
Çok işlemcili sistemlerde iplikler tüm işlemci çekirdeklerinden istenilen şekilde faydalanmayı mümkün kılar. İpliklerin sonlandırılmasın da bazı problemlerle karşılaşılmaktadır. İpliğin görevini tamamlamadan sonlandırılmasına ipliğin iptal edilmesi denir. Hedef ipliğin (iptal edilecek iplik) sonlandırılması 2 değişik şekilde gerçekleştirilir.
- Asenkron iptal işlemi : Bir başka iplik ile sonlandırılır.
- Gecikmeli iptal işlemi : Hedef iplik belirli aralıklarla sonlanıp sonlanmaması gerekip gerekmediğini kontrol eder ve sonlanması gerektiğinde iptal eder.
Bir iplik kendisine tahsil edilen kaynaklar elinde iken veya diğer ipliklerle paylaştığı veri alanında değişiklik yaparken iptal edilirse problem oluşur. Bu işlem özellikle asenkron iptal için geçerlidir. Gecikmeli iptal işleminde ise bir iplik hedef ipliğin sonlanması gerektiğini belirtse bile hedef iplik kontrol edilmedikçe sonlanmaz.
İPLİKLERİN AVANTAJLARI
- Bir proses içinde birden fazla işlem olabilir. Bazı işlemler bazen bloke olabildiği için iplikleri bölme performansı artırır.
- İpliklerin kendi kaynakları yoktur. Oluşturulması ve yok edilmesi proseslere göre kolaydır.
- Tek işlemcili sistemde ipliklerin bazıları işlemcili tabanlı işlemleri bazıları ise giriş-çıkış işlemleri yapıyorsa performans artar. Hepsi işlemci tabanlı ise maliyet artar.
- İplikler çok işlemcili sistemlerde faydalıdır. Her işlemciden eş zamanlı yararlanmayı sağlar.
- İpliklerde bellek paylaşımı yapak oldukça kolaydır.
Bu yazı yorumlara kapalı.