Windows Server 2008 R2의 새로운 기능 ~ 온라인 서버 개발자로서 흥미로운 것

  • 1,144 views
Uploaded on

사내 스터디

사내 스터디

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,144
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
7
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Windows Server 2008 R2의 새로운 기능
    ~ 온라인 서버 개발자로서 흥미로운 것
    Microsoft Visual C++ MVP
    마이에트엔터테이먼트
    Server Programmer
    최흥배
  • 2.
    • Windows 7과 같은 커널 사용
    • 3. 64 bit만 지원( Windows 7은 32비트도 지원 )
    • 4. 최대 256개의논리 프로세서 지원
    • 5. 새로운 스레드스케쥴링( Windows 7 포함. 단 32비트는 안됨)
    • 6. 멀티 코어, 매니 코어에서 보다 더 효율적으로 활용
    • 7. UMS ( User Mode Scheduler ) 지원
    • 8. NUMA 지원
    • 9. MS는 Windows 7부터 병렬 처리 능력을 향상 시키고 있다.
    http://jacking.tistory.com/355
  • 10. R2에서 Server Programmer가 가장 흥미를 가질 만한 기술은…
    UMS
    NUMA
  • 11. OS의 스레드 모델을 기억하고 있나요?
    Operationg System에서 본 적이 있을 겁니다.
    기억나지 않는 분들을 위해 잠시 설명하겠습니다. ^^
  • 12. 다-대-일( Many-to-One) 모델
    Thread
    Thread
    Thread
    Thread
    Kernel Thread
  • 13. 일-대-일( One-to-One) 모델
    Thread
    Thread
    Thread
    Thread
    Kernel Thread
    Kernel Thread
    Kernel Thread
    Kernel Thread
    Windows, OS/2
  • 14. 다-대-다( Many-to-Many) 모델
    Thread
    Thread
    Thread
    Thread
    Kernel Thread
    Kernel Thread
    솔라리스, IRIX, Digital Unix
  • 15. UMS
    ( User Mode Scheduler )
  • 16. CPU 이용 시에 I/O 조작, heap 할당 등
    Block
    유저 모드 스레드
    커널 모드 스레드
  • 17.
    • 이런 문제를 해결하기 위해 UMS 지원.
    • 18. UMS는 복수의 유저 모드 스레드와 대응하는 복수의 커널 모드 스레드 관리.
  • 유저 모드 스레드
    유저 모드 스레드
    Block
    커널 모드 스레드
    실행 중인 코어에서 Block가 발생하면 커널 모드에서 그 내용을 검지하여 대기 중의 다른 스레드를 실행.
  • 19. 유저 모드 스레드
    Call
    UMS에서는 시스템 콜이 호출되는 경우에만 대응하는 커널 스레드의컨텍스트를 변경한다.즉 유저 모드 스레드가 변경될 때마다 커널 모드 스레드가 변경 되지 않는다.
    커널 모드 1
    커널 모드 2
  • 20. 대기 중인 스레드의커널 모드에서의 Block이 풀리면
    대응하는 유저 모드 스레드는 Completion List에 등록되어
    코어에서 실행 중인 스레드가 종료하는 것을 기다린 후 다시 실행한다.
  • 21. NUMA
    ( Non-Uniform Memory Access )
  • 22.
    • 복수의 프로세서가 메모리, 디스크에 접근하면 Bus 등에 경합이 발생.
    • 23. 모든 CPU가 동일의 물리 메모리에 접근하면 병렬로 프로세서가 동작하여도 메모리 접근에서 블러킹 이 빈번하게 발생.
    • 24. 어느 정도 레벨까지는 코어 수에 따라서 선형적인 성능향상이 기대되지만 최종적으로는 병목이 발생하여 성능향상이 멈춤.
  • 25.
    • R2의 커널은 NUMA를 강하게 의식하여 설계.
    • 26. CPU의 “그룹화“ 개념을 사용하여 이런 상황을 OS도 일체화 하여 경감시킨다.
    • R2에서는 그룹화는 커널에 의해 결정.
    • 27. 하나의 논리 프로세서는 꼭 하나의 그룹에 속한다.
    • 28. 동일 코어 중의 프로세서, 동일 물리 프로세서 내의 코어, 물리적으로 가까운 논리 프로세서
    • R2의 기본 동작으로는 단일 스레드(Windows의 스레드)는 꼭 단일 그룹을 대상으로 동작하고, 단일 프로세스(Windows의 프로세스)는 64 비트 어피니티를 사용한 복수 그룹에 할당 되어 동작한다.
    • 29. NUMA 시스템 API를 사용하여 개발자가 어피니티를 취득하여 설정할 수 있다.
    http://www.microsoft.com/whdc/system/Sysinternals/MoreThan64proc.mspx
  • 30. 참고 url
    http://blogs.msdn.com/tsmatsuz/archive/2009/03/27/windows-server-2008-r2-and-windows-7-cpu-architecture.aspx