다음을 통해 공유


일정 그룹

업데이트: 2010년 7월

이 문서에서는 동시성 런타임에서 일정 그룹의 역할에 대해 설명합니다. 일정 그룹은 관련 작업을 함께 그룹화하거나 선호도를 설정합니다. 모든 스케줄러에는 하나 이상의 일정 그룹이 있습니다. 관련 작업 그룹을 동일한 프로세서 노드에서 실행하여 이점을 얻는 경우와 같이 작업 간에 높은 수준의 집약성이 필요한 경우 일정 그룹을 사용합니다. 반대로, 작업 집합에 할당된 리소스의 처리량을 제한하려는 경우와 같이 응용 프로그램에 특정 품질 요구 사항이 있는 경우에는 스케줄러 인스턴스를 사용합니다. 스케줄러 인스턴스에 대한 자세한 내용은 스케줄러 인스턴스를 참조하십시오.

동시성 런타임에서 기본 스케줄러를 제공하므로 응용 프로그램에서 스케줄러를 만들 필요가 없습니다. 작업 스케줄러를 사용하면 응용 프로그램의 성능을 세부적으로 조정할 수 있으므로 동시성 런타임을 처음 사용하는 경우 PPL(병렬 패턴 라이브러리) 또는 비동기 에이전트 라이브러리에서 시작하는 것이 좋습니다.

모든 Scheduler 개체에는 모든 일정 노드에 대해 기본 일정 그룹이 있습니다. 일정 노드는 내부 시스템 토폴로지에 매핑됩니다. 런타임에서는 모든 프로세서 패키지에 대한 하나의 일정 노드 또는 NUMA(Non-Uniform Memory Architecture) 노드 중 숫자가 큰 노드를 만듭니다. 명시적으로 작업을 일정 그룹과 연결하지 않으면 스케줄러는 작업을 추가할 그룹을 선택합니다.

SchedulingProtocol 스케줄러 정책은 스케줄러가 각 일정 그룹의 작업을 실행하는 순서에 영향을 줍니다. SchedulingProtocolEnhanceScheduleGroupLocality(기본값)로 설정될 경우 작업 스케줄러는 현재 작업이 끝나거나 협조적으로 양보하면 작업 중인 일정 그룹에서 다음 작업을 선택합니다. 작업 스케줄러는 사용 가능한 다음 그룹으로 이동하기 전에 작업할 현재 일정 그룹을 검색합니다. 반대로 SchedulingProtocolEnhanceForwardProgress로 설정될 경우 스케줄러는 각 작업이 끝나거나 양보된 후에 다음 일정 그룹으로 이동합니다. 이러한 정책을 비교하는 예제를 보려면 방법: 실행 순서에 영향을 주는 일정 그룹 사용을 참조하십시오.

런타임에서는 Concurrency::ScheduleGroup 클래스를 사용하여 일정 그룹을 나타냅니다. ScheduleGroup 개체를 만들려면 Concurrency::CurrentScheduler::CreateScheduleGroup 또는 Concurrency::Scheduler::CreateScheduleGroup 메서드를 호출합니다. 런타임에서는 Scheduler 개체에 대해 수행하는 것처럼 참조 횟수 메커니즘을 사용하여 ScheduleGroup 개체의 수명을 제어합니다. ScheduleGroup 개체를 만드는 경우 런타임에서는 참조 카운터를 1로 설정합니다. Concurrency::ScheduleGroup::Reference 메서드는 참조 카운터를 1씩 증가시킵니다. Concurrency::ScheduleGroup::Release 메서드는 참조 카운터를 1씩 감소시킵니다.

동시성 런타임의 대부분의 형식을 사용하면 개체를 일정 그룹과 함께 연결할 수 있습니다. 예를 들어 Concurrency::agent 클래스와 메시지 블록 클래스(예: Concurrency::unbounded_buffer, Concurrency::join, 및 Concurrency::timer)는 ScheduleGroup 개체를 사용하는 오버로드된 버전의 생성자를 제공합니다. 런타임에서는 이 ScheduleGroup 개체와 연결된 Scheduler 개체를 사용하여 작업을 예약합니다.

Concurrency::ScheduleGroup::ScheduleTask 메서드를 사용하여 간단한 작업을 예약할 수도 있습니다. 간단한 작업에 대한 자세한 내용은 간단한 작업를 참조하십시오.

예제

일정 그룹을 사용하여 작업 실행 순서를 제어하는 예제를 보려면 방법: 실행 순서에 영향을 주는 일정 그룹 사용을 참조하십시오.

참고 항목

개념

작업 스케줄러(동시성 런타임)

기타 리소스

스케줄러 인스턴스

방법: 실행 순서에 영향을 주는 일정 그룹 사용

변경 기록

날짜

변경 내용

이유

2010년 7월

내용을 다시 구성했습니다.

향상된 기능 관련 정보