Aracılığıyla paylaş


Diğer eşzamanlılık modeli eşzamanlılık çalýþma karşılaştırma

Bu belgenin özellikleri ve programlama modellerini eşzamanlılık çalışma zamanı ve diğer teknolojiler arasındaki farklar açıklanır. Eşzamanlılık çalışma zamanı avantajları diğer programlama modellerini yararları nasıl ödendiğini anlayarak, uygulamalarınızın gereksinimlerini en iyi şekilde karşılayan teknoloji seçebilirsiniz.

Şu anda Windows iş parçacığı havuzu veya OpenMP, gibi başka bir programlama modelini kullanıyorsanız, bazı durumlarda burada, eşzamanlılık çalışma zamanı geçirmek uygun olabilir. Örneğin, konu Eşzamanlılık çalýþma OpenMP ' geçiş zaman, eşzamanlılık çalýþma OpenMP ' geçirmek uygun olabilir açıklar. Ancak, uygulama performansını ve geçerli hata ayıklama desteği memnun değilseniz geçiş gerekli değildir.

Başka bir eşzamanlılık modeli kullanan varolan uygulamanızı tamamlamak için eşzamanlılık çalışma zamanı verimlilik avantajları ve özellikleri kullanabilirsiniz. Eşzamanlılık çalışma zamanı, birden çok görev planlayıcılar aynı bilgisayar kaynakları için rekabet, Yük Dengeleme garanti edemez. Ancak, iş yüklerini örtüştüğünde değil, bu etkiyi düzeydedir.

Bölümler

  • PreEmptive işbirliği yapan planlama çizelgeleme karşılaştırma

  • Windows API eşzamanlılık çalýþma karşılaştırma

  • Eşzamanlılık çalýþma OpenMP karşılaştırma

PreEmptive işbirliği yapan planlama çizelgeleme karşılaştırma

Preemptive modeli ve planlama modelleri cooperative paylaşmak bilgi işlem kaynaklarını, örneğin, birden çok görevi etkinleştirmek için iki ortak işlemci veya donanım iş parçacığı yollarıdır.

Dd998048.collapse_all(tr-tr,VS.110).gifPreEmptive ve işbirliği yapan zamanlama

PreEmptive planlama her görev özel hesaplama kaynağın belirli bir süre erişmenizi sağlar ve başka bir göreve geçiş yapar, hepsini bir kez deneme, öncelik tabanlı bir mekanizma. PreEmptive planlama çok görevli işletim sistemlerinde Windows gibi ortak. İşbirliği yapan planlama her görev özel bilgi işlem kaynak görev bitene kadar veya görev, kaynağa erişim izni verir kadar erişmenizi bir mekanizmadır. Eşzamanlılık çalışma zamanı, maksimum kullanım işleme kaynakları elde etmek için işbirliği yapan planlama preemptive işletim sistemi Zamanlayıcı ile birlikte kullanır.

Dd998048.collapse_all(tr-tr,VS.110).gifPreemptive ve işbirliği yapan planlayıcılar arasındaki farklar

PreEmptive planlayıcılar her iş parçacığı ilerleme yapar emin olmak için kaynak bilgisayar için birden çok iş parçacığı eşit erişimi vermesini isteyin. Adil erişim sağlayarak birçok bilgi işlem kaynaklarını olan bilgisayarlarda daha az sorunlu olur; Ancak, kaynakların verimli kullanımı sağlayarak daha sorunlu olur.

Preemptive çekirdek modu Zamanlayıcısı işletim sistemini temel planlama kararları vermek için uygulama kodu gerektirir. Tersine, uygulama kodu kendi planlama kararları vermek kullanıcı modu işbirliği yapan bir Zamanlayıcı etkinleştirir. İşbirliği yapan planlama uygulama tarafından yapılması birçok planlama kararları sağladığından çok çekirdek modu eşitleme ile ilişkili ek yükünü azaltır. Zamanlamak için diğer iş olduğunda işbirliği yapan bir Zamanlayıcı işletim sistemi çekirdeği için planlama kararları genellikle defers. İşbirliği yapan bir Zamanlayıcı işletim sistemi Zamanlayıcı çekirdek tarafından iletilen engelleyici bir işlem yoktur ancak kullanıcı modu Zamanlayıcısı işlem iletildiğini değil de defers.

Dd998048.collapse_all(tr-tr,VS.110).gifİşbirliği yapan planlama ve verimlilik

Preemptive bir Zamanlayıcı için öncelik düzeyi aynı olan tüm iş eşittir. Preemptive Zamanlayıcı genellikle iş parçacığı içinde oluşturuldukları sırayla zamanlanır. Üstelik preemptive Zamanlayıcısı her iş parçacığı bir zaman dilimi hepsini biçimde, iş parçacığı önceliği temelinde verir. Bu mekanizma (her iş parçacığı sürmesini sağlar) eşitlik sağlamasına karşın, bazı verimlilik maliyette gelir. Örneğin, çok yoğun hesaplama algoritmaları eşitlik gerektirmez. Bunun yerine, ilgili görevler genel az sürede bitirmek önemlidir. İşbirliği yapan zamanlama daha verimli çalışması zamanlamak uygulamayı etkinleştirir. Örneğin, pek çok iş parçacığı olan bir uygulama göz önünde bulundurun. Aynı anda çalışacak kaynakları paylaşmak istemiyorsanız, iş parçacığı planlama, eşitleme yükünü azaltmak ve böylece verimliliği artırın. Böylece her potansiyel Sahne Alanı'nın girdi bellek önbelleğine önceden yüklenmiş görevleri zamanlamak için başka bir etkili (burada her görev önceki Çıkışta davranır) pipelines görevleri çalıştırmak için aynı işlemci yoludur.

