Microsoft MVP성태의 닷넷 이야기
개발 환경 구성: 6. 4GB 메모리 구성 [링크 복사], [링크+제목 복사],
조회: 20677
글쓴 사람
정성태 (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

... 61  62  [63]  64  65  66  67  68  69  70  71  72  73  74  75  ...
NoWriterDateCnt.TitleFile(s)
12365정성태10/12/202018634.NET Framework: 949. C# 9.0 - (3) 람다 메서드의 매개 변수 무시(Lambda discard parameters)파일 다운로드1
12364정성태10/11/202019535.NET Framework: 948. C# 9.0 - (2) localsinit 플래그 내보내기 무시(Suppress emitting localsinit flag)파일 다운로드1
12363정성태10/11/202021244.NET Framework: 947. C# 9.0 - (1) 대상으로 형식화된 new 식(Target-typed new expressions) [2]파일 다운로드1
12362정성태10/11/202017845VS.NET IDE: 151. Visual Studio 2019에 .NET 5 rc/preview 적용하는 방법
12361정성태10/11/202019926.NET Framework: 946. C# 9.0을 위한 개발 환경 구성
12360정성태10/8/202015054오류 유형: 666. The type or namespace name '...' does not exist in the namespace 'Microsoft.VisualStudio.TestTools' (are you missing an assembly reference?)
12359정성태10/7/202017304오류 유형: 665. Windows - 재부팅 후 iSCSI 연결이 끊기는 문제
12358정성태10/7/202018225오류 유형: 664. Web Deploy 설치 시 "A newer version of Microsoft Web Deploy 3.6 was found on this machine." 오류 [3]
12357정성태10/7/202015840오류 유형: 663. 이벤트 로그 - The storage optimizer couldn't complete retrim on New Volume
12356정성태10/7/202031465오류 유형: 662. ASP.NET Core와 500.19, 500.21 오류 (0x8007000d)
12355정성태10/3/202014987오류 유형: 661. Hyper-V Linux VM의 Internal 유형의 가상 Switch에 대한 IP 연결이 되지 않는 경우
12354정성태10/2/202029057오류 유형: 660. Web Deploy (msdeploy.axd) 실행 시 오류 기록 [1]
12353정성태10/2/202018427개발 환경 구성: 518. 비주얼 스튜디오에서 IIS 웹 서버로 "Web Deploy"를 이용해 배포하는 방법
12352정성태10/2/202019640개발 환경 구성: 517. Hyper-V Internal 네트워크에 NAT을 이용한 인터넷 연결 제공
12351정성태10/2/202018114오류 유형: 659. Nox 실행이 안 되는 경우 - Unable to bind to the underlying transport for ...
12350정성태9/25/202022655Windows: 175. 윈도우 환경에서 클라이언트 소켓의 최대 접속 수 [2]파일 다운로드1
12349정성태9/25/202016774Linux: 32. Ubuntu 20.04 - docker를 위한 tcp 바인딩 추가
12348정성태9/25/202017769오류 유형: 658. 리눅스 docker - Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock
12347정성태9/25/202033317Windows: 174. WSL 2의 네트워크 통신 방법 [4]
12346정성태9/25/202016753오류 유형: 657. IIS - http://localhost 방문 시 Service Unavailable 503 오류 발생
12345정성태9/25/202016351오류 유형: 656. iisreset 실행 시 "Restart attempt failed." 오류가 발생하지만 웹 서비스는 정상적인 경우파일 다운로드1
12344정성태9/25/202018274Windows: 173. 서비스 관리자에 "IIS Admin Service"가 등록되어 있지 않다면?
12343정성태9/24/202029299.NET Framework: 945. C# - 닷넷 응용 프로그램에서 메모리 누수가 발생할 수 있는 패턴 [5]
12342정성태9/24/202019230디버깅 기술: 171. windbg - 인스턴스가 살아 있어 메모리 누수가 발생하고 있는지 확인하는 방법
12341정성태9/23/202017295.NET Framework: 944. C# - 인스턴스가 살아 있어 메모리 누수가 발생하고 있는지 확인하는 방법파일 다운로드1
12340정성태9/23/202016945.NET Framework: 943. WPF - WindowsFormsHost를 담은 윈도우 생성 시 메모리 누수
... 61  62  [63]  64  65  66  67  68  69  70  71  72  73  74  75  ...