Warum sollte im Scheduler des GHC RTS eine Fähigkeit als frei markiert werden?

9

Als ich den GHC-Wiki-Kommentar zum Scheduler durchgelesen habe, war ich verwirrt Dieser Abschnitt:

  

Ein Grund für die Kennzeichnung einer Fähigkeit   so frei, wenn es übergeben wird   schnelle Callouts unterstützen Bei der Herstellung eines   sicherer Auslandsruf müssen wir freigeben   die Fähigkeit, und deshalb übergeben Sie es   zu einem anderen Arbeitsthread. Wenn die   Auslandsanruf ist kurz, wir wollen nicht   die Kosten für einen Kontextwechsel übernehmen   bei der Rückkehr, aber seit wir die markiert haben   Fähigkeit als frei gibt es ein gutes   Chance wird die wiederkehrende Aufgabe möglich sein   um es sofort wieder zu erwerben und   fortsetzen. Der Arbeiter, den wir aufgewacht sind   werde feststellen, dass die Fähigkeit ist   gehört, und gehen Sie wieder schlafen    (Dies kann zu einem doppelten Kontext führen   Schalten Sie, wenn keine freien CPUs eingeschaltet sind   was den Arbeiter jedoch laufen lässt).   

Meine Frage:
Für den fettgedruckten Satz, was tatsächlich zum "doppelten Kontextwechsel" führt, mit oder ohne eine Fähigkeit als frei zu markieren. Außerdem, was sind die zwei "Schalter", wenn sie passieren - von who1 zu who2, dann who2 zu who3?

    
Nybble 18.05.2011, 14:22
quelle

1 Antwort

3

Teilweise beantwortet hier: Ссылка (eine Kopie: Ссылка )

    
Edward Z. Yang 19.05.2011, 18:05
quelle

Tags und Links