Large Address Aware - 32Bit Application은 Virtual Memory 2GB를 사용 - 3GB의 경우 32Bit Application은 Virtual Memory 3GB를 사용 - 32Bit Application with Large Address Aware인 경우 /3GB일때 3GB사용 - 32Bit Application을 64Bit OS에서 돌리면 wow64로 4GB의 Memory가 할당된다. - /3GB와 64Bit OS에서 4GB Memory 인식을 위해 Large Address Aware 옵션으로 Program이 Compile 되어야 함
Paged Pool 메모리가 부족한 경우 다음과 같은 이벤트 로그가 발생합니다. 원본 - SRV 종류 - 오류 이벤트 ID - 2020 설명 - 풀이 비었으므로, 서버가 시스템의 페이지된 풀에서 할당하지 못했습니다. 데이터 - 0000: 00040000 00540001 00000000 c00007e4 0010: 00000000 c000009a 00000000 00000000 0020: 00000000 00000000 0000000b 위의 메시지가 발생하는 경우 Kernel의 PagedPool 메모리 부족으로 서버가 Hang이 걸릴 수 있습니다. 특히 3GB를 주는 경우에는 Kernel 메모리가 줄어들기 때문에 사용할 수 있는 PagedPool 메모리가 줄어들게 됩니다. [그림 1] Paged, NonPa..
Segmentation 에 의해 생성된 32 bit의 Linear Address는 4GB까지 지정할 수 있다. 이런 Linear Address를 사용하여 페이징 절차를 거치면 Memory의 Physical 주소를 얻을 수 있다. 그럼 이런 Paging은 어떤 단계로 이루어지는지 알아보도록 하자 [그림 1] Paging Paging을 하는 단계는 다음과 같다. 1) 32 bit의 선형주소를 Page Directory Index, Page Table Index, Offset의 3부분으로 나눈다. 2) CPU의 CR3 레지스터가 가리키고 있는 페이지 디렉토리와 선형주소로 부터 얻은 페이지 디렉토리 인덱스를 사용하여 페이지 테이블의 포인터를 얻는다. 3) 페이지 테이블의 포인터와 선형 주소의 페이지 테이블 인덱..