Welcome to TechNet Blogs Sign in | Join | Help

Windows 성능 옵션(프로그램 vs 백그라운드 서비스)을 이해하다

Windows NT부터 Windows 7에서 까지 ‘시스템 속성 > 성능 > 설정 > 성능 옵션 > 고급 > 프로세서 사용 계획’에 ‘프로그램’과 ‘백그라운드 서비스’ 옵션 두 가지 중 하나를 사용자가 선택할 수 있습니다. 이 두 개의 옵션에 대해서 여러 의견(?)들이 난무하는데요, 이번 포스팅에서는 이 두 가지 옵션이 어떤 의미를 가지는지 그리고 여러분은 어떤 상황에서 두 옵션 중 하나를 선택할 것인지를 설명 드릴까 합니다.

image 

[그림 1. Windows 7, 프로세서 사용 계획]

잘못된 오해
많은 분들께서 이 옵션에 대해서 아래와 같이 잘못 이해하고 계십니다.

{‘프로그램’은 실제 사용자가 실행하는 응용 프로그램이고 ‘백그라운드 서비스’는 ‘서비스 관리자(services.msc)’에서 실행되는 서비스를 의미한다. 그래서 프로세서 사용계획의 설정에 의해 ‘프로그램’을 선택하면 사용자 프로그램에 더 많은 CPU 사용량을 할당하고 ‘백그라운드 서비스’를 선택하면 서비스(Service)에 더 많은 CPU 사용량을 할당한다} => NO, NO, NO 이렇게 이해하고 계시면 됩니다.

진실을 말씀 드리겠습니다.
(이 옵션을 이해하기 위해서는 먼저 스레드와 컨텍스트 스위치 두가지 개념을 이해하셔야 합니다 그래서 이 단어의 정의를 설명드리면서 옵션을 이해하도록 하겠습니다)
우리가 사용하는 프로그램이란 것은 알고 보면 실행 파일이 프로세스(Process)로 만들어 진 후 스레드(Thread)에서 명령이 실행되는 것 입니다, 여기서 스레드란 명령어가 CPU를 사용하여 실행되는 단위로 정의 할 수 있습니다. (그밖에 많은 복잡한 이야기들이 있지만 여기서는 이정도 까지만 이해하시면 되겠습니다)

우리가 컴퓨터를 사용할 때 우리는 모르지만 네트워크 처리, HDD 처리, 커널에서의 작업, 응용프로그램 처리 등등 너무나도 많은 작업들이 동시 다발적으로 이뤄지고 있습니다. 다른 예로, 사용자가 인터넷에서 파일을 다운로드 하면서 Word와 WMP를 함께 사용하는 경우도 생각해 볼 수 있습니다. 이러한 것들은 모두 스레드 단위로 작업이 이뤄지며 작업에 따라 스레드 처리 시간이 길수도 짧을 수도 있습니다.

일상 생활에서도 금방 끝나는 일이 있고 오래 걸리는 일들이 있듯이 스레드도 처리 하는데 시간이 긴 작업과 짧은 작업들이 섞여 있는데 만약 그림처럼 CPU에서 하나의 스레드가 끝날 때까지 다른 스레드들은 기다려야 한다면 스레드 A가 끝날 때 까지는 스레드 B, C는 기다리고만 있어야 할 것 입니다.

image

[그림 2]

위 그림 2처럼 하나의 스레드가 자신의 명령이 끝날 때가지 계속 CPU 독점해서 사용한다고 하면 오랜 시간 동안 다른 스레드들(프로그램)이 실행되지 못할 것입니다, 그렇게 되면 다른 프로그램의 성능에 영향을 주겠죠? 특히 스레드 B의 입장에서는 잠시 CPU를 사용하면 금방 끝날 일인데 앞에서 스레드 A의 작업이 끝나기를 기다려야 하니 답답한 노릇일 것입니다.

그래서 좀더 효율적으로 동시 작업이 가능 하도록 하나의 스레드가 시작해서 끝날 때까지 무작정 CPU를 사용하는 것이 아니고 그림 3. 처럼 스레드의 실행 시간을 짧은 시간 단위로 잘라낸 뒤 순서대로 세워 놓고 실행하다 자신에게 할당된 시간이 끝나면 하던 일을 멈추고 다음 스레드에게 CPU를 사용할 수 있도록 한 뒤 다시 자기 차례가 돌아오면 자신의 일을 다시 합니다. 스레드가 CPU를 얼마 동안 사용할지를 정의한 시간 단위를 바로 퀀텀(Quantum)이라고 합니다. 그러면 그림에서처럼 스레드 B는 다음 순번에서 바로 작업을 끝낼 수 있습니다. (그림 3의 ‘A B C A B C A C A C A A A’ 순서를 보시면 이해가 좀 쉬우실 것입니다)

image

[그림 3]

이 퀀텀을 사용자가 길게도 혹은 짧게도 설정 할 수 있는데 이것이 바로 ‘프로세스 사용 계획 옵션’입니다. 그래서 ‘프로그램’으로 설정하면 모든 스레드의 퀀텀을 짧게(6, 대략 2 Click) 설정하고 반대로 ‘백그라운드 서비스’로 설정하면 길게(36, 대략 12 Click) 설정 합니다.

그렇다면 퀀텀(스레드 실행 시간)을 짧게 혹은 길게 설정 하는 것은 어떤 차이가 있을까요?

차이와 그에 따른 장단 점을 이해 하시려면 Context Switch라는 의미를 이해 해야 합니다.

image

[그림 4, Context Switch]

그림 4.와 같이 퀀텀에 정의된 시간이 끝나 CPU를 떠나야 하는 스레드 A는 CPU를 떠나기 전에 자신이 어디까지 작업을 했는지를 저장합니다, 그래야 다음 차례에 다시 A가 실행될 때 앞에서 마지막으로 진행했던 부분부터 다시 시작 할 수 있기 때문입니다, 또한 B는 자신이 앞에서 실행 했던 부분부터 다시 시작 하기 위해 앞에서 저장했던 실행정보를 불러옵니다, 바로 이런 일련의 작업을 컨텍스트 스위치(Context Switch)라고 합니다.

이 Context Switch 자체는 미약(?)하기는 하지만 전체적으로 보면 성능에 영향을 줄 수 있는 작업입니다. 그래서 만약 다른 작업은 거의 없고 CPU에서 스레드를 처리하는데 긴 시간이 필요한 단일 응용프로그램(SQL Server 혹은 그래픽 랜더링 작업 같은)만 실행하는 환경이라면 ‘백그라운드 서비스’로 설정해 Context Swith를 최소화하고 해당 프로그램의 스레드가 긴 시간 CPU를 사용 할 수 있도록 하는 것이 효과적일 것입니다.

반대로 일반 사용자의 컴퓨터 사용 패턴은 아주 소소한 아이콘 클릭 같은 작업을 포함해 IE같은 웹 브라우저 사용과 함께 음악을 듣는 것과 같이 동시에 여러 프로그램을 실행하는 패턴을 보입니다. 이런 경우 스레드에 긴 시간을 주면 스레드가 끝나기를 기다리는 시간이 오래 걸리기 때문에 다른 작업으로 넘어가는데 시간이 걸려 반응속도를 늦출 수 있지만, 일정한 시간 내에 여러 스레드들이 실행 될 수 있도록 퀀텀을 작게 설정하면 사용자 측면에서 반응속도를 높일 수 있습니다..

두 옵션은 아래와 같이 정의 할 수 있습니다
프로그램: 여러 작업을 동시에 수행하는 일반 사용자 환경에서 쾌적한(?) 반응 속도를 보여준다.
백그라운드 서비스: 계속해서 한가지 작업을 실행하는 응용프로그램을 실행 하는 경우 높은 처리 효율을 가진다.

