다음 링크에서:페이지 테이블 관리 - kernel.org, 나는 이러한 비트를 이해하며 PROT_NONE
페이지 PRESENT
가 보호되지만 메모리에 상주한다는 것을 OS에 알리는 데 사용할 수 있습니다. 저는 이 2비트를 사용하여 프로세스가 액세스하는 페이지를 추적합니다. 이것이 내가 하는 일이다.
- 프로세스가 추적 중인 페이지에 액세스하려고 할 때 페이지 폴트가 발생하도록 비트를 지우고 추적하려는 프로세스에 대한 페이지 비트를
PRESENT
설정합니다 .PROT_NONE
- 페이지 오류 시, handler_pte_fault(x86)를 호출하기 전에 __handle_mm_fault 내부에서 페이지 추적 여부를 지우고
PROT_NONE
설정합니다 .PRESENT
정상적으로 실행됩니다.
그러나 동시에 운영 체제에서 페이지를 교체하면 문제가 발생합니다. 그래서 나는 알고 싶습니다:
PROT_NONE
비트가 설정된 페이지를 교환할 수 있나요?PROT_NONE
이렇게 보호된 페이지가 교체되면 이 비트는 어떻게 되나요? 페이지가 교체되었는지 여부를 구별하는 방법은 무엇입니까?PRESENT
비트가 지워졌 기 때문입니다 .
제가 이해한 내용이 틀렸다면 지적해주세요.