Microsoft MVP성태의 닷넷 이야기
개발 환경 구성: 6. 4GB 메모리 구성 [링크 복사], [링크+제목 복사],
조회: 21928
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

분위기가 제법 무르익었나 봅니다. ^^
요즘 들어, 심심치 않게 4GB 메모리에 대한 이야기가 흘러나오는군요. 그만큼 질문이 많아졌다는 것이고, 그것은 곧 4GB 구성한 개발자들이 많아졌다는 얘기일 것입니다.

현재는, 4GB 메모리를 꽂았다고 해서 4GB 메모리 전체를 사용할 수는 없습니다.
예전 도스 시절에 640KB 메모리를 설치하고 프로그램을 배우시던 분들은 아시겠지만, 바이오스 및 비디오 램등을 640KB 이후의 영역으로 밀어내기 위해서 갖은 애를 다 쓰곤 했었지요.

즉, 4GB 메모리 영역은 물리 램만 매핑되는 것이 아니라, 그 외의 바이오스나 비디오 램 등이 같이 매핑이 되는 영역이기도 합니다.
그렇기 때문에 4GB 물리 램을 설치하게 되면, 비디오 램 등에 영역을 빼앗겨서 그 부분은 여분의 램으로 사용할 수 없게 되어 버립니다.

이러한 문제점은, 우선 메인보드 자체가 4GB 이상을 처리할 수 없기 때문에 발생합니다. 메인보드 사양을 보면 4GB 물리 램까지 지원한다고 되어 있기는 하지만, 현실적으로 비디오 램 영역까지 하면 그것이 의미가 없게 되버립니다.

최근 들어서는, 4GB 이후의 영역에 PCI 장치들의 메모리 영역을 매핑할 수 있도록 해주는 옵션이 있던 것 같은데요. 아마도 그걸 사용하게 되면 4GB 물리 램에 대한 인식 영역을 좀 더 넓힐 수 있을 것입니다.

그런데, 마더보드만 그것을 지원한다고 해서 되는 것이 아닙니다. 운영체제 자체가 32bit인 경우에는 그나마도 4GB 자체가 한계이므로, 아마도 마더보드 설정으로 4GB 이후로 밀어냈다면 시스템에 문제가 있을 지도 모릅니다. 오히려, 32bit 윈도우즈 시스템에서는 마더보드 설정을 통한 메모리 매핑을 설정하지 말고, 비디오 램 등으로 밀려진 램 영역을 사용 할 수 있도록 /PAE 옵션을 주는 것이 권장됩니다. 하지만 이 방법도 그리 좋은 해결책은 아닙니다. 왜냐하면, PAE 영역은 일반 램의 메모리 할당 API가 아닌 별도의 API를 사용해야만 사용이 가능하기 때문에, 그 부분을 사용하기 위해서는 응용 프로그램 자체가 그 영역의 램을 사용할 수 있도록 프로그래밍 되어져야 합니다.

따라서, 근본적인 해결책은 운영체제를 64bit로 설치하는 것입니다.

그럼, 정리를 해볼까요? ^^ 4GB 메모리를 완전하기 쓰기 위해서는 마더보드를 4GB 이상을 지원하는 시스템 또는 바이오스 또는 PCI 메모리 등을 4GB 이상으로 밀어낼 수 있는 옵션을 가진 것으로 구매를 해야 되고, 운영체제는 64bit 시스템으로 설치를 해야만 합니다.

참고 URL:
Windows - When 4 = 3
; http://www.kudzuworld.com/blogs/Tech/2006_08_13.aspx

Why can't I see all of the 4GB of RAM in my machine?
; http://blogs.msdn.com/oldnewthing/archive/2006/08/14/699521.aspx

-----------------------------

요즘 들어 나온 마더보드는 최대 메모리가 8GB / 16GB까지도 가는군요.
AMD CPU 마더보드 쪽의 nVIDIA nForce 570 이상의 칩셋들은 16GB 메모리를 지원하고,
Itenl CPU 마더보드 쪽의 Intel 965P 칩셋 이상에서는 8GB 메모리를 지원합니다.









[최초 등록일: ]
[최종 수정일: 6/28/2021]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 



2008-11-24 01시18분
Pushing the Limits of Windows: Virtual Memory
; http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx

