IScheduler::NotifyResourcesExternallyIdle-Methode

Benachrichtigt diesen Planer, dass die durch den Satz virtueller Prozessorstämme dargestellten Hardwarethreads im Array ppVirtualProcessorRoots nicht von anderen Planern verwendet werden.

virtual void NotifyResourcesExternallyIdle(
   IVirtualProcessorRoot ** ppVirtualProcessorRoots,
   unsigned int count
) =0;

Parameter

  • ppVirtualProcessorRoots
    Ein Array von IVirtualProcessorRoot-Schnittstellen, denen Hardwarethreads zugeordnet sind, in denen sich andere Planer im Leerlauf befinden.

  • count
    Die Anzahl der IVirtualProcessorRoot-Schnittstellen im Array.

Hinweise

Es ist möglich, dass ein bestimmter Hardwarethread zur gleichen Zeit mehreren Planern zugewiesen ist. Ein Grund dafür konnte sein, dass es nicht genug Hardwarethreads auf dem System gibt, um die minimale Parallelität für alle Planer zu gewährleisten, ohne Ressourcen gemeinsam zu nutzen. Eine andere Möglichkeit ist, dass anderen Planern Ressourcen vorübergehend zugewiesen werden, wenn der besitzende Planer sie nicht verwendet, indem alle seine virtuellen Prozessorstämme in diesem Hardwarethread deaktiviert werden.

Die Abonnementebene eines Hardwarethreads wird von der Anzahl der abonnierten Threads und aktivierten virtuellen Prozessorstämmen angegeben, die diesem Hardwarethread zugeordnet sind. Aus Sicht eines bestimmten Planers ist die externe Abonnementebene eines Hardwarethreads der Teil des Abonnements, zu dem andere Planer beitragen. Benachrichtigungen, dass Ressourcen extern ausgelastet sind, werden an einen Planer gesendet, wenn die externe Abonnementebene für einen Hardwarethread von einem vorherigen positiven Wert auf 0 (null) fällt.

Benachrichtigungen über diese Methode werden nur an Planer gesendet, die eine Richtlinie haben, bei der der Wert für den MinConcurrency-Richtlinienschlüssel gleich dem Wert für den MaxConcurrency-Richtlinienschlüssel ist. Weitere Informationen über verfügbare Planerrichtlinien finden Sie unter SchedulerPolicy.

Ein Planer, der sich für Benachrichtigungen qualifiziert, erhält bei der Erstellung einen Satz anfänglicher Benachrichtigungen, die angeben, ob die gerade zugewiesenen Ressourcen extern ausgelastet oder im Leerlauf sind.

Anforderungen

Header: concrtrm.h

Namespace: Concurrency

Siehe auch

Referenz

IScheduler-Struktur

Weitere Ressourcen

IExecutionResource::CurrentSubscriptionLevel-Methode

IScheduler::NotifyResourcesExternallyBusy-Methode