Структура IResourceManagerIResourceManager Structure

Интерфейс для диспетчера ресурсов среды выполнения с параллелизмом.An interface to the Concurrency Runtime's Resource Manager. Это интерфейс, по которому планировщики взаимодействуют с диспетчером ресурсов.This is the interface by which schedulers communicate with the Resource Manager.

СинтаксисSyntax

struct IResourceManager;

ЧленыMembers

Открытые перечисленияPublic Enumerations

ИмяName ОписаниеDescription
Метод IResourceManager:: OSVersionIResourceManager::OSVersion Перечислимый тип, представляющий версию операционной системы.An enumerated type that represents the operating system version.

Открытые методыPublic Methods

nameName ОписаниеDescription
Метод IResourceManager:: КреатенодетопологиIResourceManager::CreateNodeTopology Этот метод предназначен только в отладочных сборках среды выполнения. Это тестовый обработчик, разработанный для упрощения тестирования диспетчер ресурсов в различных аппаратных топологиях без необходимости в фактическом оборудовании, соответствующем конфигурации.Present only in debug builds of the runtime, this method is a test hook designed to facilitate testing of the Resource Manager on varying hardware topologies, without requiring actual hardware matching the configuration. При использовании розничных сборок среды выполнения этот метод будет возвращаться без выполнения каких бы то ни было действий.With retail builds of the runtime, this method will return without performing any action.
Метод IResourceManager:: ЖетаваилабленодекаунтIResourceManager::GetAvailableNodeCount Возвращает количество узлов, доступных диспетчеру ресурсов.Returns the number of nodes available to the Resource Manager.
Метод IResourceManager:: ЖетфирстнодеIResourceManager::GetFirstNode Возвращает первый узел в порядке перечисления, определенном диспетчером ресурсов.Returns the first node in enumeration order as defined by the Resource Manager.
Метод IResourceManager:: ReferenceIResourceManager::Reference Увеличивает значение счетчика ссылок на экземпляре диспетчер ресурсов.Increments the reference count on the Resource Manager instance.
Метод IResourceManager:: РегистерсчедулерIResourceManager::RegisterScheduler Регистрирует планировщик с диспетчер ресурсов.Registers a scheduler with the Resource Manager. После регистрации планировщика он должен взаимодействовать с диспетчер ресурсов с помощью ISchedulerProxy возвращаемого интерфейса.Once the scheduler is registered, it should communicate with the Resource Manager using the ISchedulerProxy interface that is returned.
Метод IResourceManager:: ReleaseIResourceManager::Release Уменьшает значение счетчика ссылок на экземпляре диспетчер ресурсов.Decrements the reference count on the Resource Manager instance. Диспетчер ресурсов уничтожается, когда счетчик ссылок переходит к 0 .The Resource Manager is destroyed when its reference count goes to 0.

КомментарииRemarks

Используйте функцию креатересаурцеманажер , чтобы получить интерфейс для одноэлементного экземпляра диспетчер ресурсов.Use the CreateResourceManager function to obtain an interface to the singleton Resource Manager instance. Метод увеличивает счетчик ссылок на диспетчер ресурсов, и необходимо вызвать метод метод IResourceManager:: Release , чтобы освободить ссылку после завершения диспетчер ресурсов.The method increments a reference count on the Resource Manager, and you should invoke the IResourceManager::Release method to release the reference when you are done with Resource Manager. Как правило, каждый создаваемый планировщик будет вызывать этот метод во время создания и освободить ссылку на диспетчер ресурсов после завершения работы.Typically, each scheduler you create will invoke this method during creation, and release the reference to the Resource Manager after it shuts down.

Иерархия наследованияInheritance Hierarchy

IResourceManager

ТребованияRequirements

Заголовок: concrtrm. hHeader: concrtrm.h

Пространство имен: параллелизмNamespace: concurrency

Метод метод IResourceManager:: КреатенодетопологиIResourceManager::CreateNodeTopology Method

Этот метод предназначен только в отладочных сборках среды выполнения. Это тестовый обработчик, разработанный для упрощения тестирования диспетчер ресурсов в различных аппаратных топологиях без необходимости в фактическом оборудовании, соответствующем конфигурации.Present only in debug builds of the runtime, this method is a test hook designed to facilitate testing of the Resource Manager on varying hardware topologies, without requiring actual hardware matching the configuration. При использовании розничных сборок среды выполнения этот метод будет возвращаться без выполнения каких бы то ни было действий.With retail builds of the runtime, this method will return without performing any action.

virtual void CreateNodeTopology(
    unsigned int nodeCount,
    _In_reads_(nodeCount) unsigned int* pCoreCount,
    _In_reads_opt_(nodeCount) unsigned int** pNodeDistance,
    _In_reads_(nodeCount) unsigned int* pProcessorGroups) = 0;

ПараметрыParameters

nodeCountnodeCount
Число моделируемых узлов процессора.The number of processor nodes being simulated.

пкорекаунтpCoreCount
Массив, указывающий количество ядер на каждом узле.An array that specifies the number of cores on each node.

пнодедистанцеpNodeDistance
Матрица, указывающая расстояние узла между любыми двумя узлами.A matrix specifying the node distance between any two nodes. Этот параметр может иметь значение NULL .This parameter can have the value NULL.

ппроцессорграупсpProcessorGroups
Массив, указывающий группу процессоров, к которой принадлежит каждый узел.An array that specifies the processor group each node belongs to.

КомментарииRemarks

invalid_argument возникает, если параметру nodeCount 0 передано значение или если параметр pCoreCount имеет значение NULL .invalid_argument is thrown if the parameter nodeCount has the value 0 was passed in, or if the parameter pCoreCount has the value NULL.