Dd998048.collapse_all(tr-tr,VS.110).gifZamanlama PreEmptive ve işbirliği yapan birlikte kullanma

Planlama işbirliği yapan tüm planlama sorunları çözmez. Örneğin, diğer görevler oldukça verim değil görevleri kullanılabilir bilgi işlem kaynaklarını tüketir ve diğer görevler ilerleme yapmasını önlemek. Eşzamanlılık çalışma zamanı işbirliği yapan zamanlama verimlilik faydaları preemptive planlama eşitlik garanti tamamlayıcı olarak kullanır. Varsayılan olarak, iş arasında bilgi işlem kaynaklarını verimli bir şekilde dağıtmak için iş çalarak bir algoritma kullanır işbirliği yapan bir Zamanlayıcı eşzamanlılık zamanı sağlar. Ancak, eşzamanlılık çalışma Zamanlayıcı de oldukça kaynakları uygulamaları arasında dağıtmak için preemptive Zamanlayıcısı işletim sistemi kullanır. Uygulamalarınızda yürütme iş parçacığı üzerinde hassas bir denetim oluşturmak için özel planlayıcılar ve Zamanlayıcı ilkeleri oluşturabilirsiniz.

Top

Windows API eşzamanlılık çalýþma karşılaştırma

Genellikle Windows API'sı da adlandırılır (ve önceden Win32 bilinirdi), Microsoft Windows uygulama programlama arabirimi, eşzamanlılık uygulamalarınızda sağlayan bir programlama modeli sağlar. Eşzamanlılık çalışma zamanı temel işletim sisteminden bulunmayan ek programlama modellerini sağlamak üzere Windows API'si oluşturur.

Eşzamanlılık çalışma zamanı paralel çalışma gerçekleştirmek için Windows API iş parçacığı modelini oluşturur. Windows API bellek yönetimi ve iş parçacığı yerel depolama mekanizmalar kullanır. Windows 7 ve Windows Server 2008 R2, kullanıcı ile zamanlanabilir iş parçacıkları ve 64 donanım iş parçacığı olan bilgisayarlar için Windows API desteğini kullanır. Eşzamanlılık çalışma zamanı, bilişim kaynaklarının kullanımını en üst düzeye çıkarmak için işbirliği yapan Görev Zamanlayıcı ve iş çalarak algoritması sağlayarak ve birden çok eşzamanlı Zamanlayıcı örneği etkinleştirerek Windows API modelini genişletir.

Windows API'si hakkında daha fazla bilgi için bkz: genel bakış Windows API.

Dd998048.collapse_all(tr-tr,VS.110).gifProgramlama dilleri

Windows API c programlama diliyle programlama modeli göstermek için kullanır. Eşzamanlılık zamanı C++ dilinde en yeni özelliklerinden yararlanır C++ programlama arabirimi sağlar. Örneğin, lambda işlevleri paralel çalışma işlevleri tanımlamak için Sözün, tür-güvenli bir mekanizma sağlar. Eşzamanlılık çalışma zamanı modülü kullanır en C++ özellikleri hakkında daha fazla bilgi için bkz: Eşzamanlılık Çalışma Zamanı Modülü'ne genel bakış.

Dd998048.collapse_all(tr-tr,VS.110).gifİş parçacıkları ve iş parçacığı havuzu

Windows API içinde merkezi eşzamanlılık iş parçacığı mekanizmasıdır. Genellikle kullandığınız CreateThread iş parçacığı oluşturmak için işlev. İş parçacığı oluşturma ve kullanma görece kolay olsa da, işletim sistemi önemli miktarda süre ve bunları yönetmek için diğer kaynakları ayırır. Her iş parçacığı önceliği aynı düzeyde başka iş parçacığı yürütme aynı sürede alırsınız garanti olsa da, ayrıca, ilişkili ek yükü yeterince büyük görevler oluşturma gerektirir. Daha küçük veya daha iyi ayarlanmış görevler daha eşzamanlılık ile ilişkili ek yükü ağır görevleri paralel olarak çalıştırılmasının yararı basmaktadır.

İş parçacığı havuzu iş parçacığı yönetimi maliyetini azaltmak için bir yoludur. Özel bir iş parçacığı havuzu ve her ikisi de paralel olarak verimli çalışmak küçük iş öğeleri etkinleştirmek Windows API'si tarafından sağlanan iş parçacığı havuzu uygulaması. Windows iş parçacığı havuzu, ilk giren ilk çıkar (FIFO) sıradaki iş öğeleri saklar. Her çalışma öğesi havuzuna eklendiği sırayla başlatılır.

