작업 스케줄러(동시성 런타임)
설명서의이 부분의 항목에서는 동시성 런타임 작업 스케줄러의 중요한 기능에 대해 설명합니다. 작업 스케줄러는 동시성 런타임을 사용하는 기존 코드의 성능을 세부적으로 조정하려는 경우 유용합니다.
중요
작업 스케줄러는 응용 프로그램에서 사용할 수 없습니다.자세한 내용은 C++로 Windows 스토어 앱용 비동기 작업 만들기을 참조하십시오.
팁
동시성 런타임에서 기본 스케줄러를 제공하므로 응용 프로그램에서 스케줄러를 만들 필요가 없습니다.작업 스케줄러를 사용하면 응용 프로그램의 성능을 세부적으로 조정할 수 있으므로 동시성 런타임을 처음 사용하는 경우 PPL(병렬 패턴 라이브러리) 또는 비동기 에이전트 라이브러리에서 시작하는 것이 좋습니다.
작업 스케줄러는 런타임에 작업을 예약하고 조정합니다. 작업(task)은 특정 업무를 수행하는 작업(work) 단위입니다. 일반적으로 작업을 다른 작업과 함께 병렬로 실행할 수 있습니다. 작업 그룹 항목, 병렬 알고리즘 및 비동기 에이전트에서 수행되는 작업(work)은 모두 작업(task)의 한 예라고 할 수 있습니다.
작업 스케줄러는 컴퓨팅 리소스가 여러 개 포함된 컴퓨터에서 효율적인 예약 작업과 관련된 세부 정보를 관리합니다. 또한 작업 스케줄러는 내부 운영 체제의 최신 기능을 사용합니다. 따라서 동시성 런타임을 사용하는 응용 프로그램은 확장 기능을 포함하는 하드웨어를 자동으로 확장하고 향상시킵니다.
동시성 런타임과 기타 동시성 모델 비교에서는 선점형 예약 메커니즘과 협조적 예약 메커니즘 간의 차이에 대해 설명합니다. 작업 스케줄러는 협조적 예약 및 작업 가로채기 알고리즘을 운영 체제의 선점형 스케줄러와 함께 사용하여 처리 리소스를 최대한 활용할 수 있습니다.
동시성 런타임은 인프라 정보를 관리할 필요가 없도록 기본 스케줄러를 제공합니다. 따라서 일반적으로 작업 스케줄러를 직접 사용하지는 않습니다. 그러나 응용 프로그램의 품질 요구를 충족시키기 위해 작업 스케줄러를 사용하여 사용자 고유의 일정 예약 정책을 제공하거나 특정 작업에 스케줄러를 연결할 수 있습니다. 예를 들어 프로세서를 최대 네 개로 확장하는 병렬 정렬 알고리즘이 있다고 가정해 봅니다. 스케줄러 정책을 사용하여 최대 네 개의 동시 작업을 생성하는 스케줄러를 만들 수 있습니다. 이 스케줄러에서 정렬 루틴을 실행하면 다른 활성 스케줄러에서 임의의 나머지 처리 리소스를 사용할 수 있습니다.
관련 항목
제목 |
설명 |
---|---|
스케줄러 인스턴스에 대해 설명하고 concurrency::Scheduler 및 concurrency::CurrentScheduler 클래스를 사용하여 스케줄러 인스턴스를 관리하는 방법에 대해서도 설명합니다. 명시적 일정 예약 정책을 특정 유형의 작업 부하와 연결하려는 경우 스케줄러 인스턴스를 사용합니다. |
|
스케줄러 정책의 역할에 대해 설명합니다. 스케줄러가 작업을 관리할 때 사용하는 전략을 제어하려는 경우 스케줄러 정책을 사용합니다. |
|
일정 그룹의 역할에 대해 설명합니다. 관련 작업 그룹을 동일한 프로세서 노드에서 실행하여 이점을 얻는 경우와 같이 작업 간에 높은 수준의 집약성이 필요한 경우 일정 그룹을 사용합니다. |
|
간단한 작업의 역할에 대해 설명합니다. 간단한 작업은 동시성 런타임의 일정 예약 기능을 사용하기 위해 기존 코드를 조정할 때 유용합니다. |
|
컨텍스트, concurrency::wait 함수 및 concurrency::Context 클래스의 역할에 대해 설명합니다. 컨텍스트를 차단, 차단 해제 및 양보할 때 더 세부적으로 제어해야 할 경우 또는 응용 프로그램에서 초과 구독을 사용하도록 설정하려는 경우 이 기능을 사용합니다. |
|
concurrency::Alloc 및 concurrency::Free 함수에 대해 설명합니다. 이 함수를 사용하면 메모리를 동시에 할당 및 해제하여 메모리 성능을 향상시킬 수 있습니다. |
|
선점형 예약 메커니즘과 협조적 예약 메커니즘 간의 차이에 대해 설명합니다. |
|
응용 프로그램에서 병렬 알고리즘과 같은 다양한 병렬 패턴을 사용하는 방법에 대해 설명합니다. |
|
응용 프로그램에서 비동기 에이전트를 사용하는 방법에 대해 설명합니다. |
|
병렬 프로그래밍을 단순화하는 동시성 런타임에 대해 설명하고 관련 항목에 대한 링크를 포함합니다. |