Microsoft MVP성태의 닷넷 이야기
Windows: 42. Concurrency Runtime [링크 복사], [링크+제목 복사],
조회: 26798
글쓴 사람
정성태 (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)
12881정성태12/17/202120124개발 환경 구성: 618. WSL Ubuntu 20.04에서 파이썬을 위한 uwsgi 설치 방법 (2)
12880정성태12/16/202122140VS.NET IDE: 170. Visual Studio에서 .NET Core/5+ 역어셈블 소스코드 확인하는 방법
12879정성태12/16/202127930오류 유형: 774. Windows Server 2022 + docker desktop 설치 시 WSL 2로 선택한 경우 "Failed to deploy distro docker-desktop to ..." 오류 발생
12878정성태12/15/202120664개발 환경 구성: 617. 윈도우 WSL 환경에서 같은 종류의 리눅스를 다중으로 설치하는 방법
12877정성태12/15/202122119스크립트: 36. 파이썬 - pymysql 기본 예제 코드
12876정성태12/14/202122415개발 환경 구성: 616. Custom Sources를 이용한 Azure Monitor Metric 만들기
12875정성태12/13/202119818스크립트: 35. python - time.sleep(...) 호출 시 hang이 걸리는 듯한 문제
12874정성태12/13/202119270오류 유형: 773. shell script 실행 시 "$'\r': command not found" 오류
12873정성태12/12/202121744오류 유형: 772. 리눅스 - PATH에 등록했는데도 "command not found"가 나온다면?
12872정성태12/12/202120487개발 환경 구성: 615. GoLang과 Python 빌드가 모두 가능한 docker 이미지 만들기
12871정성태12/12/202120166오류 유형: 771. docker: Error response from daemon: OCI runtime create failed
12870정성태12/9/202119481개발 환경 구성: 614. 파이썬 - PyPI 패키지 만들기 (4) package_data 옵션
12869정성태12/8/202121895개발 환경 구성: 613. git clone 실행 시 fingerprint 묻는 단계를 생략하는 방법
12868정성태12/7/202120921오류 유형: 770. twine 업로드 시 "HTTPError: 400 Bad Request ..." 오류 [1]
12867정성태12/7/202120558개발 환경 구성: 612. 파이썬 - PyPI 패키지 만들기 (3) entry_points 옵션
12866정성태12/7/202128468오류 유형: 769. "docker build ..." 시 "failed to solve with frontend dockerfile.v0: failed to read dockerfile ..." 오류
12865정성태12/6/202121457개발 환경 구성: 611. 파이썬 - PyPI 패키지 만들기 (2) long_description, cmdclass 옵션
12864정성태12/6/202119316Linux: 46. WSL 환경에서 find 명령을 사용해 파일을 찾는 방법
12863정성태12/4/202120730개발 환경 구성: 610. 파이썬 - PyPI 패키지 만들기
12862정성태12/3/202118028오류 유형: 768. Golang - 빌드 시 "cmd/go: unsupported GOOS/GOARCH pair linux /amd64" 오류
12861정성태12/3/202122658개발 환경 구성: 609. 파이썬 - "Windows embeddable package"로 개발 환경 구성하는 방법 [1]
12860정성태12/1/202117720오류 유형: 767. SQL Server - 127.0.0.1로 접속하는 경우 "Access is denied"가 발생한다면?
12859정성태12/1/202127061개발 환경 구성: 608. Hyper-V 가상 머신에 Console 모드로 로그인하는 방법
12858정성태11/30/202124755개발 환경 구성: 607. 로컬의 USB 장치를 원격 머신에 제공하는 방법 - usbip-win
12857정성태11/24/202121424개발 환경 구성: 606. WSL Ubuntu 20.04에서 파이썬을 위한 uwsgi 설치 방법
12856정성태11/23/202123851.NET Framework: 1121. C# - 동일한 IP:Port로 바인딩 가능한 서버 소켓 [2]
... 46  [47]  48  49  50  51  52  53  54  55  56  57  58  59  60  ...