Microsoft MVP성태의 닷넷 이야기
Windows: 42. Concurrency Runtime [링크 복사], [링크+제목 복사],
조회: 24787
글쓴 사람
정성태 (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

비밀번호

댓글 작성자
 




... 106  107  108  109  110  111  112  113  114  115  116  117  [118]  119  120  ...
NoWriterDateCnt.TitleFile(s)
11066정성태10/17/201628886Windows: 122. 윈도우 운영체제의 시간 함수 (3) - QueryInterruptTimePrecise, QueryInterruptTime 함수파일 다운로드1
11065정성태10/15/201633411Windows: 121. 윈도우 운영체제의 시간 함수 (2) - Sleep 함수의 동작 방식 [1]
11064정성태10/14/201625805.NET Framework: 610. C# - WaitOnAddress Win32 API 사용파일 다운로드1
11063정성태10/14/201641748Windows: 120. 윈도우 운영체제의 시간 함수 (1) - GetTickCount와 timeGetTime의 차이점 [5]파일 다운로드1
11062정성태10/12/201621635오류 유형: 361. WCF .svc 호출 시 Could not find a base address that matches scheme net.tcp 예외
11061정성태10/12/201635021오류 유형: 360. IIS - 500.19 오류 (0x80070021)
11060정성태10/12/201626899오류 유형: 359. WCF - .svc 요청시 404 Not Found
11059정성태10/11/201632154.NET Framework: 609. WPF - 다중 스레드 환경에서 데이터 바인딩의 INotifyPropertyChanged.PropertyChanged에 대한 배려 [1]파일 다운로드1
11058정성태10/8/201626810개발 환경 구성: 303. Windows 10 Bash Shell - 한글 환경을 영문으로 바꾸고 싶다면?
11057정성태10/8/201619873오류 유형: 358. Windows 10 bash shell - sudo: unable to resolve host ...
11056정성태10/8/201624831개발 환경 구성: 302. Windows 10 bash shell 시작 시 [...] packages can be updated.
11055정성태10/8/201626128.NET Framework: 608. double 값을 구할 때는 반드시 피연산자를 double로 형변환! [6]
11054정성태10/5/201630257개발 환경 구성: 301. "Let's Encrypt" SSL 인증서를 Azure Cloud Services(classic)에 업데이트하는 방법
11053정성태10/5/201625022.NET Framework: 607. C# try/catch/finally의 IL 코드 표현
11052정성태9/27/201638522개발 환경 구성: 300. C# DLL에서 Win32 C/C++처럼 dllexport 함수를 제공하는 방법 [7]파일 다운로드1
11051정성태9/25/201625423개발 환경 구성: 299. docker - c:\programdata\docker\windowsfilter 폴더 정리하는 방법파일 다운로드1
11050정성태9/24/201630630VC++: 101. 반올림하지 않고 double 변수 값 출력하는 방법 [3]
11049정성태9/24/201624530오류 유형: 357. 윈도우 백업 시 오류 - 0x81000037
11048정성태9/24/201626085VC++: 100. 전역 변수 유형별 실행 파일 크기 차이점
11047정성태9/21/201630498기타: 61. algospot.com - 양자화(Quantization) 문제 [2]파일 다운로드1
11046정성태9/15/201631571개발 환경 구성: 298. Windows 10 - bash 실행 시 시작 디렉터리 자동 변경
11045정성태9/15/201624129Windows: 119. Windows 10 - bash 명령어 창을 실행했는데 바로 닫히는 경우
11044정성태9/15/201624253VS.NET IDE: 112. Visual Studio 확장 - 편집 화면 내에서 링크를 누르면 외부 웹 브라우저에서 열기
11043정성태9/15/201624079.NET Framework: 606. .NET 스레드 콜 스택 덤프 (7) - ClrMD(Microsoft.Diagnostics.Runtime)를 이용한 방법 [1]파일 다운로드1
11042정성태9/14/201622419오류 유형: 356. Unknown custom metadata item kind: 6
11041정성태9/10/201623492.NET Framework: 605. CLR4 보안 - yield 구문 내에서 SecurityCritical 메서드 사용 불가 - 2번째 이야기
... 106  107  108  109  110  111  112  113  114  115  116  117  [118]  119  120  ...