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

Consulte também

Referência

Estrutura de ISchedulerProxy