프로세스 및 스레드의 새로운 기능
Windows 7 및 Windows Server 2008 R2에는 프로세스 및 스레드에 대한 다음과 같은 새로운 프로그래밍 요소가 포함되어 있습니다.
새로운 기능
Windows 7 및 Windows Server 2008 R2의 64비트 버전은 단일 컴퓨터에서 64개 이상의 논리 프로세서를 지원합니다. 자세한 내용은 프로세서 그룹을 참조하세요.
UMS(사용자 모드 예약)는 애플리케이션이 자체 스레드를 예약하는 데 사용할 수 있는 간단한 메커니즘입니다. 자세한 내용은 사용자 모드 예약을 참조하세요.
새로운 함수
프로세서 및 프로세서 그룹과 함께 사용되는 새로운 함수는 다음과 같습니다.
함수 | Description |
---|---|
CreateRemoteThreadEx |
다른 프로세스의 가상 주소 공간에서 실행되는 스레드를 만들고 필요에 따라 프로세서 그룹 선호도와 같은 확장 특성을 지정합니다. |
GetActiveProcessorCount |
프로세서 그룹 또는 시스템의 활성 프로세서 수를 반환합니다. |
GetActiveProcessorGroupCount |
시스템의 활성 프로세서 그룹 수를 반환합니다. |
GetCurrentProcessorNumberEx |
호출 스레드가 실행 중인 논리 프로세서의 프로세서 그룹 및 수를 검색합니다. |
GetLogicalProcessorInformationEx |
논리 프로세서 및 관련 하드웨어의 관계에 대한 정보를 검색합니다. |
GetMaximumProcessorCount |
프로세서 그룹 또는 시스템에 있을 수 있는 논리 프로세서의 최대 수를 반환합니다. |
GetMaximumProcessorGroupCount |
시스템에 있을 수 있는 프로세서 그룹의 최대 수를 반환합니다. |
GetNumaAvailableMemoryNodeEx |
지정된 노드에서 사용할 수 있는 메모리 양을 USHORT 값으로 검색합니다. |
GetNumaNodeNumberFromHandle |
파일 핸들에 대한 기본 디바이스와 연결된 NUMA 노드를 검색합니다. |
GetNumaNodeProcessorMaskEx |
지정된 NUMA 노드의 프로세서 마스크를 USHORT 값으로 검색합니다. |
GetNumaProcessorNodeEx |
지정된 논리 프로세서의 노드 번호를 USHORT 값으로 검색합니다. |
GetNumaProximityNodeEx |
노드 번호를 지정된 근접 식별자에 대한 USHORT 값으로 검색합니다. |
GetProcessGroupAffinity |
지정된 프로세스의 프로세서 그룹 선호도를 검색합니다. |
GetProcessorSystemCycleTime |
지정된 그룹의 각 프로세서가 DPC(지연 프로시저 호출) 및 ISR(인터럽트 서비스 루틴)을 실행하는 데 소요된 주기 시간을 검색합니다. |
GetThreadGroupAffinity |
지정된 스레드의 프로세서 그룹 선호도를 검색합니다. |
GetThreadIdealProcessorEx |
지정된 스레드에 적합한 프로세서의 프로세서 번호를 검색합니다. |
QueryIdleProcessorCycleTimeEx |
지정된 프로세서 그룹의 각 논리 프로세서에서 유휴 스레드에 대해 누적된 주기 시간을 검색합니다. |
SetThreadGroupAffinity |
지정된 스레드에 대한 프로세서 그룹 선호도를 설정합니다. |
SetThreadIdealProcessorEx |
지정된 스레드에 이상적인 프로세서를 설정하고 필요에 따라 이전 이상적인 프로세서를 검색합니다. |
다음 새 함수는 스레드 풀과 함께 사용됩니다.
함수 | 설명 |
---|---|
QueryThreadpoolStackInformation |
지정된 스레드 풀의 스레드에 대한 스택 예약 및 커밋 크기를 검색합니다. |
SetThreadpoolCallbackPersistent |
콜백이 영구 스레드에서 실행되도록 지정합니다. |
SetThreadpoolCallbackPriority |
동일한 스레드 풀의 다른 작업 항목을 기준으로 콜백 함수의 우선 순위를 지정합니다. |
SetThreadpoolStackInformation |
지정된 스레드 풀의 새 스레드에 대한 스택 예약 및 커밋 크기를 설정합니다. |
다음 새 함수는 UMS와 함께 사용됩니다.
함수 | 설명 |
---|---|
CreateUmsCompletionList |
UMS 완료 목록을 만듭니다. |
CreateUmsThreadContext |
UMS 작업자 스레드를 나타내는 UMS 스레드 컨텍스트를 만듭니다. |
DeleteUmsCompletionList |
지정된 UMS 완료 목록을 삭제합니다. 목록이 비어 있어야 합니다. |
DeleteUmsThreadContext |
지정된 UMS 스레드 컨텍스트를 삭제합니다. 스레드를 종료해야 합니다. |
DequeueUmsCompletionListItems |
지정된 UMS 완료 목록에서 UMS 작업자 스레드를 검색합니다. |
EnterUmsSchedulingMode |
호출 스레드를 UMS 스케줄러 스레드로 변환합니다. |
ExecuteUmsThread |
지정된 UMS 작업자 스레드를 실행합니다. |
GetCurrentUmsThread |
호출하는 UMS 스레드의 UMS 스레드 컨텍스트를 반환합니다. |
GetNextUmsListItem |
UMS 스레드 컨텍스트 목록에서 다음 UMS 스레드 컨텍스트를 반환합니다. |
GetUmsCompletionListEvent |
지정된 UMS 완료 목록과 연결된 이벤트에 대한 핸들을 검색합니다. |
QueryUmsThreadInformation |
지정된 UMS 작업자 스레드에 대한 정보를 검색합니다. |
SetUmsThreadInformation |
지정된 UMS 작업자 스레드에 대한 애플리케이션별 컨텍스트 정보를 설정합니다. |
UmsSchedulerProc |
UMS 완료 목록과 연결된 애플리케이션 정의 UMS 스케줄러 진입점 함수입니다. |
UmsThreadYield |
호출하는 UMS 작업자 스레드가 실행 중인 UMS 스케줄러 스레드에 대한 제어를 생성합니다. |
새 구조체
구조체 | 설명 |
---|---|
CACHE_RELATIONSHIP |
캐시 특성을 설명합니다. |
GROUP_AFFINITY |
스레드의 선호도와 같은 프로세서 그룹별 선호도를 포함합니다. |
GROUP_RELATIONSHIP |
프로세서 그룹에 대한 정보를 포함합니다. |
NUMA_NODE_RELATIONSHIP |
프로세서 그룹의 NUMA 노드에 대한 정보를 포함합니다. |
PROCESSOR_GROUP_INFO |
프로세서 그룹의 프로세서 수와 선호도를 포함합니다. |
PROCESSOR_NUMBER |
프로세서 그룹의 논리 프로세서를 나타냅니다. |
PROCESSOR_RELATIONSHIP |
프로세서 그룹 내의 선호도에 대한 정보를 포함합니다. |
SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX |
논리 프로세서 및 관련 하드웨어의 관계에 대한 정보를 포함합니다. |
UMS_CREATE_THREAD_ATTRIBUTES |
UMS 작업자 스레드의 특성을 지정합니다. |
UMS_SCHEDULER_STARTUP_INFO |
UMS 스케줄러 스레드에 대한 특성을 지정합니다. |