작업 Scheduler(동시성 런타임)Task Scheduler (Concurrency Runtime)

설명서의 이 부분의 항목에서는 동시성 런타임 작업 스케줄러의 중요한 기능에 대해 설명합니다.The topics in this part of the documentation describe the important features of the Concurrency Runtime Task Scheduler. 작업 Scheduler는 동시성 런타임을 사용하는 기존 코드의 성능을 미세 조정하려는 경우에 유용합니다.The Task Scheduler is useful when you want fine-tune the performance of your existing code that uses the Concurrency Runtime.

중요

작업 스케줄러는 UWP (유니버설 Windows 플랫폼) 앱에서 사용할 수 없습니다.The Task Scheduler is not available from a Universal Windows Platform (UWP) app. 자세한 내용은 UWP 앱에 대 한에서 C++ 비동기 작업 만들기를 참조 하세요.For more information, see Creating Asynchronous Operations in C++ for UWP Apps.

Visual Studio 2015 이상에서 ppltasks.h의 concurrency:: task 클래스 및 관련 형식은 Windows ThreadPool을 스케줄러로 사용 합니다.In Visual Studio 2015 and later, the concurrency::task class and related types in ppltasks.h use the Windows ThreadPool as their scheduler. 이 항목은 ppltasks.h에서 정의된 형식에 더 이상 적용되지 않습니다.This topic no longer applies to types that are defined in ppltasks.h. Parallel_for와 같은 병렬 알고리즘은 동시성 런타임을 기본 스케줄러로 계속 사용합니다.Parallel algorithms such as parallel_for continue to use the Concurrency Runtime as the default scheduler.

동시성 런타임은 기본 스케줄러를 제공하므로 애플리케이션에서 스케줄러를 만들 필요가 없습니다.The Concurrency Runtime provides a default scheduler, and therefore you are not required to create one in your application. 작업 스케줄러는 응용 프로그램의 성능을 미세 조정 하는 데 도움이 되므로 동시성 런타임를 처음 접하는 경우 PPL (병렬 패턴 라이브러리) 또는 비동기 에이전트 라이브러리 를 사용 하는 것이 좋습니다.Because the Task Scheduler helps you fine-tune the performance of your applications, we recommend that you start with the Parallel Patterns Library (PPL) or the Asynchronous Agents Library if you are new to the Concurrency Runtime.

작업 스케줄러는 런타임에 작업을 예약하고 조정합니다.The Task Scheduler schedules and coordinates tasks at run time. 작업 은 특정 작업을 수행 하는 작업 단위입니다.A task is a unit of work that performs a specific job. 작업은 일반적으로 다른 작업과 병렬로 실행될 수 있습니다.A task can typically run in parallel with other tasks. 작업 그룹 항목, 병렬 알고리즘 및 비동기 에이전트에서 수행하는 작업이 모두 작업의 예입니다.The work that is performed by task group items, parallel algorithms, and asynchronous agents are all examples of tasks.

작업 Scheduler는 여러 컴퓨팅 리소스가 있는 컴퓨터에서 효율적인 작업 예약과 관련된 세부 정보를 관리합니다.The Task Scheduler manages the details that are related to efficiently scheduling tasks on computers that have multiple computing resources. 또한 작업 Scheduler는 기본 운영 체제의 최신 기능을 사용합니다.The Task Scheduler also uses the newest features of the underlying operating system. 따라서 동시성 런타임을 사용하는 애플리케이션은 확장된 기능이 있는 하드웨어에서 자동으로 크기가 조정되고 향상됩니다.Therefore, applications that use the Concurrency Runtime automatically scale and improve on hardware that has expanded capabilities.

다른 동시성 모델과 비교할 때 선점형 예약 메커니즘과 협조적 예약 메커니즘 간의 차이점을 설명 합니다.Comparing to Other Concurrency Models describes the differences between preemptive and cooperative scheduling mechanisms. 작업 Scheduler는 협조적 일정 및 작업 가로채기 알고리즘을 운영 체제의 우선 Scheduler와 함께 사용하여 처리 리소스의 사용량을 최대화합니다.The Task Scheduler uses cooperative scheduling and a work-stealing algorithm together with the preemptive scheduler of the operating system to achieve maximum usage of processing resources.

