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

1,551 views

Published on

사내 스터디

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,551
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
13
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

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

×