SORU
9 EKİM 2008, PERŞEMBE


(Zaman uyumu) Non-Recursive Kilit (zaman uyumu)özyinelemeli Kilit vs

POSIX uyumu özyinelemeli sağlar. Aynı iş, aynı dışlama iki kez kilit anlamına gelir ve kilitlenme olmaz. Tabii ki o da başka bir iş parçacığı, zaman uyumu elde edebilirsiniz aksi takdirde iki kez kilidini açmak gerekiyor. Tüm sistemler pthreads destekleyen de özyinelemeli uyumu desteklemek, ama eğer POSIX conform, they have to olmak istiyorlarsa.

Diğer API (daha yüksek seviyeli API) de genellikle birbirini kapsamayan nesneler, genellikle Kilitleri olarak sunuyoruz. Bazı sistemleri/diller (ör: Cocoa Objective-C), yinelemeli ve özyinelemeli olmayan uyumu sunuyoruz. Bazı diller de sadece bir teklif. E. g. Java uyumu her zaman (aynı iş parçacığı olabilir "senkronize" aynı nesne üzerinde). iki kez tekrar eder Ne olduğuna bağlı diğer iş parçacığı işlevi sundukları olmaması özyinelemeli uyumu olabilir sorun değil, onlar kolayca yazılı kendini (zaten uygulanan yinelemeli uyumu kendimi temelinde daha basit dışlama/durum işlemleri).

Gerçekten anlamadığım şey: non-recursive uyumu için iyi nelerdir? Neden aynı dışlama iki kez kilitler, bir iş parçacığı kilitlenme isteyeyim? Hatta (eğer bu kilitlenme ve eğer varsa, bir özel durum üretiliyor eğer test gibi) önlenebileceğini yüksek seviye diller genellikle bunu yapmaz. İplik yerine kilitlenmeye izin vermezler.

Bu sadece durumda, nereye yanlışlıkla iki kez kilitleyin ve kilidini sadece bir kere dışarı çıkması için bir özyinelemeli dışlama, olur zor, sorunu bulmak için, bu yüzden onun yerine ben sahip çıkmaz hemen görmek nerede yanlış kilit görünür? Ama yapamadım ben aynı olan bir kilit sayaç döndüğünde kilidini ve bir durum, nerede eminim yayımlanan son kilidi ve sayaç değil sıfır, ben bir istisna atar ya da günlük sorun? Ya da orada görmek için başarısız olmayan özyinelemeli uyumu daha yararlı kullanmak durumunda başka? Yoksa olmayan özyinelemeli bir dışlama bir özyinelemeli birden biraz daha hızlı olabilir belki sadece performans mı? Ancak, bu test ettim ve fark çok büyük değil.

CEVAP
10 EKİM 2008, Cuma


Özyinelemeli olmayan özyinelemeli bir dışlama arasındaki fark mülkiyet ile bir ilgisi yoktur. Durumunda bir özyinelemeli dışlama, çekirdek kaydını tutmak parçacığı olan aslında elde edilen, zaman uyumu ilk kez, böylece bu algılayabilir arasındaki fark özyineleme vs farklı bir iş parçacığı gereken blok yerine. Başka bir cevap da belirttiği gibi, bu içeriği depolamak için bellek ve devrini sağlamak için gerekli de açısından hem de bu ek yükü bir soru var.

Ancakoyun burada çok başka durumlar da var.

Özyinelemeli dışlama sahiplenme duygusu var çünkü, kapmak kullanılabilir Bu iş parçacığı seslerini aynı iş parçacığı. Non-recursive uyumu durumunda, sahiplenme duygusu yok ve herhangi bir iş parçacığı genellikle dışlama aslında zaman uyumu almış olursa olsun bırakma. Birçok durumda, bu tür "zaman uyumu" gerçekten fazla bir semafor eylem, Neredesin ille kullanarak dışlama gibi bir dışlama cihaz ama kullanım olarak eşitleme veya sinyal cihazı arasında iki veya daha fazla iş parçacığı.

Bir dışlama içinde sahiplenme duygusu ile birlikte gelen bir başka özellik, öncelik kalıtım desteklemek için önemlidir. Çünkü çekirdek parça iplik sahibi olan dışlama ve aynı zamanda kimliğini tüm engelleyici(s), bir öncelik dişli sistemi mümkün hale dönüştü öncelikli konu bu şu anda sahip olduğu zaman uyumu için öncelikli yüksek öncelikli iş parçacığı şu anda da engellemeye dışlama. Bu miras, bu gibi durumlarda oluşabilecek priority inversion, sorunu engeller. (Tüm sistemler birbirini kapsamayan nesneler, öncelik kalıtım destekleyen, ama sahiplik kavramı ile mümkün olur başka bir özelliği olduğunu unutmayın).

Eğer klasik VxWorks RTOS çekirdek başvurursanız, onlar üç mekanizmaları tanımlamak:

  • zaman uyumu- özyineleme ve isteğe bağlı olarak, öncelik kalıtım destekler
  • ikili semafor- hayır özyineleme, hiçbir miras, basit dışlama, alıcı ve verici aynı iplik, yayın sürümü mevcut olmak zorunda değildir
  • semafor sayma- hayır özyineleme veya devralma, tutarlı bir kaynak olarak istenilen ilk sayım sayacı, konuları tek kaynak karşı net sayısı sıfır olduğu blok hareket eder.

Yine, bu biraz bunlar ne diyorlar, - özellikle platform tarafından değişir, ama bu oyunda kavramları ve çeşitli mekanizmalar temsilcisi olmalıdır.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BumbleDroid

    BumbleDroid

    18 EKİM 2010
  • grickle

    grickle

    22 AĞUSTOS 2006
  • Jorrit Jongma

    Jorrit Jongm

    17 Ocak 2008