이 질문에 대답하기 위해 나는 전제 조건 이해를 방문 할 것입니다. 하드웨어 지원 없이는 순수 수요 페이징을 수행 할 수 없습니다. 모든 최신 컴퓨터 아키텍처는 페이징을 지원하지만 많은 구현 세부 사항이 있습니다.
x86 프로세서는 페이지도 것을 여부, 관련성 액세스 privilages과에 대해 가상 주소 공간 및 페이지 매핑의 트랙뿐만 아니라 비트를 유지하기 위해 페이지 테이블을 소위 사용할 수 있는 실제 메모리입니다. 위반은 OS에 의해 트랩되는 페이지 결함을 트리거합니다.
이에 대한 자세한 내용은 이 기사를 참조 하십시오 .
페이지 스와핑 문제에 답하려면 먼저 운영 체제가 어떤 프로세스에서 어떤 페이지를 사용하고 어떻게 할당되는지 추적하는 방법에 대한 질문을 방문해야합니다. 그러한 용도로 사용할 수있는 여러 가지 데이터 구조가 있습니다. 프레임 할당 여부를 표시하는 플랫 비트 배열은 한 가지 방법입니다. 연결된 목록 또는 스택은 다른 것입니다. 순수 수요 페이징을 사용하면 할당 된 페이지가 할당 될 때 실제로 존재하는 것으로 표시되지 않습니다. 이것은 프로세스에 실제로 쓰일 때까지 물리적 램이 따로 설정되지 않는 효과가 있습니다. 일단 하드웨어가 설치되면 하드웨어가 OS에서 트랩하는 결함을 처리 한 다음, 이미 할당 된 가상 페이지에 할당 할 수있는 실제 페이지가없는 경우 OS는 스와핑 알고리즘을 사용합니다.
페이지 프레임 할당에 대한 자세한 내용은 여기를 참조 하십시오 . 여기에는 몇 가지 적합한 데이터 구조에 대한 일반적인 개요가 표시됩니다.
페이지 할당에 적합한 알고리즘이 구현되면 스왑을 위해 디스크 공간을 할당하기위한 다른 알고리즘을 선택해야합니다. 예를 들어, Windows는 페이지 스와핑을 위해 파일 시스템에서 플랫 파일을 사용해 왔습니다. 할당 된 페이지를 추적하는 데이터 구조의 각 노드에 대해 파일에서 오프셋에 대한 관련 포인터가 있으며 디스크에서 페이지의 위치를 나타냅니다. 유닉스 계열 운영 체제는 전통적으로 페이지 스와핑을 위해 별도의 파티션을 사용했지만 파일 시스템 계층이 없기 때문에 더 빠릅니다.
스와핑 알고리즘 데이터 구조를 할당 알고리즘의 데이터 구조와 이혼하는 것도 가능하지만, 둘은 서로 관련되어 있기 때문에 종종 수행되지 않을 수 있습니다.
내가 처리 한 상대적인 간결함에도 불구하고 귀하의 질문에 답변이 되었기를 바랍니다. 운영 체제에 대해 배우는 가장 좋은 방법은 wiki.osdev.org 및 www.osdever.net과 같은 사이트에서 찾을 수있는 불쾌한 아키텍처 별 세부 정보를 자세히 살펴 보는 것입니다. 그런 세부 사항에.