스멍님 뵙게 되어 반갑습니다.
제가 4시경에 일어나서 메일을 보니까 칭찬 및 격려와 질문 코멘트, QNA 응답까지 달아주셨더군요. 감사드리고요.^^
윈앤위는 멤버등록 없이 소통 가능한 공간이 열려져 있습니다. 단, 커뮤니티의 등록의 경우는 좀 다른 특성을 가지고 운영이 됩니다. 타 멤버님이나 저와 함께 보다 더 적극적으로 소통을 해보자라는 취지입니다. 적극적인 소통을 통해서 자신의 역량을 발전시킬 수 있다 감히, 확신을 합니다. 윈앤위 멤버권한을 얻으시는 것은 아래 URL을 읽어 보셨으면 합니다.
http://winnwe.com/forums/viewthread/268
멤버 참여는 안내사항을 읽어 보시고, 스멍님이 결정을 하세요. 멤버 참여와는 무관하게 블로그에서 작성하신 스멍님의 질문에 답변은 사실 간단한 문제가 아니지요. 이미 제가 작성한 웹로그에 있습니다만, 여기서는 간단하게 답변이 가능할지 모르겠습니다.
32비트에서 64비트 마이그레이션 :
유저모드 2GB로 충분한 어플리케이션 위주 사용자님들은 32비트, 4GB램에서 부족함이 없을 것입니다. 이 경우 굳이 64비트를 생각하실 필요가 없지요. 현재는 일반적인 워드 작업나 인터넷 서핑, 엔터테인먼트의 경우는 32비트 4GB 램이면 충분합니다만, 제 경우는 Windows 관련 사이트를 운영하고 있어 VMWare로 동시에 여러 가지 운영체제를 띄우게 됩니다. 실시간 동시에 사용하지는 않아도 비교를 해야할 경우가 종종 있습니다. 리얼 PC를 여러대 운영하거나 멀티 부팅을 하는 것 보다는 휠씬 편리하면서도, 에너지가 절감이 되겠지요. 서너개를 띄운다고 했을 때 현재의 64비트 Windows 7, 8GB 램으로도 역부족입니다.
1. 엔지니어링 소프트웨어의 경우를 생각해 보지요. 우선적으로 덩치 큰 오브젝트 몇 개를 실제 메모리로만 다룰 수 있다면, 작업 효율이 크게 올라갑니다. 물론 관련 전문가들은 이미 보급형 데스크톱 보다는 하이엔드, 워크스테이션/서버 기종을 선호하고 사용되고 있지만, 보편적인 데스크톱 환경에서도 엔지니어링 소프트웨어를 운영할 수 있다라는 것은 비약적인 발전을 의미할 것입니다. 이것으로 그치는 것이 아닌, 64비트 하드웨어 플랫폼에서는 64비트 명령으로 연산이 이루어집니다. 과거에는 코프로세서 유뮤에 따라서 하드웨어적인 비용이 달랐습니다만, 현재는 CPU 내장이지 않습니까? 엔지니어링 소프트웨어가 64비트 ALU를 사용하는 경우를 생각해 보시면 어떨까 합니다. 일반적인 소프트웨어의 경우라도, Windows가 4GB를 초과하는 메모리를 활용할 수 있다라는 것은 그 만큼 작전 반경이 넓어졌음을 의미합니다. 동시에 많은 프로그램을 실행을 해도 스왑시 발생하는 지연시간 없이 창 전환이 가능 합니다. 이로 인해 I/O부담은 줄어들고, 불필요한 HDD의 접근 및 소음도 줄어들며 수명도 연장되겠지요. 캐쉬 활용차원이나 인코딩, 디코딩, 컨버팅 Windows 전반적으로 퍼포먼스는 증가를 합니다. 클릭시 반응속도에 민감하는 사용자들이 있겠지만 직관적인 판단만 해서는 안되겠지요.
2. 제가 게임은 잘 모릅니다만, 소프트웨어 개념적으로 판단을 하자면, 게임 퍼포먼스는 Windows만의 문제가 아니라고 생각을 합니다. 이미 Windows는 더 나은 소프트웨어 개발 환경을 갖추고 있는 것이고, 게임 개발자들은 최신 플랫폼을 기반으로한 기술적으로 업그레이된 소프트웨어를 개발해 내야 하는 것이지요. 호환성이라는 것이 참으로 복잡하고 미묘하고, 새로운 Windows가 출시될 때 마다 대두되기는 하지만, 너무 과거 기술을 보존하는데 그친다면, 새로운 기술의 적용은 그 만큼 더디어 지는 것이 아닐까 합니다. Windows 7은 다이렉트X 9/10/11이 사용이 되는데요. 성능 평가를 과연 어디에 기준을 두어야 할까요? 구버전 9에 가까워 할까요 아니면 신버전 11쪽에 가까워야 할까? 제생각은 기존 구 게임들이 9/10에서 별다른 성능저하나 특별한 문제가 없다면 성공적이라 생각이 됩니다. 사용자나 개발자나 사실 새로운 기술이 반가울리만은 없겠지요? 비용, 시간, 경험, 습관 ... 변화가 일어나야 하니 말입니다.
3. 가상 메모리라는 것은 사실 혼란스러운 것이 사실입니다. pagefile도 가상 메모리, 실제 메모리 + pagefile도 가상 메모리, 32비트 프로세스가 운영되는 것도 4GB 가상 메모리입니다. 바로 가상 메모리를 이해하는 것이 Windows를 이해하는 것이라고 해도 과언이 아닙니다. 32비트 Windows 클라이언트 기준으로 사용자 PC는 처음부터 4GB라는 대용량 메모리를 사용하는 것이 아니었습니다. S/W, H/W 모두 비약적인 발전을 거듭한 오늘날의 상황이지요. 과거에는 램이 고가였기에 상대적으로 저렴한 HDD를 활용이 필수적이었습니다. Windows도 이러한 시대적 상황이 투영되어 탄생을 한 것이지요. 만약 램을 무한정 추가할 수 있다면, 임시 메모리라는 기술이 필요가 없었을지도 모릅니다. 지금은 과거보다 램이 획기적으로 저렴해 졌고, 임시 메모리 보다는 실제 메모리를 보다 많이 탑재시켜 Windows 퍼포먼스를 끌어 올릴 수 있는 시대입니다.
추가적으로 ...
Windows는 전문적이면서도 광대합니다. 저도 항상 어려움을 느낍니다. 그래서 함께 스터디하고자 윈앤위라는 사이트를 개설하게 된 것이지요. 윈앤위라는 사이트를 운영하면서 보니까, 국내 대부분의 PC관련 사이트들은 대부분 하드웨어 중심으로 운영이 되군요. 그리고 전자공학쪽으로 지식이 있는 분들이 주축이 되는 듯 한 인상이 강합니다. 그런데 이러한 분들이 제가 판단할 때는 Windows 내부 메커니즘이나 아키텍처와 관련해서 Physical Memory에 테크니컬 포인트를 두고 있다는 생각입니다. 웹로그에도 언급한 바가 있지만, Windows를 단순하게 생각하는 것이 아닌가 합니다. 말하자 CPU, RAM, I/O, 메모리(램) 정도로 놓고서 I/O에는 장치 맵핑이고 되고, 메모리에는 프로세스가 올라가서 동작한다. 그리고 메모리가 모자르면 pagefile이라는 가상 메모리를 사용한다라고 말입니다. 더불어 I/O맵핑이 되는 하드웨어 예약에는 사용되지 않는 빈 영역이 있고, Windows가 인식을 못하는 영역이어서 3.2GB만 활용이 가능하며, 램디스크를 사용하면 나머지 공간을 사용할 수 있어서 32비트의 4GB를 인식시켜 사용할 수 있다. 의외로 이런 잘못된 정보가 국내에 광범위하게 퍼져 있다는 생각입니다.
하드웨어 예약 관련 :
Windows는 논리적으로 Virtual Memory로 운영이 됩니다. 그리고 이 가상 메모리를 이해는 것은 곧 Windows를 이해하는 것이라고 해도 과언이 아닙니다. 그래서 테크니컬 포인트를 실제 메모리가 아닌 가상 메모리에 두어야 합니다. 메인보드에 4GB라는 램이 장착이 되면, 바이오스와 함께 하드웨어 플랫폼이 갖추어지는 것이고, 이를 기반으로 해서 Windows라는 소프트웨어 플랫폼이 안착이 되는 것이겠지요. 소프트웨어가 사용할 수 있는 공간은 이미 Windows가 기동하기 전에 정해져 있지만, 가장 많은 메모리를 점유하는 것이 그래픽 카드입니다. 그래서 하드웨어 예약 공간은 그래픽 온보드 메모리 크기에 따라서 차이가 많이 납니다. 대부분의 MS의 기술문서는 그래픽카드 온보드 메모리를 보편적으로 256MB로 기준으로 해서 aperture size/remapping을 가만을 해서 실제로 Windows가 사용할 수 있는 메모리 용량을 3.2GB라 설명하는 것입니다. 스멍님이 ‘잘못 알고 있었다’라고 하신 문구를 보아서는 제가 작성한 웹로그를 읽어 보신 것으로 판단을 합니다.
가상 메모리 관련 :
가상 메모리는 개념 자체가 사실 어렵습니다. 거기에 일반 사용자들은 Windows 메커니즘의 심도 있는 접근없이 Windoows가 보고(report)하는 메모리 용량만을 가지고 인식/비인식을 따지고, 현재 메모리가 얼마나 사용 중인가에만 관심을 두는 셈이지요. 그리고 현재 남은 메모리가 있다면, 어떻게든 램디스크와 같은 유틸리티를 이용해서 사용하려고 합니다. 또 Windows가 하드웨어 예약을 1MB로 보고하면, 실제로 하드웨어 예약이 1MB인 줄 알게 됩니다.
MS Windows 클라이언트 기준으로 우리들이 사용하는 Widows 운영체제라는 것이 처음부터 대용량 메모리에서 돌아가는 운영체제는 아니었습니다. 하드웨어적으로나 소프트웨어적으로 발전을 거듭해 왔기 때문에 현재처럼 4GB 혹은 4GB 이상을 사용할 수 있게 된 것이지요. 물론 램도 상당히 고가였습니다. 시대적인 변천사를 상기해 보면 납듭이 가능하지요. 과거에는 실제 메모리(램) + 임시 메모리(pagefile)가 필수적이었다면, 지금 시대는 하드웨어적으로 대용량 메모리를 사용할 수 있는 시대이고, 램가격도 과거에 비해서 획기적으로 저렴합니다. 과거에는 임시 메모리(pagefile)가 필수적이었다면, 현재는 임시 메모리 없이 얼마든지 실제 메모리로만으로 Windows를 사용할 수 있습니다.
실제 메모리(하드웨어 예약을 제외한) + 임시 메모리(pagefile) = 가상 메모리(Virtual Memory)
사용자들이 혼란을 느끼는 부분이 가상 메모리라는 것입니다. Windows가 칭하는 가상 메모리는 상황에 따라서 차이가 있긴 하지만, 모두 가상 메모리 개념입니다.
댓글에서 궁금해 하신 점을 제가 두서 없이 적어 보긴 했지만, 방문자님들이 지속으로 반복되는 질문을 하시는 것으로 보아서는 특별히 정리가 필요하다는 생각이 드는군요. 스멍님이 작성하신 글을 제가 읽어 보니, Windows와 하드웨어에 관련해서 잘 아시는 분이라 판단됩니다. 특히, 하드웨어나 게임과 관련해서는 저보다는 더 경험이 많으신 듯 합니다. 더불어 Windows 메커니즘과 관련된 심도 있는 부분까지 접근을 하신다면 금상첨화가 아닐까 합니다.^^
최근 들어서 윈앤위에는 RED님이 퍼브리셔로 참여를 하시게 되면서, Windows 메모리에 관해서 다루신다고 하니 함께 스터디하실 요량이시라면, 적극 참여를 권장합니다. 그러나 앞서서 말씀 드린 것 처럼 윈앤위 멤버 등록 과정을 밟으셔야 합니다.
감사합니다!