Windows Server 2008 R2의 새로운 기능 ~ 온라인 서버 개발자로서 흥미로운 것
Upcoming SlideShare
Loading in...5
×
 

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

on

  • 1,549 views

사내 스터디

사내 스터디

Statistics

Views

Total Views
1,549
Views on SlideShare
1,549
Embed Views
0

Actions

Likes
0
Downloads
7
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

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