2014-12-20 6 views
1

PTE (페이지 테이블 항목)가 유효한 것으로 표시되어 있지 않으면 필요한 데이터가 메모리가 아니라 디스크에 있음을 의미합니다. 이제 페이지 폴트가 발생하고 OS가이 페이지의 데이터를 디스크에서 메모리로로드 할 책임이 있습니다.페이지 폴트가 발생하면 OS가 필요한 디스크 주소를 어디서 얻습니까?

제 질문은 OS가 정확한 디스크 주소를 어떻게 알 수 있습니까?

+0

일반적으로 Linux 기반 OS 및 디스크로 스왑 된 메모리 페이지의 예는 [Linux →/mm/swapfile.c → page_swap_info] (http : // lxr .free-electrons.com/source/mm/swapfile.C# L2701) 및 그 근방 – xmojmr

답변

0

시스템에 따라 묻는 중입니다. 유효한 것으로 표시되지 않은 PTE는 주소가 프로세스 주소에 전혀 없음을 의미 할 수 있습니다. 시스템은 주소가 유효하지만 논리 매핑에서 물리적 매핑이 존재하지 않음을 나타내는 다른 비트를 가질 수 있습니다.

운영 체제는 데이터를 저장하는 테이블을 유지 관리해야합니다.

데이터는 여러 위치에 존재할 수 있습니다. 1. 어디에도 매핑이없는 초기화되지 않은 데이터 일 수 있습니다. 물리적 페이지를 지우고 프로세스 주소 공간에 매핑하여 페이지 오류에 응답하십시오.

  1. 페이지 파일에있을 수 있습니다.

  2. 일부 시스템에는 별도의 스왑 파일이 있습니다.

  3. 실행 파일 또는 공유 라이브러리 파일에있을 수 있습니다.