Método de ISchedulerProxy::RequestInitialVirtualProcessors
Solicita uma alocação inicial de raízes do processador virtual. Raiz de cada processador virtual representa a capacidade de executar um thread pode executar o trabalho para o Agendador.
virtual IExecutionResource * RequestInitialVirtualProcessors(
bool doSubscribeCurrentThread
) =0;
Parâmetros
- doSubscribeCurrentThread
Decida se deseja inscrever-se o segmento atual e a conta durante a alocação de recursos.
Valor de retorno
O IExecutionResource interface para o segmento atual, se o parâmetro doSubscribeCurrentThread possui o valor true. Se o valor for false, o método retorna NULL.
Comentários
Antes de um agendador é executado em qualquer trabalho, ele deve usar esse método para solicitar a raízes do processador virtual do Gerenciador de recursos. O Gerenciador de recursos irá acessar a diretiva do Agendador usando IScheduler::GetPolicy e usar os valores para as chaves de diretiva MinConcurrency, MaxConcurrency e TargetOversubscriptionFactor para determinar quantos segmentos de hardware para atribuir ao Agendador inicialmente e quantos raízes do processador virtual para criar para cada segmento de hardware. Para obter mais informações sobre como as diretivas do Agendador são usadas para determinar a alocação inicial do Agendador, consulte PolicyElementKey.
O Gerenciador de recursos concede recursos para um programador, chamando o método IScheduler::AddVirtualProcessors com uma lista das raízes do processador virtual. O método é chamado como um retorno de chamada para o Agendador antes deste método retorna.
Se o Agendador solicitada a inscrição para o segmento atual, definindo o parâmetro doSubscribeCurrentThread para true, o método retorna um IExecutionResource interface. A inscrição deve ser terminada posteriormente usando o IExecutionResource::Remove método.
Ao determinar quais segmentos de hardware são selecionados, o Gerenciador de recursos tentará otimizar para afinidade de nó do processador. Se a assinatura é solicitada para o segmento atual, é uma indicação de que o segmento atual pretende participar do trabalho atribuído a este Agendador. Nesse caso, as raízes alocado processadores virtuais estão localizadas no nó do processador que o thread atual está em execução, se possível.
O ato de assinatura de um thread aumenta o nível de assinatura do segmento de hardware subjacente por um. O nível de assinatura será reduzido um quando a inscrição é finalizada. Para obter mais informações sobre níveis de assinatura, consulte IExecutionResource::CurrentSubscriptionLevel.
Requisitos
Cabeçalho: concrtrm.h
Namespace: Simultaneidade