32 비트 운영 체제에서 2GB 제한


8

32 비트 운영 체제의 2GB 제한은 프로세스가 2GB의 메모리에만 액세스 할 수 있거나 모든 프로세스 가 총 2GB의 실제 메모리 만 사용할 수 있다는 것을 의미 합니까?

따라서 커널에 예약 된 2GB는 모든 프로세스가 함께 사용할 수있는 총량을 제한합니까?


Fabian은 페이징 파일이 아니라 실제 메모리만을 참조합니다.
Arda Xi

또한 일반적으로 운영 체제가 아닌 Windows 만 언급하고 있습니다.
Arda Xi

그는 그것에 대해 물을지도 모르지만 그러한 관계는 없습니다. 각 프로세스는 2GB 가상에 액세스 할 수 있습니다. 이 중 일부는 RAM ( "주민")에 있습니다. Windows 32 비트 클라이언트 버전에서 모든 프로세스의 상주 메모리와 OS의 상주 메모리는 총 4GB를 초과 할 수 없습니다. 실제 메모리 할당에는 2GB 분할이 없습니다.
Jamie Hanrahan

이 게시물에 허용 대답은 전체 고장 정보를 제공합니다 - stackoverflow.com/questions/490520/...
통화 연결음

답변:


4

32 비트 Windows OS의 메모리 제한에 대한 많은 오해가 있습니다.

우선, RAM이라고 할 때 여기에는 모든 종류의 RAM이 포함됩니다. 따라서 일반뿐만 아니라 비디오 RAM도 있습니다.

32 비트 OS의 프로세스 당 최대 사용 가능한 RAM 양은 2GB입니다. 64 비트 OS가있는 경우 32 비트 프로세스는 최대 4GB를 할당 할 수 있습니다.

또한 전체 OS는 결합 된 모든 프로세스에 대해 4GB 만 지정할 수있는 반면 64 비트 OS는 8TB를 할당 할 수 있습니다.

또한이 제한이 페이징 풀에 추가된다는 점이 흥미 롭습니다. 이는 32 비트 OS가 총 2GB를 초과 할 수 없음을 의미하며 이는 가상 메모리를 포함한 모든 응용 프로그램에 6GB를 의미합니다. 물론 다른 2GB는 페이징 파일에 저장되므로 하드 드라이브 속도로 제한되므로 RAM과는 아무런 관련이 없습니다.

자세한 내용 은 Windows 릴리스의 메모리 제한을 참조하십시오 .

참고 : 이것은 응용 프로그램 전용입니다. 32 비트 Windows OS는 총 4GB까지 할당 할 수 있지만이 중 2GB는 시스템 전용으로 할당되며 응용 프로그램은 2GB 만 남겨 둡니다. 경우에 따라 (특히 최신 OS) 응용 프로그램의 경우 3GB와 커널의 경우 1GB로 나뉩니다.

나는 단지 질문에 대한 맥락이기 때문에 Windows에 대해서만 논의했습니다. 다른 OS의 한계에 익숙하지 않습니다.


2
이 답변은 완전하지 않습니다. 여기에는 비디오 메모리가 포함되었다는 것 이상의 "주소 공간"개념이 포함되어 있지 않으며 32 비트 운영 체제의 주소 공간은 실제로 2GB가 아닌 확장명이없는 4GB로 제한됩니다 (사용자 3GB의 RAM으로 부팅하도록 XP의 32 비트 복사본을 알려줄 수도 있습니다)
lunixbochs

1
문제는 주소 공간이 무엇인지에 관한 것이 아닙니다. 메모리가 처리되는 방식과 32 비트 정수의 한계를 논의하여 모두를 지킬 수는 있지만, 이것이이 질문에 관한 것이 아니므로 불필요하게 복잡해 보입니다. 그리고 / 3GB 스위치를 사용할 수 있습니다. 이 질문에는 포함되지 않습니다.
Arda Xi

1
4GB 메모리 제한은 표준 32 비트 x86 아키텍처의 실제 메모리에만 적용됩니다. 가상 메모리는 다르며 페이지 파일 또는 스왑 파티션을 사용하는 경우 32 비트 OS는 프로세스 당 총 4GB 이상의 메모리를 사용할 수 있습니다. 하드 드라이브 속도는 사용 가능한 페이지 파일 크기 또는 스왑 공간에 영향을 미치지 않습니다 (하드 드라이브에 공간이있는 경우 페이지 또는 스왑 가능). 페이징 / 스왑 성능에만 영향을줍니다.

1
비디오 램은 메인 램을 공유하는 통합 비디오 램이 아니라면 사용 가능한 물리적 램에서 빼는 것이 아니라면 언급하지 않았습니다. 사용 가능한 가상 메모리에는 영향을 미치지 않습니다. 전용 비디오 카드에는 시스템의 사용 가능한 메모리에 영향을주지 않는 자체 프로세서와 메모리가 있습니다.

@Spooky 완전히 사실이 아닙니다. 내 링크를 살펴보면 페이징 풀이 2GB 인 커널 모드 가상 주소 공간으로 제한되어 있음을 알 수 있습니다. 이는 약 6GB를 의미합니다.
Arda Xi

0

OP가 Windows OS를 참조하는 경우 PAE (Physical Address Extension)라는 개념을 가진 2003 서버 데이터 센터 또는 엔터프라이즈를 제외하고 모든 32 비트 OS가 총 4GB로 제한됩니다. 이것은 현대 리눅스 커널에서도 가능합니다. 물론, 32 비트 프로세서는 모바일 공간 밖에서 점점 더 드물어지고 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.