Eşzamanlılık çalışma zamanlama mekanizması FIFO genişletmek için iş çalarak bir algoritma uygular. Algoritma değil henüz başlatılmamış görevleri çalışma öğelerinin çalışan iş parçacıkları taşır. İş çalarak algoritması yükleri dengeli rağmen de çalışma öğeleri yeniden sipariş edilmesi neden olabilir. Bu sipariş işlem teslim edildiği olandan farklı bir sırayla başlatmak iş öğesi neden olabilir. Özyinelemeli algoritmalarıyla yararlıdır burada daha iyi bir şans veriler arasında eski olanlardan daha yeni görevler arasında paylaşılır. İlk çalıştırma için yeni öğeler alınıyor, daha az İsabetsiz Önbellek Okuma Sayısı ve büyük olasılıkla daha az sayfa hataları anlamına gelir.

İşletim sistemi açısından bakıldığında, iş çalarak adil değil. Uygulama bir algoritma veya paralel olarak çalıştırmak için görev geliştirdiğinde, ancak alt görevler arasında eşitlik her zaman önemli değildir. Nasıl hızlı bir şekilde genel görev tamamlandıktan ne önemli olur. Diğer algoritmalar, FIFO uygun zamanlama stratejisidir.

Dd998048.collapse_all(tr-tr,VS.110).gifÇeşitli işletim sistemlerinde davranışı

Yığın performans, Windows Vista üzerinde geliştirilmiş dışında Windows xp ve Windows Vista, eşzamanlılık çalışma zamanı'nı kullanan uygulamalar benzer şekilde davranırlar.

Windows 7 ve Windows Server 2008 R2 işletim sisteminin daha eşzamanlılık ve ölçeklenebilirlik destekler. Örneğin, bu işletim sistemlerinin 64 donanım iş bilgisayarları destekler. Bu yeni özelliklerden yararlanmak için Windows API'si kullanan var olan uygulamaların değiştirilmesi gerekir. Ancak, eşzamanlılık çalışma zamanında otomatik olarak kullanan bir uygulama bu özelliklerini kullanır ve değişiklik gerektirmez.

https://msdn.microsoft.com/tr-tr/library/dd627187(v=vs.110)

Top

Eşzamanlılık çalýþma OpenMP karşılaştırma

Eşzamanlılık çalışma zamanı çeşitli programlama modeli sağlar. Bu modeller üst üste veya Tamamlayıcı diğer kitaplıkları modeller. Bu bölümde eşzamanlılık çalýþma karşılaştırır OpenMP.

OpenMP programlama modeli, açık bir standart tanımlanan ve Fortran ve c/C++ programlama dilleri için iyi tanımlanmış bağlantılar vardır. OpenMP sürüm 2.0 ve 2.5 yinelemeli paralel algoritmalar için uygun; diğer bir deyişle, bunlar paralel yineleme veri dizisi gerçekleştirin. OpenMP paralellik derecesini pre-determined ve kullanılabilir sistem kaynakları eşleşen en verimli olur. OpenMP için yüksek performanslı bilgi işlem, özellikle iyi bir eşleşme hesaplama çok büyük sorunlar tek bir bilgisayar işlem kaynaklarını burada dağıtılır modelidir. Bu senaryoda, donanım ortamını bilinen ve geliştirici okunmadığından algoritması yürütüldüğünde kaynak bilgisayar için özel kullanım erişimine sahip bekleyebilirsiniz.

Ancak, diğer, daha az kısıtlanmış bilgi işlem ortamlarını OpenMP iyi eşleşen olmayabilir. Örneğin, yinelenen sorunları (quicksort algoritması veya ağaç veri arama gibi) OpenMP kullanarak uygulamak daha zordur. Eşzamanlılık çalışma zamanı OpenMP yetenekleri sağlayarak tamamlayan Paralel desen kitaplığı (ppl) ve Zaman uyumsuz aracıları kitaplığı. OpenMP, kullanılabilir kaynaklar için uyum ve iş yükleri değiştikçe paralellik derecesini ayarlar dinamik bir Zamanlayıcı eşzamanlılık zamanı sağlar.

Eşzamanlılık çalışma zamanında özelliklerin uzatılabilir. Ayrıca, yenilerini oluşturmak için varolan özellikleri birleştirebilirsiniz. OpenMP derleyici yönergeleri edeceğinden kolayca genişletilemez.

Hakkında daha fazla bilgi için bkz: OpenMP ve onun eşzamanlılık Runtime kullanmak için varolan OpenMP kod eşzamanlılık çalışma zamanı karşılaştırır Eşzamanlılık çalýþma OpenMP ' geçiş.

Top

Ayrıca bkz.

Başvuru

Windows API'e genel bakış

Kavramlar

Eşzamanlılık çalışma zamanı

Eşzamanlılık Çalışma Zamanı Modülü'ne genel bakış

Paralel Desenler kitaplığının (ppl)

Zaman uyumsuz aracıları kitaplığı

Diğer Kaynaklar

Visual C++ OpenMP