* 이 두 옵션을 그 반대의 환경에 설정하였다면 반드시 나쁘다고는 말할 수 없겠지만 성능 효율면에서는 떨어질 것입니다.

그래서 기본적으로 Windows 2000 Professional, XP, Vista그리고 Windows 7과 같이 일반 사용자를 위한 Windows 클라이언트에서는  ‘프로그램’으로 설정 되어 있으며 Windows Server 2000, 2003, 2008에서는 ‘백그라운드 서비스’로 설정 되어 있습니다. 만약 윈도우 클라이언트지만 그래픽 랜더링 작업 같이 CPU를 많이 사용하는 하나의 작업을 주로 사용하는 환경이라면 ‘백그라운드 서비스’를 선택 할 수 있을 것이고 반대로 윈도우 서버지만 클라이언트 환경같이 사용한다면 ‘프로그램’ 옵션을 선택하면 성능에 효과적일 것입니다.

조금 자세한 추가 설명
‘프로그램’으로 설정 되어 있으면 스레드는 2 Clock interval 기간 동안 실행이 가능하며 ‘백그라운드 서비스’는 12 Clock interval 기간 동안 실행할 수 있습니다.

퀀텀에서는 Clock interval의 3배수로 설정됩니다, 그래서 ‘프로그램’으로 설정 되어 있으면 Short 값인 6(‘실제 Clock 2개’ x 3배수)을 가지고, ‘백그라운드 서비스’로 설정 되어 있으면 퀀텀 Long 값인 36(‘실제 Clock 12개’ x 3배수)을 가집니다. 그래서 클럭인터럽트가 걸릴 때마다 퀀텀 값을 3단위로 줄여가 결국 0이 되면 일단 그 스레드가 이번에 실행될 시간은 모두 끝내고 기다리고 있던 다음 스레드가 실행 되도록 합니다.

이해를 돕고자 상당 부분 단순화 썼습니다. 좀더 자세한 정보가 필요하신 분들께서는 아래  Windows Internals의 Thread 부분을 참고 하시기 바랍니다.

[참고문서]
Windows Internals 4’th, Chapter 6, Controlling the Quantum

윈도우 7 출시 예정일 발표!

Windows 7 Team Blog

Windows 7 Team 블로그에서 Windows 7과 Windows Server 2008 R2이 7월 둘째 중에 RTM될 것이며, 10월 22일 GA(어디서나 어떤 형태로든 구입 가능한) 될 것이라고 발표 되었습니다.

Obviously, Release To Manufacturing (RTM) is an important milestone on the path to GA. We anticipate that we’ll be able to make the RTM code for Windows 7 available to our partners sometime in the 2nd half of July. We also expect to be able to make RTM code for Windows Server 2008 R2 available to our partners in this time frame as well.

 

두 제품은 동일 커널(6.1) 라인으로 만들어 지고 있고 여러 새로운 기능들이 두 제품 안에서 구동되므로 동일한 RTM과 출시일을 가지게 됩니다.

이제 Windows 7과 Windows Server 2008 R2의 탄생이 가까이 왔습니다!

Easy Transfer를 이용한 XP에서 Windows 7으로 마이그레이션

이전 ‘윈도우 XP, Vista에서 윈도우7으로 업그레이드’에서 말씀 드린바 대로 오늘은 Easy Transfer를 이용해 XP에서 Windows 7으로 마이그레이션 하는 방법을 설명 드리겠습니다.

마이그레이션이란 이전 윈도우(XP, Vista)에 있던 설정이나 데이타를 새로운 H/W 혹은 운영체제(Windows 7)로 옮기는 작업이라고 말씀 드렸는데요, Easy Transfer을 이용하면 기본 윈도우 설정 정보는 물론이고 이전 컴퓨터에서 사용하던 데이타를 옮길 수 있습니다. 그러나 설치 되어 있는 응용프로그램은 옮길 수 없으므로 마이그레이션 전에 새로 설치 해야 합니다.

Easy Transfer에서 전송 가능한 파일과 설정

파일 및 폴더
전자 메일 설정
연락처 및 메시지
프로그램 설정
사용자 계정 및 설정
인터넷 설정 및 즐겨찾기
음악
그림 및 비디오

 

Easy Transfer는 컨셉은 간단합니다, Easy Transfer를 이용해 윈도우 XP의 설정과 하드디스크의 데이터를 전용 USB 케이블을 이용해 바로 새로운 컴퓨터로 옮기거나 아니면 설정과 데이타를 하나의 .MIG 파일로 만들어 USB 같은 하드디스크에 저장한 뒤 그 MIG 파일을 새 컴퓨터에 옮겨 Easy Transfer를 이용해 풀어 놓는 방법입니다. 단순하게 보면 백업&복구와 유사한 컨셉으로 볼 수 있지만 윈도우 설정이나 프로파일까지 그대로 옮길 수 있다는 것이 다릅니다.

Easy Transfer로 데이터를 옮기는 방법 3가지

Easy Transfer USB cable을 이용한 방법

: Old 컴퓨터(XP, Vista)와 New 컴퓨터(윈도우 7) 사이에 Easy Transfer USB cable을 연결해서 마이그레이션을 하는 방법입니다. 별도의 Easy Transfer USB cable이 있어야 하는 방법입니다.

clip_image002

[그림 1] Easy Transfer USB cable

Network를 이용한 방법

: Old 컴퓨터와 New 컴퓨터 사이 마이그레이션 할 데이타를 네트워크를 통해 전송하는 방법 입니다. Old 컴퓨터와 New 컴퓨터 모두 네트워크에 공존하고 있다면 간단하게 사용할 수 있는 방법입니다. 그러나 네트워크에 영향을 줄 수 있으므로

외장 하드디스크를 이용한 방법

: USB 메모리 혹은 디스크나 네트워크 공유를 이용해 직접 마이그레이션 할 파일을 저장했다가 새로 설치된 Windows 7에서 저장된 데이타를 풀어 놓는 방식 입니다.

[1] Windows XP에서 Easy Transfer 마이그레이션 실행 (외장 하드디스크를 이용한 방법)

*Easy Transfer를 실행하기 위해서는 Windows 7 설치 CD에 있는 Support\Migwiz 폴더에 가시면 migwiz.exe를 실행 합니다.

[그림 2, 왼쪽] migwiz.exe를 실행한 모습 [그림 3, 오른쪽] 마이그레이션 할 방법을 선택 할 수 있습니다. 여기서는 ‘외부 하드 디스크 또는 USB 플래시 드라이브’를 선택해 진행하도록 하겠습니다.

clip_image004clip_image006

[그림 4, 오른쪽] 전송할 항목을 확인 합니다.

clip_image008

[그림 5, 오른쪽, 그림 6, 왼쪽] 아래 그림에서처럼 고급을 클릭하시면 필요한 파일폴더를 추가로 마이그레이션 항목에 추가할 수 있습니다.image clip_image012

[그림 7, 오른쪽] 보안을 위해 MIG파일을 이용하기 위한 암호를 설정 합니다. [그림 8, 왼쪽] 파일을 저장하고 나면 ‘파일 전송’이 완료 됩니다.clip_image014clip_image020

[2] Windows 7으로 마이그레이션

[그림 9, 오른쪽] 새로운 컴퓨터에서 마이그레이션 ‘This is my new computer’를 선택합니다. [그림 10, 왼쪽] 저장된 MIG 파일로 마이그레이션 작업을 ‘Yes’를 선택합니다.image image

[그림 11, 오른쪽] 새 컴퓨터에 옮길 계정과 파일들을 선택합니다 [그림 12, 왼쪽] 마이그레이션 중

image image

[그림 13] 마이그레이션이 끝난 뒤 리포트를 볼 수 있습니다.

image

[그림 14] 로그 오프하고 나니 XP에 있던 계정들이 나타났습니다.

image