4GB 메모리를 32bit 윈도우즈에서 모두 사용하지 못하는 이유에 대해 자세히 설명하고 있습니다.
kevin25

... 91  92  93  94  95  96  97  98  99  100  101  102  103  [104]  105  ...
NoWriterDateCnt.TitleFile(s)
11366정성태11/25/201720794오류 유형: 430. 이벤트 로그 - Cryptographic Services failed while processing the OnIdentity() call in the System Writer Object.
11365정성태11/25/201722113오류 유형: 429. 이벤트 로그 - User Policy could not be updated successfully
11364정성태11/24/201724787사물인터넷: 11. Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 마우스로 쓰는 방법 (절대 좌표) [2]
11363정성태11/23/201724735사물인터넷: 10. Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 마우스 + 키보드로 쓰는 방법 (두 번째 이야기)
11362정성태11/22/201720421오류 유형: 428. 윈도우 업데이트 KB4048953 - 0x800705b4 [2]
11361정성태11/22/201723393오류 유형: 427. 이벤트 로그 - Filter Manager failed to attach to volume '\Device\HarddiskVolume??' 0xC03A001C
11360정성태11/22/201723883오류 유형: 426. 이벤트 로그 - The kernel power manager has initiated a shutdown transition.
11359정성태11/16/201723124오류 유형: 425. 윈도우 10 Version 1709 (OS Build 16299.64) 업그레이드 시 발생한 문제 2가지
11358정성태11/15/201728134사물인터넷: 9. Visual Studio 2017에서 Raspberry Pi C++ 응용 프로그램 제작 [1]
11357정성태11/15/201728611개발 환경 구성: 336. 윈도우 10 Bash 쉘에서 C++ 컴파일하는 방법
11356정성태11/15/201730137사물인터넷: 8. Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 마우스 + 키보드로 쓰는 방법 [4]
11355정성태11/15/201725327사물인터넷: 7. Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 마우스로 쓰는 방법 [2]파일 다운로드2
11354정성태11/14/201730165사물인터넷: 6. Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 키보드로 쓰는 방법 [8]
11353정성태11/14/201727152사물인터넷: 5. Raspberry Pi Zero(OTG)를 다른 컴퓨터에 연결해 가상 이더넷 카드로 쓰는 방법 [1]
11352정성태11/14/201723499사물인터넷: 4. Samba를 이용해 윈도우와 Raspberry Pi간의 파일 교환 [1]
11351정성태11/7/201726382.NET Framework: 698. C# 컴파일러 대신 직접 구현하는 비동기(async/await) 코드 [6]파일 다운로드1
11350정성태11/1/201722441디버깅 기술: 108. windbg 분석 사례 - Redis 서버로의 호출을 기다리면서 hang 현상 발생
11349정성태10/31/201723119디버깅 기술: 107. windbg - x64 SOS 확장의 !clrstack 명령어가 출력하는 Child SP 값의 의미 [1]파일 다운로드1
11348정성태10/31/201719322디버깅 기술: 106. windbg - x64 역어셈블 코드에서 닷넷 메서드 호출의 인자를 확인하는 방법
11347정성태10/28/201723088오류 유형: 424. Visual Studio - "클래스 다이어그램 보기" 시 "작업을 완료할 수 없습니다. 해당 인터페이스를 지원하지 않습니다." 오류 발생
11346정성태10/25/201719732오류 유형: 423. Windows Server 2003 - The client-side extension could not remove user policy settings for 'Default Domain Policy {...}' (0x8007000d)
11338정성태10/25/201717304.NET Framework: 697. windbg - SOS DumpMT의 "BaseSize", "ComponentSize" 값에 대한 의미파일 다운로드1
11337정성태10/24/201719852.NET Framework: 696. windbg - SOS DumpClass/DumpMT의 "Vtable Slots", "Total Method Slots", "Slots in VTable" 값에 대한 의미파일 다운로드1
11336정성태10/20/201721134.NET Framework: 695. windbg - .NET string의 x86/x64 메모리 할당 구조
11335정성태10/18/201719927.NET Framework: 694. 닷넷 - <Module> 클래스의 용도
11334정성태10/18/201720657디버깅 기술: 105. windbg - k 명령어와 !clrstack을 조합한 호출 스택을 얻는 방법
... 91  92  93  94  95  96  97  98  99  100  101  102  103  [104]  105  ...