32 비트 OS 시스템이 8GB RAM + 20GB 페이지 파일을 모두 사용할 수 있습니까? 단위는 바이트이므로 4GB입니다. 이는 32 비트 OS (Windows

32 비트 OS에 대해 이해하는 것은 주소가 32 비트로 표현되므로 대부분의 OS는 2 32 = 4G 메모리 공간을 사용할 수 있습니다 . 단위는 바이트이므로 4GB입니다.

이는 32 비트 OS (Windows 또는 Unix)를 사용하는 시스템이 하드 디스크에 총 4GB 이상의 RAM + 페이지 파일 (예 : 8GB RAM 및 20GB 페이지 파일)을 가지고있는 경우 메모리가 “사용되지 않음”을 의미합니다 “?

으로 “최대 사용” 나는 RAM 또는 페이지 파일을 늘리면 성능이 도움이되지 않습니다 것을 의미한다; 물론 응용 프로그램이 OS에서 메모리를 계속 요청하지만 실패 할 가능성은 항상 있습니다.

마찬가지로이 32 비트 OS 시스템에 2GB RAM 및 2GB 페이지 파일이 있으면 페이지 파일 크기를 늘려도 성능에 도움이되지 않습니다. 이것이 사실입니까?



답변

32 비트 OS에 대해 이해하는 것은 주소가 32 비트로 표현되므로 최대 OS는 2 ^ 32 = 4GB 메모리 공간을 사용할 수 있다는 것입니다

이 가장 프로세스가 있습니다 주소는 4GB입니다. 메모리주소 공간이 혼동 될 수 있습니다 . 프로세스는 주소 공간보다 더 많은 메모리를 가질 수 있습니다. 이는 비디오 처리 및 기타 메모리 집약적 응용 프로그램에서 완벽하게 합법적 이며 매우 일반적입니다. 프로세스는 수십 GB의 메모리를 할당하고 마음대로 주소 공간 안팎으로 스왑 할 수 있습니다. 한 번에 2GB 만 사용자 주소 공간에 들어갈 수 있습니다 .

집에 4 대짜리 차고가 있다면 여전히 50 대의 차를 소유 할 수 있습니다. 차고에 보관할 수는 없습니다. 최소한 46 개를 저장하려면 보조 저장 장치가 있어야합니다. 차고에 보관하는 차와 길 아래 주차장에 보관하는 차는 귀하에게 달려 있습니다.

이것은 32 비트 OS를 의미합니까? Windows 나 유닉스 일 경우, 컴퓨터에 8GB RAM 및 20GB 페이지 파일과 같이 4GB 이상의 하드 디스크에 RAM + 페이지 파일이있는 경우 “메모리 사용”이 발생하지 않습니까?

물론 그런 의미는 아닙니다. 단일 프로세스는 그보다 더 많은 메모리를 사용할 수 있습니다! 다시 프로세스가 사용하는 메모리의 양은 공정에서 사용하는 가상 주소 공간의 크기에 거의 무관하다. 차고에 보관하는 자동차의 수는 소유 한 자동차의 수와 완전히 관련이 없습니다.

또한 두 프로세스가 개인 메모리가 아닌 메모리 페이지를 공유 할 수 있습니다 . 20 개의 프로세스가 모두 같은 DLL을로드하면 프로세스는 모두 해당 코드의 메모리 페이지를 공유합니다. 그들은 가상 메모리 주소 공간을 공유하지 않고 메모리 를 공유 합니다 .

내 요점은 명확하지 않은 경우 메모리와 주소 공간에 대한 생각을 멈춰야한다는 것입니다. 왜냐하면 그것들은 전혀 같지 않기 때문입니다.

이 32 비트 OS 시스템에 2GB RAM 및 2GB 페이지 파일이 있으면 페이지 파일 크기를 늘려도 성능에 도움이되지 않습니다. 이것이 사실입니까?

당신은 50 대의 차와 4 대의 차고와 100 대의 주차장이 길 아래에 있습니다. 주차장 크기를 200 개 지점으로 늘립니다. 50 개의 추가 주차 공간 대신 ​​150 개의 추가 주차 공간을 확보 한 결과 자동차가 더 빨라 집니까?


답변

CPU는 최대 4Gb의 RAM 만 처리 할 수 ​​있습니다. 그러나 현재 CPU는 MMU ( 메모리 관리 장치 )를 사용하여 프로세스 별 메모리 주소를 실제 메모리 주소로 변환합니다.

이 MMU는 메모리 격리 (프로세스 A는 프로세스 B의 메모리를 조작 할 수 없음)에서 메모리 공유 (프로세스 A는 프로세스 B와 동일한 물리적 메모리 영역에 액세스하여 이러한 방식으로 데이터를 교환 할 수 있음)에 이르기까지 모든 종류의 다양한 트릭에 사용됩니다.

32 비트 CPU는 프로세스 당 4Gb의 메모리 만 지원하지만 Physical Address Extension을 사용할 때 최대 64Gb의 RAM을 처리 할 수 ​​있습니다 . 이는 프로세스 A가 첫 번째 4Gb의 메모리를 사용하는 반면 프로세스 B는 다음 4Gb를 사용합니다. 전체적으로 4Gb 이상의 실제 메모리가 사용 되지만 단일 프로세스에서 사용하는 총 메모리 양은 여전히 ​​4Gb로 제한됩니다 .

PAE는 커널 버전 2.3.23부터 Linux 및 일부 32 비트 버전의 Windows Server에서 지원되지만 32 비트 Windows XP, Vista 또는 7에서는 지원되지 않습니다.

CPU가 PAE를 지원하지 않으면 4GB의 실제 메모리로 제한됩니다 (또는 다른 요인에 따라 더 적음).

운영 체제는 PAE를 지원하는 CPU에 관계없이 실제 메모리의 일부를 디스크 (페이지 파일)로 제거 할 수 있습니다. 이를 통해 4Gb 이상의 결합을 사용하는 여러 프로세스를 시작할 수 있습니다. PAE가 갖는 유일한 영향은 프로세스 A를 실행하는 동안 프로세스 B의 4Gb를 실제 메모리에 유지할 수 있는지 여부입니다.


답변

32 비트 Windows 변형에 대해 구체적으로 말하면 Windows 2003 변형 이후 4GB 이상의 RAM을 지원했습니다 (또한 모든 RAM을 32 비트로 사용할 수 있도록 Windows 7 용 커널 핵을 얻을 수 있습니다). 그러나 질문의 ​​첫 부분에서 설명한 것처럼 비용이 발생합니다.

32 비트 운영 체제에서 포인터 (메모리 주소)의 크기는 CPU의 워드 길이 인 32 비트와 동일하며 2 ^ 32 = 4GB 메모리 공간을 허용합니다. Windows는 또한 응용 프로그램에 “가상 메모리”접근 방식을 취하므로 각 응용 프로그램에는 자체 메모리 공간이 있습니다.

각 포인터의 너비는 32 비트이므로 시스템에서 4GB 이상의 RAM을 지원할 수 있지만 각 응용 프로그램 의 포인터는 최대 4GB의 메모리 만 처리 할 수 ​​있습니다. 내가 아는 한, 이것은 32 비트 운영 체제에서 4GB 이상의 RAM을 사용하는 유일한 경고입니다. 전체적으로 4GB 이상의 RAM을 사용하는 많은 응용 프로그램을 가질 수 있지만 특정 프로세스 하나만 최대 4GB를 할당 / 액세스 할 수 있습니다.


귀하의 질문으로 돌아가서 2GB의 RAM을 사용하는 프로그램이 있다고 가정 해 봅시다. 이 프로그램의 인스턴스가 10 개이면 20GB입니다. 8GB의 RAM과 12GB의 다른 페이지 파일이 모두 사용됩니다. 따라서 32 비트 운영 체제에서는이 메모리를 모두 사용할 수 있습니다.

이 32 비트 OS 시스템에 2GB RAM 및 2GB 페이지 파일이 있으면 페이지 파일 크기를 늘려도 성능에 도움이되지 않습니다. 이것이 사실입니까?

페이지 파일 크기를 늘려도 RAM과 페이지 파일이 절대 최소값으로 설정되거나 컴퓨터가 지속적으로 스 래시되도록 설정하지 않는 한 일반적으로 성능이 향상 되지 않습니다 . 그러나 컴퓨터에 (가상) 메모리가 부족하지는 않습니다. 페이지 파일로 무언가를 제거해야 할 때마다 하드 드라이브가 RAM보다 훨씬 느리기 때문에 이미 엄청난 성능 저하를 겪고 있습니다.


답변

프로세서가 32 비트라고 말하면 단일 명령을 사용하여 32 비트 숫자로 작동 할 수 있다는 의미입니다. 이것은 1995 년 Pentium Pro가 출시 된 이래 인텔 아키텍처에서 36 비트 인 주소 버스의 너비와 관련이 없습니다 .

유명한 4GB 제한은 대부분의 PC 소프트웨어가 각 메모리 바이트를 포인터로 처리 할 수있는 플랫 메모리 모델을 사용한다는 사실에서 비롯됩니다 . 포인터는 사용할 레지스터에 맞아야하고 레지스터의 너비는 32 비트이므로 4GB로 제한됩니다.


답변