*그리고 작업 전에는 중요한 데이타 백업은 빼먹지 않는 센스~ :)

 

[참고문서]
Step-by-Step: Windows 7 Upgrade and Migration
http://technet.microsoft.com/en-us/library/dd446674.aspx

Sankim 버로우 at home ㅜㅜ

sankim이 제대로 된 감기에 걸려 꼼짝도 못하고 있습니다.

에어콘 바람을 맞으면 꼭 이맘때 감기에 걸리는데 올해도 어김없이 그분이 오셨습니다. 블로깅은 보통 업무 시간이 끝난 이후 밤에 쓰고 다음날 낮에 검토(혹은 감수) 한 뒤 올리는데 최근에는 운동도 못 가고 방안에 버로우 한 채로 누워만 있는 관계로 블로깅이 정지(?) 상태 입니다 ㅜㅜ 블로깅을 못하는 대신 누워서 앞으로 블로그에서 어떤 이야기를 해볼까 구상해 봤습니다.

 

[구상(?)내용]

Sankim이 말하는 Inside Windows!.. 윈도우 주요 기능들의 내부에서 일어나는 작동 원리..  쓸게 많을 것 같은데 뭐 부터 쓸까?

인터뷰, windows 관련 인물 들과 인터뷰를 가져 보자, 흠.. 먼저 내 master 부터 시작해서 talee랑… 근데 그분들이 출연(?)해주실지는 의문…

윈도우 메모리, Virtual Address translation 부터 시작, 이걸 우선 설명 해야  PAE, /3GB 설명이 가능하다.. 근데 이걸 어떻게 쉽게 설명할 수 있을까???

Showstopper, 윈도우 탄생 비화를 블로그로 연재하자! 그런데 이런 쪽에 재주도 없고 너무 큰(?) 작업이 될까 봐  고민 중.. ㅜㅜ

Windows 7, 이건 할 이야기가 많을 것 같다..

엔지니어 internals.. 엔지니어 생활하면서 겸험한 여러 재미(?)있는 에피소드를 담아 보자.. 재미있을 것 같다..

 

구상은 창대 했는데 어디까지 할 수 있을지…

Posted by sankim | 5 Comments
Filed under:

4GB 제한의 진실, 32비트 Windows (XP, Vista, 7)클라이언트

지난 ‘Windows 메모리 FAQ’에서 Windows 메모리에 대한 이야기를 드렸는데요, 특히 Windows 클라이언트의 4GB 제한에 대해서 여러분들의 아주 뜨거운(?) 반응이 있었습니다. 그래서 지난 번에 약속 드린 ‘Easy Transfer를 이용한 마이그레이션’은 다음 포스팅으로 미루고 오늘은 ‘4GB 제한의 진실, 32비트 Windows 클라이언트‘라는 주제로 Q&A 형식으로 이야기를 나누도록 하겠습니다.

 

Q1) 왜 Windows 클라이언트는 4GB까지만 지원하나요?

1. Windows XP가 처음 출시된 초기만 해도 4 기가 바이트(GB) 메모리라는 게 서버에서도 거의 사용되지 않는 고사양의 메모리였으므로 4GB를 이상 지원을 고려할 필요가 없었습니다. (당시는 일반적으로 사용하는 서버의 메모리가 512MB 혹은 그 이하였던 시절 이였습니다, 64MB 서버도… ^^)

2. Windows XP SP2가 출시될 시점에 윈도우 클라이언트도 4GB 메모리 필요성의 조짐이 보였습니다, 그래서 당시 Windows 개발팀에서는 윈도우 클라이언트에서 4GB 이상 메모리 지원을 검토하였습니다.

3. 그런데 윈도우 클라이언트에서 4GB 이상의 메모리를 관리(Memory Management)하면 블루스크린(Crash), 시스템 행(System Hang), 부팅이 되지 않거나 혹은 비디오 카드 같은 장치의 드라이버 문제로 장치를 인식하지 못하는 문제가 빈번하게 발생하는 것을 볼 수 있었습니다. (대부분 Memory corruption)

4. 원인은 윈도우 클라이언트를 위해 만들어진 3'rd Party 디바이스 장치 드라이버(Driver)가 4GB 이상 메모리 환경을 고려하지 않고 만들어졌기 때문에 발생한 문제였습니다.

5. 이런 장치 드라이버 호환성 문제를 피하기 위해 윈도우 클라이언트(XP, Vista, 7)에서는 4GB까지만 메모리 관리(Memory Management)를 할 수 있도록 한 것 입니다.

 

Q2) 4GB메모리가 전부 보이지(인식)되지 않고 3(.xx)GB 정도로 보여요, 왜 그런가요?

아래 그림은 제 Windows 7에서 시스템 정보(msinfo32.exe)를 실행시켜 얻을 결과입니다, 실제 설치된 메모리는 4GB지만 윈도우가 이용할 수 있는 실제 메모리는 3GB로 인식하고 있습니다.

clip_image002

하나 더 아래 그림은 작업 관리자에서 나타난 값입니다, 마찬가지로 실제 메모리를 3GB 정도만 인식하고 있는 것을 볼 수 있습니다.

clip_image004

결론부터 말씀 드리면 이 현상의 원인은 컴퓨터의 칩셋(Chipset)과 연결된 장치(비디오 카드, Lan 카드 같은)가 가지고 있는 메모리 때문에 실제 장착된 메모리보다 적게 나타나는 것입니다. 윈도우는 '실제 메모리'에 나타난 '전체' 크기 만큼의 메모리만 사용할 수 있므며(즉 위와 같은 경우에는 전체 4GB를 사용하지 못합니다) 이는 하드웨어 이슈 입니다.

[이유는 아래와 같습니다]

어려운 이야기가 될 수 있으니 쉬운 이해를 위해 먼저 아래 그림을 보시죠. 시스템이 시작할 때 Physical Address Map(이하 PAM)이라는 걸 만듭니다, PAM은 RAM과 각 장치들이 가지고 있는 메모리의 주소 정보로 일종의 '순서' 혹은 '차례'를 만들어 Windows에게 넘겨줍니다, 그러면 Windows는 PAM  범위의 메모리만 사용(Access) 할 수 있습니다.

그런데 PAM이 만들어 질때 메모리(RAM)만 가지고 만드는 것이 아니고 모든 종류의 장치가 가진 디바이스 메모리(비디오 카드, Lan 카드가 가지고 잇는 메모리를 칭함)까지 포함합니다, 처음에는 RAM만 가지고 PAM을 만들어 가다는 중간에 디바이스 메모리가 끼어들게 됩니다, 그러면 PAM 중간에 디바이스 메모리가 포함되고 다시 PAM에 추가되다만 나머지 RAMPAM에 추가 되는데 이때 추가된 RAM이 4GB 범위 밖에서 만들어집니다. x86 Standard Memory management Mode를 사용하는 32-bit Windows는 4GB 메모리 영역까지만 사용(Access) 할 수 있는데 디바이스 메모리 때문에 RAM이 4GB 범위 밖으로 밀려나 해당 범위의 메모리가 보이지 않게 되는  것입니다.

clip_image006

위 그림은 총 4GB메모리 환경에서 디바이스 메모리가 총 500MB이기 때문에 사용할 수 있는 총 메모리가 3.5GB로 줄어든 예입니다. 밀려난 500MB는 윈도우가 Access 할 수 없는 영역이기 때문에 사용할 수 없습니다. 이 이슈는 하드웨어에서 해결해야 할 문제입니다.

*참고로 32비트 Windows 서버 관련한 4GB 제한에 대한 이야기는 이전에 ‘누가 내 메모리를 훔쳤나?’라는 글로 포스팅한 적이 있습니다, 서버에 관심 있으신 분들은 참고로 읽어 보시기 바랍니다.

 

