Windows 7 및 Windows Server 2008 R2에는 프로세스 및 스레드에 대한 다음과 같은 새로운 프로그래밍 요소가 포함되어 있습니다.
새 기능
Windows 7 및 Windows Server 2008 R2의 64비트 버전은 단일 컴퓨터에서 64개 이상의 논리 프로세서를 지원합니다. 자세한 내용은 프로세서 그룹참조하세요.
UMS(사용자 모드 예약)는 애플리케이션이 자체 스레드를 예약하는 데 사용할 수 있는 간단한 메커니즘입니다. 자세한 내용은 User-Mode 예약참조하세요.
새 기능
프로세서 및 프로세서 그룹과 함께 사용되는 새로운 함수는 다음과 같습니다.
| 기능 | 묘사 |
|---|---|
|
CreateRemoteThreadEx |
다른 프로세스의 가상 주소 공간에서 실행되는 스레드를 만들고 필요에 따라 프로세서 그룹 선호도와 같은 확장 특성을 지정합니다. |
|
GetActiveProcessorCount |
프로세서 그룹 또는 시스템의 활성 프로세서 수를 반환합니다. |
|
GetActiveProcessorGroupCount |
시스템의 활성 프로세서 그룹 수를 반환합니다. |
|
GetCurrentProcessorNumberEx |
호출 스레드가 실행 중인 논리 프로세서의 프로세서 그룹 및 수를 검색합니다. |
|
GetLogicalProcessorInformationEx |
논리 프로세서 및 관련 하드웨어의 관계에 대한 정보를 검색합니다. |
|
최대 프로세서 수 가져오기 |
프로세서 그룹 또는 시스템에 있을 수 있는 논리 프로세서의 최대 수를 반환합니다. |
| 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 스케줄러 스레드에 대한 제어를 생성합니다. |
새 구조체
| 구조 | 묘사 |
|---|---|
|
캐시_관계 |
캐시 특성을 설명합니다. |
|
GROUP_AFFINITY |
스레드의 선호도와 같은 프로세서 그룹별 선호도를 포함합니다. |
|
GROUP_RELATIONSHIP |
프로세서 그룹에 대한 정보를 포함합니다. |
|
NUMA_NODE_RELATIONSHIP |
프로세서 그룹의 NUMA 노드에 대한 정보를 포함합니다. |
|
프로세서_그룹_정보 |
프로세서 그룹의 프로세서 수와 선호도를 포함합니다. |
|
PROCESSOR_NUMBER |
프로세서 그룹의 논리 프로세서를 나타냅니다. |
|
PROCESSOR_RELATIONSHIP |
프로세서 그룹 내의 선호도에 대한 정보를 포함합니다. |
|
SYSTEM_LOGICAL_PROCESSOR_INFORMATION_EX |
논리 프로세서 및 관련 하드웨어의 관계에 대한 정보를 포함합니다. |
|
UMS_CREATE_THREAD_ATTRIBUTES |
UMS 작업자 스레드에 대한 특성을 지정합니다. |
|
UMS_SCHEDULER_STARTUP_INFO |
UMS 스케줄러 스레드에 대한 특성을 지정합니다. |