내 Windows에서 메모리 4기가가 왜 다 나오지 않지?

내 Windows에서 메모리 4기가가 왜 다 나오지 않지?

  • Comments 13
  • Likes

4GB 의 메모리가 설치되어 있는 경우와 관련된 마이크로소프트 고객 지원 문서(http://support.microsoft.com/?id=929605)를 보시면 아래의 설명이 있습니다.

clip_image002

위의 이야기를 조금 쉽게 설명드리면, 하드웨어가 작동하기 위해서는 메모리가 필요합니다.

대표적인 하드웨어가 바로 비디오 카드가 여기에 해당됩니다. 운영 체제에서는 물리적인 메모리 주소(Physical Memory Address)의 값을 실제 운영 체제에서 사용할 수 있는 메모리 용량으로 표시해줍니다.

그렇지만 위의 설명된 하드웨어가 사용할 메모리 맵핑용(MMIO)가 할당되게 되면, 아래의 그림과 같은 물리적인 메모리 주소 형태가 되게 됩니다. MMIO의 메모리 영역이 할당되고, 나머지 실제 메모리(4GB)가 할당되지만, 32비트 운영 체제의 한계인 2의 32승 = 4G를 넘어가기 때문에 인식을 못하는 형국이 되게 됩니다.

하드웨어에서 메모리 할당을 이렇게 하도록 되어져 있기 때문이므로, Windows Vista, Windows XP, 기타 여러 운영 체제에서 동일한 형태를 띄게 됩니다.

결론적으로, 실제 메모리 영역은 존재하지만, 32bit 운영 체제에서 인식을 하지 못하는 형태가 되는 것이죠.

clip_image003
<출처 : Sankim의 블로그>

이를 인식시키기 위해서는 OS 주소 범위를 64bit확장하는 PAE 옵션을 사용하던지, x64 운영 체제를 이용해야 합니다. x64 운영 체제에서는 2의 64승까지 인식할 수 있기 때문에, 공중에 떠있던 MMIO 점유량만큼을 더 인식할 수 있게 됩니다. 32bit 운영체제에서 PAE(Physical Address Extension) 옵션을 사용하는 방법에 대해서는 http://support.microsoft.com/?id=929580에 나와있습니다.

Windows Vista 서비스팩 1에서는 이러한 혼란을 감소시키고자, 시스템의 물리적인 메모리에 대한 양을 BIOS에 질의하여 답을 받는 형태로 변경되어져 있으며, 이는 하드웨어 BIOS에 따라 지원여부가 판단됩니다. 그렇지만, 작업 관리자(Task Manager)에서 표시되는 실제 사용 가능한 물리적인 메모리 주소는 여전히 감소된 양을 표시합니다. (밑의 예제에서 보신데로 실제 표시는 4G로 나오나, 사용 가능한 메모리는 3454M로 나타납니다.)

clip_image005 clip_image007

Comments
  • KB929605에서 대~충 MMIO를 이해할뻔했는데 아래 "PAE 모드 드라이버 호환성 문제" 읽다가 갑자기 현기증이 일어나네요... 누기 이런거 에니메이션으로 안만들어주나요? ㅎㅎ 이케 쓰면 백과장님은 "님이 한번 만들어주세요"라고 하실꺼같아서 걍 읽고 외울래요. 이해가 안가면 외우라는 말씀이 인터넷 떠돌다보면 보이드라구요. ^___________^

  • Urikiri님께서 에니메이션 만들어주세요 ^^;;

  • 안녕하세요.

    32bit Windows XP MCE 2005 사용중입니다.

    DDR2 메모리 가격하락으로 4기가 바이트를 채웠는데요. 역시나 3.11 GB 만 인식합니다. 해서 설명하신데로 CMD 에서

    BCDEDIT /SET PAE ForceEnable 를 적용하니까 BCDEDIT 이 인식되지 않는 다고 나오네요. BCD 화일을 설치해 주어야 하는 건가여??

  • Windows XP에서는 bCDEDIT가 없습니다. BCDEDIT는 Windows Vista용이며, Windows XP에서는 Boot.INI를 수정하셔야 합니다.

    참고로 말씀드리면 PAE 옵션의 경우, 하드웨어 드라이버에 따라서 지원이 안되는 하드웨어가 있다는 것도 양지하시기 바랍니다.

  • 앗 제 이름에 걸려있는 URL이 잘못 입력되어있네요. 다음부터 잘 입력해야겠어요 ㅜㅜ

  • 4G로 메모리가 부족하신 분들은 64bit Windows를 고려해보는 것도 좋을것 같네요 :)

  • 앗 중쓰님.. :)

    x64 운영 체제를 쓰는게 가장 좋죠.. 응용 프로그램이 좀 쫓아와주면 좋을 것이지만요..

  • 정확하게 기억하고 있지는 않지만, PAE의 경우에는 36비트로 확장해주는 것으로 알고 있습니다.

  • 수중생물님 안녕하세요!

    네 맞습니다. PAE는 4G이상을 처리할 수 있도록 36비트로 처리를 하게 됩니다.

  • 비스타부터는 부트부분이 변했습니다.

    bootmgr이라는 파일이 부팅을 관리합니다.

    (아마도 수정은 bcdedit로 하거나 vista boot pro로)

    2008 서버도 이 파일이 관리을 할 것입니다.

    파일속을 보니 이렇게 나오내요.

    Windows Boot Manager

    아마 관리자 권한이 필요한지 모르겠네요.

    알면 무엇하나 메모리가 안되는데...히~

    서버 2008도 32bit만...

    월정

  • 궁금한게 몇가지 있어 글을 남겨 봅니다.

    1. windows xp 32비트 버전일 경우 4G를 다 사용하지 못하고 표시된 어드레스 영역 만큼만 사용 할 수 있다는 말씀이신가요??

    2. 완전한 32비트 프로세서에서도 4G 메모리를 설치하고 PAE를 사용하면, 36비트 범위를 어드레싱 할 수 있는건가요? 링크에 프로세서 관련 언급은 없군요.

  • Windows XP 32비트 버전에도 하드웨어에 따라 다 사용 못하는 경우가 발생합니다. 제 경우에도 이전 서버급에 Windows XP 32비트를 설치했더니 3.2G정도 사용이 가능했습니다.

    32비트 프로세서에서도 PAE 옵션을 사용하면 4G 메모리를 억세스할 수 있을 수도 있습니다. http://support.microsoft.com/kb/291988/ko를 참고해보시면 일부 칩셋에서는 PAE를 사용할 수 없는 경우도 있다고 명시되어져 있습니다. 이는 PAE가 플랫폼에서 야기된 것이 아니라, 하드웨어적인 측면이기 때문입니다.

  • 64비트 라고 하는 이야기는 서버 시장에서는 이미 오래전부터 언급되오던 부분이었습니다. 2007년 7월에 제가 포스팅했던 End of 32-bit Windows Servers 에서

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment