Compartilhar via


Método ISchedulerProxy::RequestInitialVirtualProcessors

Solicita uma alocação inicial de raízes virtuais do processador. Cada raiz virtual do processador representa a capacidade de executar um thread que pode executar o trabalho para o agendador.

virtual IExecutionResource * RequestInitialVirtualProcessors(
   bool doSubscribeCurrentThread
) =0;

Parâmetros

  • doSubscribeCurrentThread
    Se a assinatura o thread atual e o agent durante a atribuição de recursos.

Valor de retorno

A interface de IExecutionResource do thread atual, se o parâmetro doSubscribeCurrentThread tem o valor true. Se o valor for false, o método retornará NULL.

Comentários

Antes que um agendador executar qualquer trabalho, deverá usar esse método para solicitar raízes de processadores virtuais do Gerenciador de Recursos. O Gerenciador de Recursos acessará a política do agendador usando IScheduler::GetPolicy e usará os valores das chaves MinConcurrency, MaxConcurrency e TargetOversubscriptionFactor de política para determinar quantos threads de hardware para alocar inicialmente ao agendador e quantos o processador virtual enraíza criada para cada thread de hardware. Para obter mais informações sobre como as políticas do agendador são usadas para determinar a alocação inicial de um agendador, consulte PolicyElementKey.

O Gerenciador de Recursos concede recursos a um agendador chamando o método IScheduler::AddVirtualProcessors com uma lista de raízes virtuais do processador. O método é invocado como um retorno de chamada no agendador antes desse método retorna.

Se o agendador solicitou a assinatura do thread atual definindo o parâmetro doSubscribeCurrentThread a true, o método retorna uma interface de IExecutionResource . A assinatura deve ser terminada em um momento posterior usando o método de IExecutionResource::Remove .

Para determinar quais threads de hardware são selecionados, o Gerenciador de Recursos tentará para otimizar a afinidade do nó de processador. Se a assinatura for solicitada do thread atual, é uma indicação de que o thread atual pretender participar do trabalho atribuída a este agendador. Nesse caso, as raízes alocadas de processadores virtuais estão localizadas no nó que o processador o thread atual está sendo executado, se possível.

O ato de assinar um thread aumenta a assinatura no nível de threads de hardware subjacente por um. O nível da assinatura será reduzido por um quando a assinatura é encerrada. Para obter mais informações sobre os níveis de assinatura, consulte IExecutionResource::CurrentSubscriptionLevel.

Requisitos

Cabeçalho: concrtrm.h

Namespace: simultaneidade

Consulte também

Referência

Estrutura ISchedulerProxy