Microsoft MVP성태의 닷넷 이야기
Windows: 42. Concurrency Runtime [링크 복사], [링크+제목 복사],
조회: 21721
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

Concurrency Runtime and Windows 7
; http://blogs.msdn.com/nativeconcurrency/archive/2009/02/04/concurrency-runtime-and-windows-7.aspx

64개 이상의 프로세서를 지원하는 것과 사용자 모드 스케쥴러에 대한 개략적인 설명을 해주고 있습니다.

64개 이상의 프로세서 지원은, CPU를 그룹별로 나누어서 구현을 하는 식이어서 명시적으로 그룹을 지정하지 않게 되면 결국 하나의 그룹에 할당되어 64개 제한을 받게 된다고 합니다. 제가 생각해도 ... 명시적으로 그룹을 지정하는 것은 꽤나 번거로운 일이 될 것 같은데요. 다행히도 이런 작업을 이미 "Concurrency Runtime"에서 제공개 준다고 합니다. 즉, CR 기반으로 응용 프로그램을 작성하게 되면 Runtime 레벨에서 CPU 그룹을 지정해 주기 때문에 256개까지의 CPU를 사용할 수 있다는 이야기입니다.

UMS는 더 재미있는데요. ^^
Windows 7에서는 CR 기반으로 작성된 응용 프로그램은 스케쥴링을 사용자 모드에서도 가능하게 해주고 있습니다. UMS 레벨에서 다음 활성화될 태스크를 지정하기 때문에 더욱 빠르게 작업 간의 스위칭이 가능하게 만들었다고 합니다. 결국, 커널 스레드는 OS로부터 할당된 퀀텀만큼의 시간을 제대로 활용하게 되고, 그 커널 스레드에서 사용자 모드 스레드가 자유롭게 스위칭이 발생하는 것입니다.

음... 다중 프로세스 간에는 안 될 것 같고, 아마도 단일 프로세스에서 다중 스레드를 사용하는 응용 프로그램들의 성능이 더욱 좋아질 것으로 보입니다.

참고로, 다음의 문서도 공개되어 있습니다.

"Supporting Systems That Have More Than 64 Processors"
; http://download.microsoft.com/download/a/d/f/adf1347d-08dc-41a4-9084-623b1194d4b2/MoreThan64proc.docx








[최초 등록일: ]
[최종 수정일: 4/10/2022]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 46  47  48  49  50  51  52  53  54  55  56  57  58  [59]  60  ...
NoWriterDateCnt.TitleFile(s)
12498정성태1/20/202117849.NET Framework: 1012. .NET Core Kestrel 호스팅 - 비주얼 스튜디오의 Kestrel/IIS Express 프로파일 설정
12497정성태1/20/202121748.NET Framework: 1011. C# - OWIN Web API 예제 프로젝트 [1]파일 다운로드2
12496정성태1/19/202118553.NET Framework: 1010. .NET Core 콘솔 프로젝트에서 Kestrel 호스팅 방법 [1]
12495정성태1/19/202120831웹: 40. IIS의 HTTP/2 지원 여부 - h2, h2c [1]
12494정성태1/19/202120173개발 환경 구성: 522. WSL 2 인스턴스와 호스트 측의 Hyper-V에 운영 중인 VM과 네트워크 연결을 하는 방법 [2]
12493정성태1/18/202118259.NET Framework: 1009. .NET 5에서의 네트워크 라이브러리 개선 (1) - HTTP 관련 [1]파일 다운로드1
12492정성태1/17/202117127오류 유형: 695. ASP.NET 0x80131620 Failed to bind to address
12491정성태1/16/202118678.NET Framework: 1008. 배열을 반환하는 C# COM 개체의 메서드를 C++에서 사용 시 메모리 누수 현상 [1]파일 다운로드1
12490정성태1/15/202117579.NET Framework: 1007. C# - foreach에서 열거 변수의 타입을 var로 쓰면 object로 추론하는 문제 [1]파일 다운로드1
12489정성태1/13/202120387.NET Framework: 1006. C# - DB에 저장한 텍스트의 (이모티콘을 비롯해) 유니코드 문자가 '?'로 보인다면? [1]
12488정성태1/13/202118900.NET Framework: 1005. C# - string 타입은 shallow copy일까요? deep copy일까요? [2]파일 다운로드1
12487정성태1/13/202117335.NET Framework: 1004. C# - GC Heap에 위치한 참조 개체의 주소를 알아내는 방법파일 다운로드1
12486정성태1/12/202119942.NET Framework: 1003. x64 환경에서 참조형의 기본 메모리 소비는 얼마나 될까요? [1]
12485정성태1/11/202119405Graphics: 38. C# - OpenCvSharp.VideoWriter에 BMP 파일을 1초씩 출력하는 예제 [2]파일 다운로드1
12484정성태1/9/202121673.NET Framework: 1002. C# - ReadOnlySequence<T> 소개파일 다운로드1
12483정성태1/8/202117703개발 환경 구성: 521. dotPeek - 훌륭한 역어셈블 소스 코드 생성 도구
12482정성태1/8/202119467.NET Framework: 1001. C# - 제네릭 타입/메서드에서 사용 시 경우에 따라 CS8377 컴파일 에러
12481정성태1/7/202119393.NET Framework: 1000. C# - CS8344 컴파일 에러: ref struct 타입의 사용 제한 메서드파일 다운로드1
12480정성태1/6/202122192.NET Framework: 999. C# - ArrayPool<T>와 MemoryPool<T> 소개파일 다운로드1
12479정성태1/6/202119471.NET Framework: 998. C# - OWIN 예제 프로젝트 만들기
12478정성태1/5/202122561.NET Framework: 997. C# - ArrayPool<T> 소개파일 다운로드1
12477정성태1/5/202123456기타: 79. github 코드 검색 방법 [1]
12476정성태1/5/202119123.NET Framework: 996. C# - 닷넷 코어에서 다른 스레드의 callstack을 구하는 방법파일 다운로드1
12475정성태1/5/202123624.NET Framework: 995. C# - Span<T>와 Memory<T> [1]파일 다운로드1
12474정성태1/4/202120036.NET Framework: 994. C# - (.NET Core 2.2부터 가능한) 프로세스 내부에서 CLR ETW 이벤트 수신 [1]파일 다운로드1
12473정성태1/4/202118932.NET Framework: 993. .NET 런타임에 따라 달라지는 정적 필드의 초기화 유무 [1]파일 다운로드1
... 46  47  48  49  50  51  52  53  54  55  56  57  58  [59]  60  ...