ISchedulerProxy::RequestInitialVirtualProcessors (Método)
Solicita una asignación inicial de raíces del procesador virtual. Cada raíz del procesador virtual representa la capacidad de ejecutar un subproceso que puede realizar el trabajo para el programador.
virtual IExecutionResource * RequestInitialVirtualProcessors(
bool doSubscribeCurrentThread
) =0;
Parámetros
- doSubscribeCurrentThread
Si desea suscribirse el subproceso actual y cuenta para ello durante la asignación de recursos.
Valor devuelto
La interfaz IExecutionResource para el subproceso actual, si el parámetro doSubscribeCurrentThread tiene el valor true. Si el valor es false, el método devuelve NULL.
Comentarios
Antes de que un programador ejecute cualquier trabajo, debería usar este método para solicitar raíces del procesador virtual desde el administrador de recursos. El administrador de recursos obtendrá acceso a la directiva del programador mediante IScheduler::GetPolicy y usará los valores para la clave de la directiva MinConcurrency, MaxConcurrency y TargetOversubscriptionFactor para determinar cuántos subprocesos de hardware asignará inicialmente al programador y cuántas raíces del procesador virtual creará por cada subproceso de hardware. Para obtener más información sobre cómo se usan las directivas del programador para determinar la asignación inicial de un programador, vea PolicyElementKey.
El administrador de recursos concede recursos a un programador llamando al método IScheduler::AddVirtualProcessors con una lista de raíces del procesador virtual. El método se invoca como una devolución de llamada en el programador antes de que se devuelva este método.
Si el programador solicitó la suscripción para el subproceso actual estableciendo el parámetro doSubscribeCurrentThread en true, el método devuelve una interfaz IExecutionResource. La suscripción se debe finalizar posteriormente usando el método IExecutionResource::Remove.
A la hora de determinar qué subprocesos de hardware están seleccionados, el administrador de recursos intentará la optimización para la afinidad de un nodo de procesador. Si la suscripción se solicita para el subproceso actual, es una indicación de que el subproceso actual piensa participar en el trabajo asignado a este programador. En este caso, las raíces de los procesadores virtuales asignados se encuentran en el nodo de procesador en el que el subproceso actual se está ejecutando, si es posible.
La acción de suscribir un subproceso aumenta el nivel de la suscripción del subproceso de hardware subyacente por uno. El nivel de suscripción se reduce por uno cuando se finaliza la suscripción. Para obtener más información sobre niveles de la suscripción, vea IExecutionResource::CurrentSubscriptionLevel.
Requisitos
Encabezado: concrtrm.h
Espacio de nombres: simultaneidad