2011-05-18 16 views
9

Bu bölümde konusunda kafası karışık oldu: destek hızlı ek bilgilerle etmektir teslim edildiğinde serbest bir Yeteneği işaretleme arkasındaGHC RTS'nin zamanlayıcısında, neden bir yeteneği ücretsiz olarak işaretlemeli? Ben <a href="http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/Scheduler" rel="noreferrer">the GHC Wiki commentary on the scheduler</a> okuduğunuzda

bir nedeni. güvenli bir dış arama yaparken, Yeteneğini serbest bırakmalı ve bu nedenle 'u başka bir çalışan iş parçacığına teslim etmeliyiz. yabancı çağrı kısaysa, biz dönen bir bağlam anahtarı maliyetini uğramak istemiyoruz, ama biz ücretsiz olarak Yeteneği işaretlenmiş beri dönen Görev yeniden üzere mümkün olacak iyi bir ihtimalle hemen edinin ve devam edin. Biz uyandım işçi Yeteneği aittir bulmak ve tekrar (işçiyi çalıştırmak için üzerinde hiçbir serbest CPU'lar Ancak varsa bu çift bağlam anahtarı gerektirebilir) uyumaya geri döner.

Sorum: kalın cümle için
, birlikte veya serbest bir yeteneği işaretleme olmadan, "Çift bağlam anahtarı" yol açacaktır hayret bir şey. Dahası, iki "anahtar" ne olurlarsa, kimden kimden2, sonra kim2'den kimin3'e?

+0

Merhaba Wu, sen [email protected], [email protected] danışarak daha doğrudan cevap almak ya edebilir Freenode'da #ghc IRC kanalı. –

+0

@Edward Z. Yang: Teşekkürler – Nybble

cevap

İlgili konular