실제로 두 가지 질문을하고 있습니다.
- 페이지 테이블과 관련된 페이징 정책은 무엇입니까?
- "쓰기 가능한 데이터"페이지 (예 : R/W 권한이있는 가상 메모리)의 페이징 정책은 무엇입니까?
먼저 조금씩 교정하겠습니다. 하위 2 기가 바이트 영역은 창을 위해 예약되어 있다는 사실을 감안할 때
는
, 그것은 창 에 모든 프로세스에 대해
이 될 수있는 시스템 페이지 테이블을 유지한다고 메이크업 감각은 정확한 그것은 상부 의 것 2GB는 Windows에 예약되어 있으며 더 정확하게 - Windows 커널과 드라이버에서만 커널 모드로 액세스 할 수 있습니다.
이제 놀랄 수도 있지만 커널 메모리도 페이지 가능할 수 있습니다!따라서 기술적으로 32 비트 주소 공간의 어느 부분이 사용자/커널 모드에서 볼 수 있는지는 중요하지 않습니다. 페이징과 관련이 없습니다.
다른 수정 : 가상 메모리가 실제 메모리에 및이 페이지 파일에 저장되어있을 수 있습니다. OS가 주문형으로 페이지를 페이지 파일에 저장함으로써 물리적 스토리지를 해제한다는 일반적인 믿음이 있습니다. 잘못된.
실제로 Windows는 메모리 페이지를 페이지 파일 에 저장하고 전에 해제해야합니다. 사실, 백그라운드에서 모든 메모리 페이지를 페이지 파일 (맵핑 된 섹션과 같은 다른 파일과 관련된 파일 외)에 덤프합니다.
- 고부하시 (그들은 이미 저장하고 이후) OS가 페이징이 수 항상없는 커널 모드에서 빠른
- 를 메모리 페이지를 사용할 수있게됩니다 :이 두 가지 이유가있다. 높은 IRQL에서 실행되는 드라이버 (즉, 가장 긴급한 이벤트를 처리하는 드라이버)는 물리적 스토리지 드라이버에 액세스 할 수 없으므로 페이징이 불가능합니다.
- 확실히 몰라,하지만 OS의 구현 세부 사항에 따라 달라집니다 :
그래서, 질문에 대한 답변입니다. 나는 프로세스 당 페이지 테이블이 페이지 아웃되지 않을 이유가 없음을 알았다. 컨텍스트 전환 및 프로세스 가상 메모리 수정 중에 필요합니다. 두 경우 모두 시간이 중요한 이벤트에 속하지 않습니다.
확실히 "쓰기 가능한 데이터"메모리 페이지가 페이지 파일에 저장됩니다. 그것들은 물리적 인 기억에서 제거 되었습니까? 요청이있을 때만, 시스템로드 중에 가장 최근에 사용 된 순서대로.