동시성 런타임은 기본 스케줄러를 제공하므로 인프라 세부 정보를 관리할 필요가 없습니다.The Concurrency Runtime provides a default scheduler so that you do not have to manage infrastructure details. 따라서 일반적으로 작업 Scheduler를 직접 사용하지는 않습니다.Therefore, you typically do not use the Task Scheduler directly. 그러나 애플리케이션의 품질 요구 사항을 충족하기 위해 작업 Scheduler를 사용하여 고유한 일정 예약 정책을 제공하거나 Scheduler를 특정 작업에 연결할 수 있습니다.However, to meet the quality needs of your application, you can use the Task Scheduler to provide your own scheduling policy or associate schedulers with specific tasks. 예를 들어 최대 4개 프로세서까지만 크기가 조정되는 병렬 정렬 루틴이 있다고 가정합니다.For example, suppose you have a parallel sorting routine that does not scale beyond four processors. 스케줄러 정책을 사용 하 여 4 개 이하의 동시 작업을 생성 하는 스케줄러를 만들 수 있습니다.You can use scheduler policies to create a scheduler that generates no more than four concurrent tasks. 이 스케줄러에서 정렬 루틴을 실행하면 다른 활성 스케줄러가 나머지 처리 리소스를 모두 사용할 수 있습니다.Running the sorting routine on this scheduler enables other active schedulers to use any remaining processing resources.

제목Title 설명Description
스케줄러 인스턴스Scheduler Instances 스케줄러 인스턴스와 concurrency::Schedulerconcurrency::CurrentScheduler 클래스를 사용하여 스케줄러 인스턴스를 관리하는 방법을 설명합니다.Describes scheduler instances and how to use the concurrency::Scheduler and concurrency::CurrentScheduler classes to manage them. 특정 형식의 작업에 명시적 일정 예약 정책을 연결하려는 경우 스케줄러 인스턴스를 사용합니다.Use scheduler instances when you want to associate explicit scheduling policies with specific types of workloads.
스케줄러 정책Scheduler Policies 스케줄러 정책의 역할을 설명합니다.Describes the role of scheduler policies. 스케줄러가 작업을 관리할 때 사용하는 전략을 제어하려는 경우 스케줄러 정책을 사용합니다.Use scheduler policies when you want to control the strategy that the scheduler uses when it manages tasks.
일정 그룹Schedule Groups 일정 그룹의 역할을 설명합니다.Describes the role of schedule groups. 작업 간에 높은 수준의 국부성이 필요한 경우, 예를 들어 동일한 프로세서 노드에서 관련 작업 그룹을 실행하면 이점이 있는 경우 일정 그룹을 사용합니다.Use schedule groups when you require a high degree of locality among tasks, for example, when a group of related tasks benefit from executing on the same processor node.
간단한 작업Lightweight Tasks 간단한 작업의 역할을 설명합니다.Describes the role of lightweight tasks. 간단한 작업은 동시성 런타임의 일정 예약 기능을 사용하도록 기존 코드를 조정하는 경우에 유용합니다.Lightweight tasks are useful when you adapt existing code to use the scheduling functionality of the Concurrency Runtime.
컨텍스트Contexts 컨텍스트, concurrency::wait 함수 및 concurrency::Context 클래스의 역할을 설명합니다.Describes the role of contexts, the concurrency::wait function, and the concurrency::Context class. 컨텍스트가 차단, 차단 해제 및 양보하는 시기를 제어해야 하는 경우 또는 애플리케이션에서 초과 구독을 사용할 수 있게 하려는 경우에 이 기능을 사용합니다.Use this functionality when you need control over when contexts block, unblock, and yield, or when you want to enable oversubscription in your application.
메모리 관리 함수Memory Management Functions concurrency::Allocconcurrency::Free 함수를 설명합니다.Describes the concurrency::Alloc and concurrency::Free functions. 이러한 함수는 동시에 메모리를 할당 및 해제하여 메모리 성능을 향상시킬 수 있습니다.These functions can improve memory performance by allocating and freeing memory in a concurrent manner.
다른 동시성 모델과 비교Comparing to Other Concurrency Models 우선 및 협조적 일정 예약 메커니즘 간의 차이점을 설명합니다.Describes the differences between preemptive and cooperative scheduling mechanisms.
PPL(병렬 패턴 라이브러리)Parallel Patterns Library (PPL) 애플리케이션에서 병렬 알고리즘과 같은 다양한 병렬 패턴을 사용하는 방법을 설명합니다.Describes how to use various parallel patterns, for example, parallel algorithms, in your applications.
비동기 에이전트 라이브러리Asynchronous Agents Library 애플리케이션에서 비동기 에이전트를 사용하는 방법을 설명합니다.Describes how to use asynchronous agents in your applications.
동시성 런타임Concurrency Runtime 병렬 프로그래밍을 간소화하는 동시성 런타임에 대해 설명하고 관련 항목의 링크를 제공합니다.Describes the Concurrency Runtime, which simplifies parallel programming, and contains links to related topics.