Q3) 정말 디바이스 장치들이 메모리 중간에 끼어 들어 메모리가 밀려났는지를 어떻게 해야 볼 수 있죠?

이전에 어떻게 해야 볼 수 있을까 고민 많이 했는데(디버거 봐야 하나.. 등등 ^^;) 의외로 장치 관리자(devmgmt.msc)에서 간단하게 보실 수 있었습니다. 아래 내용은 32비트 클라이언트뿐만 아니라 64비트와의 비교를 보여드리기 위해 제 테스트 머신에 듀얼 부팅으로 Windows Vista 32비트와 64비트를 설치해 테스트를 진행하였습니다.

32 비트 Windows 클라이언트

아래 그림은 32비트 Vista 작업 관리자(taskmgr.exe)에서 보이는 Physical Memory의 모습입니다, 4GB를 장착했지만 전체가 3.3GB정도가 나옵니다.

clip_image008

그렇다면 ‘작업 관리자’가 말하는 Windows가 실제 인식한 Physical Memory 범위는 어떤 모습일까요? 아래 그림은 Meminfo.exe를 이용하여 Windows가 실제 인식하는 Physical Memory 범위를 출력한 결과입니다. (meminfo는 전에 소개해 드렸던 Windows Internals 5’th Edition을 쓴 Alex Ionescu가 만들었습니다)

clip_image010

메모리를 표기할 때 16진수로 표현하고 이를 00000000~FFFFFFFF로(0MB에서 4GB)로 표현합니다. 위 결과를 보시면 Physical Memory 범위가 ‘00001000~0009F000’과 ‘00100000~CFDFF000’ 두 범위로 나눠져 있으며 대략 3.4GB 정도의 크기 입니다.

그럼 두 범위에 중간에 빠진 ‘0009F000~00100000’과’CFDFF000~FFFFFFFF’ 사이 영역은 왜 Windows에서 인식하지 못한 것 일까요? 앞에서 말씀 드렸듯이 디바이스가 해당 영역을 점유해 윈도우가 사용(Access)할 수 있는 메모리가 아니기 때문입니다.

디바이스가 점유한 모습은 ‘장치 관리자(devmgmt.msc)’를 통해 확인 하실 수 있습니다, ‘장치 관리자(devmgmt.msn) > 보기 > 리소스(연결별) > 메모리’를 선택합니다, 그러면 아래 그림과 같이 비디오 카드 Radeon X13000이 ‘D0000000~DFFFFFFF’(대략 268MB)과 ‘FE900000~FEAFFFFF’(대략 2MB) 영역, 즉 Physical Memory 범위에서 제외되었던 곳에 자리 잡고 있음을 확인 할 수 있습니다.

clip_image012

32비트에서는 4GB에서 밀려난 메모리를 볼 수 없습니다, 그럼 밀려난 나머지를 보기 위해 우리 64비트를 살펴보도록 하죠~

64비트 Windows 클라이언트

아래는 64비트 Vista 작업 관리자(taskmgr.exe)에서 보이는 Physical Memory의 모습입니다, 4GB 모두 보입니다.

clip_image014

Meminfo로 본 Physical Memory 범위입니다, 64비트라 Address 범위부터가 다르죠? Memory Address가 4GB를 넘고 메모리 또한 4GB 범위 모두 나타납니다.

clip_image016

장치 관리자에서 본 모습입니다.

clip_image018

32비트에서 본 것과 마찬가지로 위 빨간 박스의 부분은 268MB정도 되고 아래가 2MB정도가 됩니다. 중간에 비디오 카드가 끼어 들었지만  4GB 이후 주소인 '0000000100000000~000000012C000000(실제 메모리 5GB 쯤의 자리)'에서 나머지 720896KB(대략 720MB)를 인식한 것을 볼 수 있습니다. 즉 디바이스가 메모리를 4GB 영역 밖으로 밀어냈다고 해도 128GB까지 인식하는 64bit Addressing 때문에 문제없이 모든 Physical Memory가 보입니다.

처음에 드렸던 예로 이런 상황에서 64비트를 그림으로 표현 하면 아래와 같습니다.

image

 

Q4) 그럼 32비트 클라이언트가 4GB 이상을 사용(Access, Addressing)하려면 어떻게 해야 할까요?

정답은 32비트 클라이언트는 4GB 이상을 사용할 수 있는 방법이 없습니다, 4GB 이상 메모리의 사용이 필요하다면 64-bit Windows 클라이언트를 사용하십시오.

현재는 32-bit 환경에서 64-bit 환경으로 넘어가기 위해서는 우선 64비트로의 인식전환이 필요할 것입니다. 다음으로 64비트 전용 응용프로그램들이 많이 나와야 할 것 입니다, 32비트 응용프로그램을 에뮬레이션 하기 위한 WOW 64 Subsystem이 있기는 하지만 모든 응용프로그램에 호환성을 보장하지 않고 32비트 응용프로그램 구조상 64비트 Windows에서 실핼 할 때 64비트가 제공하는 무한(?)한 메모리를 이용할 수 없는 제한이 있습니다.

*64비트 윈도우와 응용프로그램에 대한 이야기는 예전에 포스팅 한 글이 있습니다, 읽어 보시고 추가적인 이해에 도움이 되셨으면 합니다.

Windows 64bit Computing에 대한 오해 혹은 잘못된 상식
http://blogs.technet.com/sankim/archive/2007/12/28/windows-64bit-computing.aspx

 

Q5) Windows XP를 보면 PAE를 지원하는데 이는 XP도 PAE를 사용하면 4GB 이상을 사용할 수 있다는 의미 아닌가요?

Windows XP SP2 부터 나온 DEP(Data Execution Prevention)를 사용하기 위해서는 기본적으로 PAE가 활성화(Enable)되어 있어야 합니다, 그래서 PAE 기능을 활성화 할 수 있도록 한 것입니다.

To use these processor features, the processor must be running in Physical Address Extension (PAE) mode. However, Windows will automatically enable PAE mode to support DEP. *해당 문서를 보시려면 여기를 클릭하세요.

참고로 PAE를 활성화 하는 경우와 반대의 경우 윈도우가 시작 시 로드하는 커널 파일은 아래와 같습니다.

CPU 수에 따른 환경

기본

PAE 활성

Uniprocess(단일 CPU)

Ntoskrnl.exe

Ntkrnlpa.exe

Multiprocess(다중 or 코어 CPU)

Ntkrnlmp.exe

Ntkrpamp.exe

 

Q6) 번 외 질문인데요, 도구마다 메모리 측정 결과가 각기 조금씩 다른 경우가 있어요 왜 그렇죠?

위 그림에서 작업관리자는 3.3인데 왜 meminfo는 3.4냐고 반문하실 수도 있습니다 또한 제가 종종 받는 질문 중 하나가 작업 관리자에서 ‘사용가능’ 항목과 성능 모니터에서 ‘Available %메모리%’의 값이 다르다는 것입니다. 이는 각 도구마다 메모리를 계산하기 위한 항목 수집 기준이 조금씩 달라서입니다, 크게 차이가 나는 것이 아니므로 이번 포스팅에서는 무시하셔도 좋습니다. 언제 작업 관리자에 나온 항목에 대한 자세한 설명을 드리겠습니다. (약속만 드리고 지키지 못하는 것들이 많지만 이번 약속은 !!)

그럼 여러분 좋은 하루 되세요~

 

[참고자료]
Pushing the Limits of Windows: Physical Memory, Written by Mark Russinovich *이번 포스팅의 대부분의 아이디어가 이 글에서 나왔습니다, 꼭 한번 읽어 보시기 바랍니다.
Windows Internals, Chapter 7 Memory Management
Intel 64 and IA-32 Architectures Software Developer’s Manual, Intel 64 and IA-32 Architectures

윈도우 XP, Vista에서 윈도우7으로 업그레이드

