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