Kullanıcı ileti dizisi

Bir kullanıcı iş parçacığı olarak (ayrıca kullanıcılar iş parçacığı yazılır), bazen Kullanıcı Seviyesi -Thread ve z. B. Windows Fiber ( aşağıya bakınız ) adı altında , bilgisayar biliminde programları veya program parçalarını birbiriyle bağlantılı bir şekilde çalıştırmanın belirli bir yolu olarak adlandırılır. İşlevsellik doğrudan çekirdekte (bir çekirdek iş parçacığında olduğu gibi ) değil , kullanıcı alanında bulunan ayrı bir program kitaplığında uygulanır. Bu , karmaşık sistem çağrıları olmadan kullanıcı iş parçacıkları arasında bir bağlam değişikliğine (görev değiştirme) olanak tanır; bu, bağlam değişikliklerinin çekirdek iş parçacıkları veya işlemler arasında olduğundan önemli ölçüde daha hızlı olduğu anlamına gelir .

Planlama

Bir çekirdek iş parçacığı içindeki kullanıcı iş parçacıkları prensipte eşzamanlı olarak ([sözde-] paralel), ancak birbiri ardına çalıştırıldığından, kullanıcı iş parçacıkları birkaç işlemciye makul bir şekilde dağıtılamaz . Yana işletim sistemi kullanıcı parçacığı, varlığı hakkında hiçbir şey bilmeyen zamanlama kullanıcı ipliklerinin (zaman dizisi kumandası) olmalıdır yapılması ile programın kendisi ya da tarafından programın kitaplığı kullanılır. Bu nedenle, işbirliğine dayalı planlama pratik olarak her zaman çalıştırılır ve öncelikli değildir ( İngilizceden öncelikli , 'ayrıcalıklı'). Bu nedenle, kullanıcı konuları kendi rızalarıyla kontrolü bırakmalıdır.

Ancak, kullanıcı iş parçacıklarından biri engelleyici bir sistem çağrısı yaparsa bu sorunludur . Bu kullanıcı iş parçacığının engellenmiş olması, denetimi başka bir kullanıcı iş parçacığına devretmesini imkansız kılar - bu şekilde tüm program engellenir. Bununla birlikte, bu problem, kullanılan kütüphanenin kullanıcı iş parçacığı için ikame işlevler sağlamasıyla aşılabilir. Kitaplık daha sonra yalnızca işletim sisteminin sağlaması gereken, işletim sisteminin engellemeyen sistem çağrılarını kullanır.

Farklı bakış açısı

Kullanıcı iş parçacığı kavramı, ilgili programlama dillerindeki prosedür veya işlev kavramlarının bir uzantısı olarak da görülebilir . Bu bakış açısından, bir kullanıcı iş parçacığı başka bir noktadan çağrılan bir prosedüre karşılık gelir ( tam olarak bu kullanıcı dizisinin açık programlanması yoluyla ). Bununla birlikte, böyle bir prosedür, arayanın kontrol akışına tam olarak bir noktada geri dönmek zorunda değildir, bunun yerine, kendi kendine gerçekleştirilen programlama yoluyla birden fazla kez ve farklı noktalara "geri dönebilir". Bu görünüm aynı zamanda bazı sistemlerde kullanıcı iş parçacıklarının bildirilme biçiminde de yansıtılır - yani her kullanıcı iş parçacığı için ayrı bir prosedür olarak.

Uygulamalar

Kullanıcı iş parçacığı kitaplıkları birçok işletim sisteminde mevcuttur, ancak yorumlayıcılar kullanıcı iş parçacıklarını da destekleyebilir. Kullanıcı konularının isimlendirilmesi, uygulamaya bağlı olarak farklılık gösterir .

pencereler

Microsoft , ( Windows 98'den beri ) sunduğu kullanıcı iş parçacıklarını Windows Fibers altında çağırmaktadır . İngilizce kelime elyaf ( . Dt ' Elyaf ' → ' elyaf '), bir doğal ilişki için bir referans olarak burada kullanılabilir iplik - d. H. bir iplik - bir lif / lif olarak anlaşılmalıdır: Bir lif / lif, bir iplikten (ip) daha ince ve daha basittir; birkaç tek liften bir iplik eğrilebilir. Bir iş parçacığı Windows altında bir fibere dönüştürülebilir ve bunun tersi de geçerlidir.

Linux

Linux'ta, örneğin, LinuxThreads ve GNU Portable Threads kitaplıkları kullanıcı iş parçacıkları sağlar . Ancak LinuxThreads artık geliştirilmiyor ve halefi olan Yerel POSIX İş Parçacığı Kitaplığı (NPTL) artık saf bir kullanıcı alanı kitaplığı değil.

Solaris

Adlandırma kuralı üzerinde Solaris üzerinde olandan farklıdır , Windows ve Linux . Bir çekirdek iş parçacığı burada hafif bir işlem olarak ( İngilizce ; → bkz. Hafif işlem '. İş parçacığı (bilgisayar bilimi) ) atıfta bulunulur ve bir kullanıcı iş parçacığı olarak adlandırılır.
Bir Solaris iş parçacığı , aynı süreçte diğer hafif işlemlere de atanabilir .

Java Sanal Makinesi

Java Sanal Makinesi'nin (JVM) daha yeni sürümleri , programlayıcıya iş parçacıkları sağlamak için yerel işletim sisteminin seçeneklerini kullanır . Eski sürümlerde veya işletim sistemi çekirdek iş parçacıklarını desteklemiyorsa, JVM'nin kendi kullanıcı iş parçacığı işlevi de vardır. Bu yeşil iplik olarak bilinir . Yeşil iş parçacıkları gerçek kullanıcı dizileridir, ancak yine de JVM tarafından uygulanan önleyici , önceliğe dayalı zamanlama sunar .

Edebiyat

Bireysel kanıt

  1. Cprogramming.com: Windows Programlama ve OpenGL'ye Giriş. (İngilizce)
  2. Vikram Shukla: Karşılaştırılan Linux iş parçacığı modelleri: LinuxThreads ve NPTL (PDF; 50 KB, İngilizce), 31 Mayıs 2019'da erişildi.
  3. ^ Fabian Zabatta, Kevin Ying: Bir Diş Performansı Karşılaştırması: Windows NT ve Simetrik Çok İşlemcili Solaris. 2. USENIX Windows NT Sempozyumu, 3-5 Ağustos 1998. In: usenix.org. USENIX Association, 10 Nisan 2002, 6 Şubat 2014'te erişildi .
  4. ^ Glenn L. Vanderburg ve diğerleri: Java Programlama Ustalarının Hileleri. Arşivlenmiş orijinal üzerinde 25 Mayıs 2009 ; 14 Nisan 2018'de erişildi (İngilizce).

İnternet linkleri

  • Ralf S. Engelschall: Taşınabilir Çoklu Okuma . ( PS ; 132  kB ) - Unix sistemlerinde kullanıcı iş parçacıklarının uygulanması (İngilizce); 6 Şubat 2014'te erişildi.