안녕하세요? sankim입니다, 오늘은 XP, Vista에서 윈도우7으로 업그레이드에 대한 말씀을 드리겠습니다.

[버전별 업그레이드&마이그레이션]

버전 업그레이드 마이그레이션
Windows XP 지원안함(X) 지원(O)
Windows Vista 지원안함(X) 지원(O)
Windows Vista SP1 이상 지원(O) 지원(O)
Windows 7 Beta 지원안함(X) 지원(O)

위 표에서 업그레이드와 마이그레이션의 의미는 아래와 같습니다

업그레이드(Upgrade): Vista에서 Windows 7 설치 CD를 넣고 ‘업그레이드’를 클릭해서 Windows 7을 설치하는 과정, 이전에 설치되어 있던 응용프로그램이나 파일 그리고 설정이 그대로 남아 있다.

image

마이그레이션(Migration): 이전 버전의 컴퓨터에 있던 데이타와 설정을 별도로 제공되는 도구를 이용해 Windows 7 컴퓨터에 옮기는 작업.

[1] Windows Vista에서 Windows 7으로 업그레이드

Windows Vista에서는 업그레이드가 지원되지 않습니다, Windows Vista에 서비스팩 1이상이 설치된 환경에서 직접 업그레이드를 지원합니다. 그러므로 현재 사용하는 Vista에서 Windows 7 설치 CD를 넣고 설치 과정 중 '업그레이드’를 클릭하시면 바로 Windows 7으로 업그레이드가 됩니다.

* 업그레이드는 반듯이 동일 Edition 사이에서만 가능합니다, 예를 들면 Windows Vista Ultimate였다면 동일한 Windows 7 Ultimate으로만 가능합니다.

[2] Windows XP에서 Windows 7으로 업그레이드

Windows XP에서 바로 Windows 7으로 직접 업그레이드하는 방법은 지원하지 않습니다, Windows 7 설치 CD를 넣고 업그레이드를 선택하시면 아래 그림 같이 윈도우 XP에서 윈도우 7으로 바로 업그레이드(Directly Upgrade)할 수 없다는 메시지와 함께 작업이 종료 됩니다.

image

XP에서 Windows 7 업그레이드를 위해 아래와 같은 두 가지 방법이 있습니다.

1. 이전 데이타를 Easy Transfer 혹은 USMT 4.0를 이용해 마이그레이션 하는 방법

2. 현재 사용하는 XP를 Vista로 업그레이드 한 뒤 Windows 7으로 업그레이드.

[3] Windows 7 Beta에서 Windows 7으로 업그레이드

XP와 동일하게 직접 업그레이드를 지원하지 않습니다, 7 Beta는 RC나 정식 RTM으로 새로 설치 하셔야 합니다.

다음 포스팅에서는 Easy Transfer를 이용해 윈도우 XP, 7 Beta에서 Windows 7으로 마이그레이션 하는 방법을 설명 드리도록 하겠습니다.

드디어 Windows Internals 5’th 출간!

9780735625303x

오늘 talee 군이 먼저 찾아내어 포스팅 한 것을 낼름 배껴(:P) 소개 합니다.

드디어 Windows Internals 5’th Edition이 나왔습니다. Windows Internlas는 Windows Kernel에 관심이 있는 분들에게는 바이블과 같은 책으로써 Windows의 내부 구조에 대해서 가장 정확하게 설명 했습니다. 아직 판매는 되지는 않고 있으나 곧 판매될 예정입니다.

 

오늘은 그래서 지금까지 나온 Windows Internals 시리즈를 둘러보겠습니다.

 

image

Inside Windows NT: 1993년에 Inside Windows NT라는 이름으로 Helen Custer가 집필 했습니다. (바쁜 개발자들에게 내부 구조에 대한 정보를 얻느라 많이 힘들었던 듯 합니다)

 

image 

Inside Windows NT 2’th: 윈도우의 아버지 Dave Cutler는 그의 DEC 시절 그의 제자(?) 였던 David Solomon에게 Windows Source Code를 Access할 수 있도록 ‘허’하였고 이렇게 해서 Solomon이 단독으로 쓴 Inside Windows NT 두번째판이 1998년에 출간 되었습니다. Windows NT에 대해서 주로 다뤘고 곧 나올 예정이던 Windows 2000에 대한 내용이 Windows NT 5.0이라는 Chapter로 추가 되었었습니다. 멋도 모르고 제가 처음 샀던 책인데 그때는 책을 읽고 이해했다기 보다는 글씨가 몇개인지 세는 수준이였습니다.

 

image 

Inside Windows 2000 3’th: 2001년에 출간 되었고 새로 출시 되었던 Windows 2000을 중심으로 다뤘습니다. 이번에는 David Solomon이 그의 제자(?)였던 Mark Russinovich와 책을 썼습니다. 이때 Solomon이 코드를 보고 책을 쓰면 Mark는 그것을 다시 한번 확인 하는 과정을 거쳤다고 합니다.  현재 Mark Russinovich는 마이크로소프트에서 Technical Fellow라는 직책으로 일하고 있습니다. 2년 전 직접 Mark와 Solomon을 만나서 이야기도 나눠본 경험이 있습니다. 그런데 이때 표지에 나와있는 Mark의 사진을 보면 Solomon 못지 않은 살집이 보입니다, 사진이 잘못 나왔거나 다이어트를 한 것이 아닌가라는 생각이..

 

image

Windows Internals 4’th: 2005년에 출간된 네번째 판부터는 Windows Internals라는 이름으로 변경되어 출간 됩니다. Windows 2003과 XP에 대한 내용이 추가 되었습니다. 개인적으로 가장 열심히 본 책이기도 합니다. (이전에 잃어 버려서 다시 구매할 때 눈물을 흘렸던 기억이…)

 

9780735625303x

Windows Internals 5’th: 이번 5’th에서는 Windows Server 2008과 Vista에서의 기술을 설명하였습니다, 그리고 이번 판에서는 새로운 인물이 보입니다, Alex Ionescu라고 하는 젊은 친구입니다, 2년 전에 시애틀에서 만난 본사 개발자가 요즘 Solomon이 데리고 다니면서 키우는 19살 짜리 친구가 있는데 얼마 전 본사 개발자들을 상대로 강의를 했다’는 이야기를 들었는데 그 친구가 바로 Alex더 군요, 천재란게 있기는 한가 봅니다.. 참고로 Solomon은 이미16살 때 DEC에서 Dave의 VMS팀에서 일 했습니다, 진짜 천재.

 

이번 5’th에서는 오타 혹은 내용의 모호성을 철저히 차단하고자 수많은 Reviewer들이 참여해 높은 Quality의 책을 만들어냈습니다.

여기를 누르시면 발간에 대한 ‘감사의 말’을 보실 수 있습니다. Reviewer 명단에 저의 Master의 이름이 보이네요 ^^ khK 수고 많으셨습니다!

Windows 7 & Windows Server 2008 R2 RTM 출시 기간 발표

image

TechED 2009에서 Windows 7과 Windows Server 2008 R2 RTM 출시가 Holiday Shopping Season에 이뤄질 것이라 발표되었습니다. 발표 PR 전문은 여기를 클릭하십시오.

LOS ANGELES — May 11, 2009 — Microsoft Tech•Ed North America 2009 kicked off today with announcements of new technologies that enable IT professionals and developers to help their organizations save money and improve efficiencies during difficult economic times. As part of today’s news, Microsoft Corp. announced that the company is anticipating that the next version of its client operating system, Windows 7, will be available to customers in time for the holiday shopping season. In addition, Windows Server 2008 R2 Release Candidate (RC) is available today with the final product releasing to market in the same timeframe as Windows 7.

 

그리고 Windows Team Blog에서 Brandon LeBlanc은 아래와 같이 포스팅 했습니다.