invalid_operation создается, если этот метод вызывается, когда в процессе существуют другие планировщики.invalid_operation is thrown if this method is called while other schedulers exist in the process.

Метод метод IResourceManager:: ЖетаваилабленодекаунтIResourceManager::GetAvailableNodeCount Method

Возвращает количество узлов, доступных диспетчеру ресурсов.Returns the number of nodes available to the Resource Manager.

virtual unsigned int GetAvailableNodeCount() const = 0;

Возвращаемое значениеReturn Value

Количество узлов, доступных для диспетчер ресурсов.The number of nodes available to the Resource Manager.

Метод метод IResourceManager:: ЖетфирстнодеIResourceManager::GetFirstNode Method

Возвращает первый узел в порядке перечисления, определенном диспетчером ресурсов.Returns the first node in enumeration order as defined by the Resource Manager.

virtual ITopologyNode* GetFirstNode() const = 0;

Возвращаемое значениеReturn Value

Первый узел в порядке перечисления, определенный диспетчер ресурсов.The first node in enumeration order as defined by the Resource Manager.

Перечисление метод IResourceManager:: OSVersionIResourceManager::OSVersion Enumeration

Перечислимый тип, представляющий версию операционной системы.An enumerated type that represents the operating system version.

enum OSVersion;

Метод метод IResourceManager:: ReferenceIResourceManager::Reference Method

Увеличивает значение счетчика ссылок на экземпляре диспетчер ресурсов.Increments the reference count on the Resource Manager instance.

virtual unsigned int Reference() = 0;

Возвращаемое значениеReturn Value

Результирующий счетчик ссылок.The resulting reference count.

Метод метод IResourceManager:: РегистерсчедулерIResourceManager::RegisterScheduler Method

Регистрирует планировщик с диспетчер ресурсов.Registers a scheduler with the Resource Manager. После регистрации планировщика он должен взаимодействовать с диспетчер ресурсов с помощью ISchedulerProxy возвращаемого интерфейса.Once the scheduler is registered, it should communicate with the Resource Manager using the ISchedulerProxy interface that is returned.

virtual ISchedulerProxy *RegisterScheduler(
    _Inout_ IScheduler* pScheduler,
    unsigned int version) = 0;

ПараметрыParameters

псчедулерpScheduler
ISchedulerИнтерфейс для регистрации в планировщике.An IScheduler interface to the scheduler to be registered.

versionversion
Версия интерфейса связи, используемая планировщиком для взаимодействия с диспетчер ресурсов.The version of communication interface the scheduler is using to communicate with the Resource Manager. Использование версии позволяет диспетчер ресурсов развивать интерфейс связи, одновременно позволяя планировщикам получать доступ к старым функциям.Using a version allows the Resource Manager to evolve the communication interface while allowing schedulers to obtain access to older features. Планировщики, которые хотят использовать функции диспетчер ресурсов, имеющиеся в Visual Studio 2010, должны использовать эту версию CONCRT_RM_VERSION_1 .Schedulers that wish to use Resource Manager features present in Visual Studio 2010 should use the version CONCRT_RM_VERSION_1.

Возвращаемое значениеReturn Value

ISchedulerProxyИнтерфейс, который диспетчер ресурсов связан с планировщиком.The ISchedulerProxy interface the Resource Manager has associated with your scheduler. Ваш планировщик должен использовать этот интерфейс для взаимодействия с диспетчер ресурсов с этого момента.Your scheduler should use this interface to communicate with Resource Manager from this point on.

КомментарииRemarks

Используйте этот метод, чтобы инициировать связь с диспетчер ресурсов.Use this method to initiate communication with the Resource Manager. Метод связывает IScheduler интерфейс планировщика с ISchedulerProxy интерфейсом и передает его вам.The method associates the IScheduler interface for your scheduler with an ISchedulerProxy interface and hands it back to you. Полученный интерфейс можно использовать для запроса ресурсов выполнения для использования планировщиком или для подписки потоков с диспетчер ресурсов.You can use the returned interface to request execution resources for use by your scheduler, or to subscribe threads with the Resource Manager. Диспетчер ресурсов будет использовать элементы политики из политики планировщика, возвращаемой методом IScheduler:: Policy , чтобы определить, какой тип потоков должен выполнять планировщик.The Resource Manager will use policy elements from the scheduler policy returned by the IScheduler::GetPolicy method to determine what type of threads the scheduler will need to execute work. Если SchedulerKind ключ политики имеет значение UmsThreadDefault и значение считывается из политики в качестве значения UmsThreadDefault , то IScheduler интерфейс, передаваемый в метод, должен быть IUMSScheduler интерфейсом.If your SchedulerKind policy key has the value UmsThreadDefault and the value is read back out of the policy as the value UmsThreadDefault, the IScheduler interface passed to the method must be an IUMSScheduler interface.

Метод создает исключение, invalid_argument Если параметр pScheduler имеет значение NULL или если параметр не version является допустимой версией интерфейса связи.The method throws an invalid_argument exception if the parameter pScheduler has the value NULL or if the parameter version is not a valid version for the communication interface.

Метод метод IResourceManager:: ReleaseIResourceManager::Release Method

Уменьшает значение счетчика ссылок на экземпляре диспетчер ресурсов.Decrements the reference count on the Resource Manager instance. Диспетчер ресурсов уничтожается, когда счетчик ссылок переходит к 0 .The Resource Manager is destroyed when its reference count goes to 0.

virtual unsigned int Release() = 0;

Возвращаемое значениеReturn Value

Результирующий счетчик ссылок.The resulting reference count.

См. также разделSee also

Пространство имен Concurrencyconcurrency Namespace
Структура ISchedulerProxyISchedulerProxy Structure
Структура ISchedulerIScheduler Structure