“If the telemetry we receive from the Windows 7 RC meets our expectations in terms of quality, then we expect to hit RTM in 3 months or so.

Again, check out Steven’s blog post on this process. If this happens, it looks like we’ll be able to have Windows 7 done in time for the holidays. I want to underscore that our top priority remains QUALITY. This guidance does not alter that principle.”

 

저도 잘 몰라서 물어 봤는데 Holiday Shopping Season의 의미가 일년에 여름 휴가 시즌과 겨울 크리스마스 시즌 이렇게 두 번 있는 큰 바겐세일 기간을 의미 한다고 합니다.. 상냥한 답변의 써니님 감사요 ^^ ^^

Windows 메모리 FAQ

안녕하세요~ sankim 입니다.

최근 들어 여러 Windows 관련 커뮤니티나 블로그를 방문하면서 가장 많이 눈에 뜨이는 질문이면서도 정확한 답을 얻기 어려운 것이 Windows 메모리 관련 질문들인 것을 보았습니다. 그래서 메모리 관련해서 가장 많이 올라오는 질문들에 대해서 간단한 답을 정리해 보았습니다. 자세한 기술적 내용은 꼭 한번 시리즈(?)로 올릴 것을 약속 드립니다. ^^

Windows Memory FAQ

1. Windows에서 사용 할 수 있는 최대 메모리(Windows Maximum Memory Size) 크기는 얼마인가요?

현재 나와 있는 Windows 클라이언트는 Vista Ultimate의 경우 32-bit OS는 4GB, 64-bit는 128GB 이며 Windows 서버 Windows Server 2008 Enterprise는 32-bit는 64 GB, 64-bit는 2 TB입니다. 자세한 사항은 여기를 누르시면 각 Windows 별 최대 메모리를 확인 할 수 있습니다. *32- bit의 64GB 메모리 제한은 Intel CPU에서 정한 값입니다, Windows는 그것을 따라 64GB를 최대 메모리로 잡았다고 보시면 맞습니다. 

 

2. XP, Vista와 같은 32-bit Windows Client에서 4GB 이상 메모리를 사용할 수 있는 방법은 없나요?

32-bit Windows Client(Windows 2000 Professional, XP, Vista)는 메모리 4GB까지만 인식합니다, 4GB 이상의 메모리를 사용하고 싶으신 분들께서는 64-bit Edition을 사용하시거나 혹은 Windows Server 제품을 이용하셔야 합니다. 개인적으로 4GB 이상 사용하는 방법에 대한 Tip이나 Trick이 있다는 글들을 본적이 있는데 모두 근거가 없거나 실제 메모리가 확장되어 사용하는 방법이 아닌 것으로 보입니다.

 

3. Windows Client에서 메모리 4GB를 설치 했는데 Windows에서 4GB로 보이지 않고 3.xxGB로 보여요

실제 장착된 물리 메모리를 OS가 인식하기 위해서는 그 메모리 정보를 H/W가 Windows에게 알려줘야 합니다, 그런데 PCI Bus, BIOS 그리고 비디오 카드 등에서 사용하는 PCI Bus, BIOS 그리고 비디오 카드 등에서 사용하는 MMIO가 Windows에서 인식하기 위한 물리 메모리 공간 중간에 끼어 들면서 MMIO 크기만큼 실제 메모리가 밀려나 버리게 됩니다, 그래서 윈도우는 밀려난 실제 메모리 영역을 인식하지 못한 나머지 영역만을 실제 메모리로 인식해 실제 메모리보다 적은 양을 사용하게 됩니다. 이는 하드웨어 이슈 입니다.

image

*경우에 따라 Windows Vista에서 4GB를 장착하였는데 3.12GB로 나오는 경우가 있습니다 이는 디바이스 드라이버 호환성 문제를 피하기 위해 Vista가 의도적으로 3.12GB로 설정 하는 것입니다.

자세한 사항은 아래 링크를 참조 하십시오.
http://blogs.technet.com/sankim/archive/2007/05/31/4gb.aspx

 

4. Windows Vista SP1(Service Pack 1)을 설치 하니 3.xxGB 보이던 메모리가 4GB로 나타납니다.

Windows Vista Service Pack 1에서부터는 실제 메모리의 정보를 직접 BIOS에서 가져와 시스템 정보에서 보여 줍니다, 그러나 BIOS 호환성에 따라 지원 되지 않을 수도 있습니다.

image

위 그림에서 왼편 Memory (RAM)에는 4GB라고 나오지만 오른편 실제 사용할 수 있는 Physical Memory에는 3061(3.0GB)이라고 나타납니다. 이렇듯이 Windows Vista SP1을 설치 하면 작업 관리자 등에서 4GB 전체를 보실 수 있습니다만 MMIO로 인한 메모리 사용의 제한은 그대로 받게 됩니다.

자세한 사항은 아래 포스팅을 참조 하십시오.
http://blogs.technet.com/sankim/archive/2008/01/31/windows-vista-service-pack-1.aspx

Windows 7에서는 리소스 모니터를 통해 이것을 비주얼 하게 보여 줍니다.

 

5. 메모리를 64-bit로 확장해 준다는 PAE 옵션은 무엇인가요?

32-bit 윈도우가 사용할 수 있는 4GB 메모리 한계를 최대 64GB 까지 확장해주는 기술입니다.

1) X86 CPU(Processor)를 사용하는 32bit 운영체제의 최대 메모리는 2^32(32bit)로 4GB 입니다.
2) 과거에 4GB는 엄청난 크기였지만 세월이 흐르면서 데이터베이스 같이 큰 메모리가 필요한 응용프로그램들이 나타났습니다. (제가 처음 지원했던 Windows NT의 메모리가 128MB였던 걸로 기억합니다)
3) 그래서 CPU(Processor) 회사는 컴퓨터가 사용할 수 있는 물리 메모리 영역을 아주 크게(36Bit로) 확장 할 수 있는 PAE라는 기술을 만들어냈습니다.
4) Windows는 CPU가 제공하는 이 PAE 기술을 이용하여 4GB 메모리 크기의 한계를 극복 할 수 있게 되었습니다.
5) Windows가 CPU에서 제공하는 PAE를 사용하기 위해서는 boot.ini에서 /PAE 옵션을 추가 합니다. Windows Vista 이상 환경에서는 ‘bcdedit /set [{해당 윈도우GUID}] pae ForceEnable’을 실행 합니다.
6) PAE로 확장된 상태라도 AWE(Address Windowing Extensions) 함수를 이용하지 않는다면 PAE로 확장된 메모리 모두를 Application이 모두 사용 할 수 없습니다 그러나 OS가 file Cache Data등으로 사용합니다.
7) XP, Vista와 같은 Windows Client에서는 PAE를 사용해도 4GB 이상으로 확장되지 않습니다

PAE를 사용하는 경우 CPU의 MMU(Memory Management)가 Virtual address에 Page directory pointer를 추가(three-level page table)하는 방식으로 필드를 4개로 나눠 메모리를 확장합니다.

clip_image006

[Virtual Address(x86)의 경우]

clip_image008

[PAE 활성화된 Virtual Address(x86)의 경우]

 

6. /3GB 옵션은 무엇인가요?

4GT 기술이라고 하는데 흔히 /3GB 옵션이라고도 부르며 응용프로그램에 더 많은 메모리를 할당하기 위한 기술입니다.

x86 컴퓨터에서 사용되는 기술로써 가상 메모리 공간 4GB를 둘로 나눠 2 GB는 System Space, 2GB는 User Space에 할당 합니다. System Space는 시스템이 이용하는 리소스(System cache, hyperspace, system cache, page pool 등)에 할당 하고 User Space는 사용자 응용프로그램(응용프로그램, 데이터 등)이 사용하는 공간 입니다. 만약 /3GB 옵션을 추가하게 되면 System Space에는 1GB를 할당하고 User Space에는 나머지 메모리 공간을 할당하게 됩니다. 그러면 응용프로그램이 사용할 수 있는 메모리 크기가 증가되어 응용프로그램에서 더 많은 메모리를 사용 할 수 있는 것입니다. 그러나 시스템 리소스가 많이 필요한 경우 /3GB로 System Space에 1GB만 할당하기 때문에 시스템 리소스의 부족으로 성능 저하를 가져 올 수 있습니다. 그러므로 무조건 /3GB를 할당 할 것이 아니라 충분한 모니터링 후 사용 여부를 결정해야 합니다.

clip_image010

[왼쪽은 일반 2GB, 2GB 모델, 오른쪽은 /3GB 모델]

 

쉽게 쓴다고는 했지만 아무래도 이해하기 쉽지 않은 부분입니다, 위에서 약속 드린 것 처럼 나중에 꼭 한번 메모리 구조에 대해서 포스팅 하도록 하겠습니다.

 

* 윈도우 클라이언트의 4GB 제한에 대해서 좀더 자세히 설명 드리기 위해  '4GB 제한의 진실, 32비트 Windows (XP, Vista, 7)클라이언트 '라는 포스팅을 올렸습니다. 참고하여 주십시오. 

p.s. 그리고, 아~ 휴가 다녀 왔더니 의욕 충천입니다! 휴가 중에 저 정말 회사 와서 일하고 싶었어요.. 믿어 주세요..

p.s. 2 어제 저녁 퇴근하기 전 급히(?) 적다가 숨겨진 실수가 있어 바로 잡았습니다. 바로 찝어내주신 Talee 군에게 감사 드립니다. ^^

XP 응용 프로그램 호환을 위해 태어났다 Windows Virtual PC - XP Mode

안녕하세요? Sankim입니다.

어제 드디어 Windows 7 RC가 나왔습니다. Technet이나 MSDN에서 W7을 다운 받으신 분들은 다운로드 카테고리 내에서 Windows Virtual PC와 XP Mode라는 것도 함께 있는 것을 보셨을 것입니다. Windows Virtual PC는 Virtual PC 2007의 다음 버전 쯤 되는 제품으로 현재 Beta 제품 입니다, 이것 또한 Windows 7과 마찬가지로 상당히 많은 진화를 이뤄낸 물건입니다, Windows Virtual PC의 새로운 기능이 궁금하신 분들은 여기를 눌러 확인 하세요.

제가 실제 Windows Virtual PC를 보고 가장 감탄한 기능이 있는데요 그것이 바로 XP Mode라는 것입니다. 그래서 이번 포스팅에서는 Windows Virtual PC에 포함된 XP Mode에 대해서 간단히 설명 드리도록 하겠습니다.

실화

5년 전 Windows XP 환경에서 실행되도록 개발한 업무 프로그램을 구입했는데 개발사가 문을 닫는 바람에 더 이상 업그레이드가 어려워졌다. 윈도우 비스타에서는 호환성 문제로 아예 실행 되지도 않는다. 현재로써는 업무 프로그램을 Windows Vista용으로 처음부터 새로 만들지 않는 한 윈도우의 업그레이드는 그림의 떡이다.

새로 출시되는 Windows를 도입하려는 분들에게는 항상 현재 사용하고 있는 응용프로그램이 과연 새로운 Windows에서 문제없이 실행 될 지가 가장 큰 고민 중 하나일 것입니다. 특히 기업 고객의 경우에는 회사 업무로 사용하는 응용프로그램이 새로운 Windows 환경에서 문제를 일으킨다면 도입 자체가 어려 울 것 입니다.

Windows XP에서 실행되던 응용프로그램을 Windows 7에서 아무 문제 없이 실행 되도록 만들어진 것이 바로 Windows Virtual PC의 XP Mode(이하 XPM)입니다.

컨셉은 Virtual PC에서 가상 머신(Virtual Machine)으로 XP을 올리고 거기에 응용프로그램을 올려서 사용한다 입니다. 이러면 뭐가 예전과 다르냐고요? 여기에 추가 된 것이 바로 Seamless Application 즉 가상 머신에서 실행하는 응용프로그램을 마치 자신의 앞에 있는 컴퓨터의 Windows 7에서 직접 실행하는 것처럼 사용자에게 보여 주는 것입니다.

XPM을 사용하기 위해서는 아래 작업을 실행합니다. (현재 포스팅 한 시점은 Technet, MSDN 구독자들에 한해서 다운로드가 가능하고 5월 5일 이후에는 여기에서 다운로드 하실 수 있습니다)

1. Windows Virtual PC를 다운받아 설치 합니다.
2. 또 별도로 Virtual Windows XP를 다운받아 설치 합니다, 설치가 끝나면 아래 그림에서처럼 Windows Virtual PC를 보실 수 있습니다.

clip_image002[4]

여기에서 Virtual Windows PC를 실행 합니다. 그러면 아래 그림에서와 같이 XP환경의 가상 머신(Virtual PC)이 나타납니다.

image

XPM에서 XP에서 사용했던 응용프로그램을 설치 합니다. 설치를 마치면 아래 그림에서와 같이 프로그램 항목에 ‘Virtual Windows XP 응용프로그램’이라는 폴더가 생성 되었고 밑에 가상 XP 머신에 설치한 응용프로그램을 보실 수 있습니다.

clip_image004[4]

여기서 제가 설치한 WinDbg라는 프로그램을 실행해 보겠습니다, 그러면 아래 그림에서 보시는 것처럼 실제 로컬에서 실행한 것과 같이 실행 됩니다(아무것도 실행하지 않은 Windbg라 조금 썰렁 합니다 ^^;). 즉 사용자 입장에서는 가상 머신이라는 인식을 하지 않고 로컬 컴퓨터에서 일반 응용프로그램 실행하듯이 실행 할 수 있는 것입니다.

clip_image006

하단에 작업 표시줄 창에 나타난 아이콘으로 XPM으로 프로그램을 실행한 것을 알 수 있습니다.

clip_image008

참고로 이 기능을 사용하기 위해서는 Hyper-V 지원 CPU가 필요하며 앞으로  Windows 7 Professional, Enterprise, Ultimate에서 사용 할 수 있을 예정입니다.

흐흐.. 응용프로그램에게 호환성을 강요하지 않고 가상 머신을 통해 윈도우에서 무조건 호환할 수 있는 환경을 만들어주다니… 가장 확실한 방법을 만들어 낸 것 같습니다! ^^

현재 Beta 상태인데도 상당히 흡족한 성능과 컨셉을 보여주고 있습니다, 사용 방법도 아주 간단하니 직접 설치해서 사용해 보시기 바랍니다, 그럼 자세한 기술적 내용은 다음에 천천히 다루기로 하고 오늘은 여기까지 입니다.

그럼 모두 즐거운 하루 되세요~

출격! Windows 7 RC(Release Candidate)!

image

드디어 Windows 7 RC가 출시 되었습니다.

이전에 포스팅에서 말씀 드린 것 같이 현재 Technet, MSDN 구독자들에 한해서 4월 30일 다운로드를 받을 수 있으며 일반에게는 5월 5일 공개 됩니다.

기본적으로 Beta에서 보다 한층 빠르고 더욱 안정 되었으며, 새로 XP 모드 전환 - 가상 PC(Virtual PC), 원거리 미디어 스트리밍(Remote Media Streaming) 기능이 추가 되었으며 정식 IE 8이 기본으로 포함되어 있습니다.

개인적으로  Windows 7 RC에 Office 2007 + Service Pack 2를 설치해 사용하는데 정말 훨훨 날아다니는 것이 느껴 집니다. 앞으로 정식 출시될 RTM과 가장 가까운 빌드(Build)니 Windows 7 사용을 고려 하고 계신 분들이시라면 반듯이 설치해 보시기 바랍니다.

윈도우의 블루스크린은 왜 파란색일까?

Windows에 문제가 생겨 메모리 덤프를 생성 할 때 아래 그림처럼 화면 전체가 파란색(Blue)으로 변하는 것을 블루스크린(Blue Screen)이라고 부릅니다.
[블루스크린(Blue Screen of Death)]

 

Windows가 블루스크린이 발생 시키는 것은 이유는 Windows의 커널 모드에서 문제가 발생 했을 때 당시 물리 메모리에 있던 데이타를 그대로 하드 디스크에 저장한 뒤 디버깅 같은 작업으로 문제의 원인을 찾을 수 있도록 하기 위함입니다, 대부분 잘못된 디바이스 드라이버(Device Driver) 코드나 하드웨어 문제로 인해 발생합니다.

그런데 여러분 왜 블루스크린은 파란색일까요? ‘블루스크린이니까 파란색이지..’ 같은 답 말고 왜 처음에 Windows를 만든 사람들은 메모리 덤프 화면을 파란색으로 선택 했을까요? 여러 낭설들만 무성한 가운데 그에 대한 해답을 찾기 위해 블루 스크린을 만든 분에게 직접 여쭤 봤습니다.

 

khK: Dave, 왜 블루스크린은 파란색인가요?

Dave: 각기 다른 색깔(Color)을 적은 종이를 뒤집어 놓고 뽑기를 했는데 그때 뽑힌 것이 파란색이라네, 그래서 파란색으로 결정했지

 

그래서 블루스크린의 파란색의 비밀은 ‘제비뽑기’ 였습니다.

 

Windows 7에서도 똑같은 파란색인지 현재 나와 있는 빌드에서 테스트 해봤는데 같은 파란색이네요.

개인적인 바램은 앞으로 사용자들이 블루스크린을 보고도 편한(?) 마음을 가질 수 있도록 노란색이었으면 좋겠어요.. 갑자기 피를 연상시키는 빨간색을 피해간 것이 다행이라는 생각이… 흠흠..

Windows 7, 5월 5일 일반에 Windows 7 RC 공개

win7

드디어 Windowsteamblog를 통해 Windows 7 RC 공개 일시가 발표 되었습니다.

I’m pleased to share that the RC is on track for April 30th for  download by MSDN and TechNet subscribers. Broader, public availability will begin on May 5th.

 

4월 30일 Technet, MSDN 구독자에게 먼저 공개 된 후, 5월 5일 일반에 공개될 예정입니다.
(시차가 있는 관계로 한국 시간으로 조금 늦을 수도 있습니다)

 

Windows 7 RC, Coming Soon!!!

Windows 7, 바탕화면에 나온 물고기 Betafish

Windows 7 Beta의 기본 바탕화면의 모델인 Betafish(Betta)입니다.

(베타 버전이라고 바탕화면에 Betefish를 넣은 센스.. ㅎㅎ)

image image

한 어항에 수컷 두 마리를 넣어 두면 둘 중 한 마리가 죽을 때 까지 싸운다고 하네요.

image 

그럼 윈도우 7 베타 바탕화면에 물방울은 몇 개 일까요?

Windows 7, 정확히 문제 재현 Step을 보여주겠어! Problem Steps Recorder

이번 시간에도 Windows 7에서 새로 추가된 기능을 말씀 드리겠습니다. 먼저 아래 대화부터 보시죠~

따르릉~

엔지니어: 여보세요!
사용자: 여기 문제가 생겼는데요 우리 프로그램이 자꾸 죽어요
엔지니어: 어떤 작업하시다 프로그램이 종료되나요?
사용자: 뭐.. 갑자기 프로그램아 사라져버려요...
엔지니어: 그냥 사라진다고요? 뭐 다른 작업 같이 하신것 없나요?
사용자: 음… 인터넷도 했던거 같고…또….
엔지니어: 흠.. 그렇게만 말씀하시면 정확히 알 수 없을 것 같은데 문제가 발생하는 과정을 화면 캡쳐해서 보내 주시겠어요?
사용자: 엥? 그걸 다 캡쳐 해서 보내달라고요????

꼭 기술지원 엔지니어가 아니더라도 주위 분들에게 컴퓨터를 고쳐달라는 요청을 원격에서 전화나 메신저로 받는 경우 직접 앞에서 보는 게 아니라 답답했던 경험 한번쯤 있지 않으신가요?

어떤 작업을 하다가 문제가 발생했는지, 그리고 어떤 오류 메시지가 나타나는지 등과 같이 문제가 생기는 과정을 순서대로 재현 하는 것을 ‘문제 재현 Step’ 이라고 합니다.

이전에 문제 해결을 위해서 가장 먼저 ‘문제의 증상(또는 현상)과 그 재현 Step을 정의 할 수 있어야 한다’고 말씀 드린 적이 있습니다. 하지만 위 같은 경우처럼 직접 문제의 컴퓨터 앞에 있지 않는 한 전화로 혹은 메일/메신저로 오는 문의만 듣고 문제 Step을 정의하기란 쉽지 않습니다. 게다가 질문자가 정확히 문제 Step을 전달하지 못하면 해결 방향을 잃기 쉽습니다.

사용자가 문제 재현 Step을 상대방(엔지니어)에게 알려주기 위해 가장 좋은 방법은 아마 문제가 발생하는 과정을 모조리 캡쳐(Screen Capture)를 떠서 보내주는 것입니다 그런데 수작업으로 모두 캡쳐 하기란 참 어렵습니다(아주 번거롭죠..). Windows 7에서는 이러한 불편을 덜어 드리고자 Problem Steps Recorder(이후 PSR)라는 ‘문제 재현 Step’을 기록할 수 있는 도구가 나왔습니다. (한글로는 뭐라고 나오게 될까요? ‘문제 재현 기록기’???)

[사용방법]
PSR을 실행하기 위해 시작 > ‘프로그램 및 파일 검색’에서 psr.exe를 실행합니다. 현재 윈도우 7 베타 버전에서는 명령어로만 실행할 수 있도록 숨겨져(?) 있습니다.

clip_image002

clip_image004

그러면 아래와 같이 PSR이 나타납니다.(마치 예전 녹음기와 비슷하군요..)

clip_image006

Start Record 버튼을 누르고 문제를 재현 해 봅니다, 그러면 자동으로 사용자의 움직임을 설명과 함께 화면 캡쳐를 진행합니다.

clip_image008

재현 중간 별도의 설명이 필요하다고 생각되면 Add Comment를 눌러 Comment를 추가 합니다.

image

문제 재현 Step이 마무리 되면 Stop Record를 누릅니다, 그러면 zip파일로 mht 파일을 압축하여 저장합니다, 해당 zip파일의 압축을 풀고 mht파일을 실행하면 IE에서 아래와 같은 재현 스텝을 볼 수 있습니다.

clip_image012

중간에 사용자가 별도로 넣은 Comment도 볼 수 있습니다.

clip_image014

차~암 쉽죠? 저도 기술지원 엔지니어 생활을 하면서 곤란할 때가 진행 과정 일부 혹은 전체 캡쳐 해서 보내달라고 요청 할 때 인데(전화 건너 편으로 한 숨소리가 들려요..) 이제 윈도우 7에서는 요청 드리기 좀 편해질 듯 합니다. PSR 자체가 워낙 간단히 쓸 수 있는 도구라 딱 한번만 사용해 보시면 바로 사용 하실 수 있으실 것 같습니다.

아래는 PSR 데모입니다, 영어로 되어 있기는 하나 화면만 보셔도 충분히 이해하실 수 있습니다.(흠.. 앞으로는 동영상도 만들어 볼까요…?)

오늘은 여기까지 입니다.

좋은 하루 되세요~ ^^

More Posts Next page »
 
Page view tracker