순수한 수요 페이징 동안 스왑 공간 관리


12

다음은 OS 홈 할당을 수행하면서 나왔음을 의심합니다. 그러나 간단한 코딩 질문보다 개념 기반으로 보이므로 IMHO 숙제 태그가 적합하지 않다고 생각합니다.

고정 된 양의 RAM 및 스왑 메모리가 주어지면 동시에 실행되는 여러 프로세스에 대한 순수 수요 페이징 체계에서 다음 두 경우에서 발생하는 상황은 스왑 공간에서 발생합니다.

  1. 프로세스에 페이지 결함이 발생하고 RAM에 사용 가능한 프레임이 없으므로 프로세스의 커널 프레임 청크 중 하나의 페이지 중 하나를 스왑으로 작성해야합니다 (간단히 복사를 고려하지 않습니다 쓰기시). 스왑 공간에서이 프레임을 어디에 기록하고 어떤 데이터 구조를 업데이트해야합니까?

  2. 프로세스가 특정 페이지를 페이지 인해 야하는 경우 스왑 메모리의 위치는 어디이며 스왑에 해당 페이지가 있는지 어떻게 알 수 있습니까?

잘 아시다시피, 순수한 수요 관리 계획 중에 스왑 공간을 관리하는 방법과 필수적인 데이터 구조를 이해하는 데 어려움을 겪고 있습니다. 귀하의 답변에있는 링크를 참조 할 수 있다면 좋을 것입니다 ( "Silberschatz의 운영 체제 개념-8 판"에서 검색했습니다. 내 질문에 대한 명확한 답변을 찾을 수 없었습니다).


3
좋은 하드 코어 CS 질문!
Dave Clarke

답변:


8

이 질문에 대답하기 위해 나는 전제 조건 이해를 방문 할 것입니다. 하드웨어 지원 없이는 순수 수요 페이징을 수행 할 수 없습니다. 모든 최신 컴퓨터 아키텍처는 페이징을 지원하지만 많은 구현 세부 사항이 있습니다.

x86 프로세서는 페이지도 것을 여부, 관련성 액세스 privilages과에 대해 가상 주소 공간 및 페이지 매핑의 트랙뿐만 아니라 비트를 유지하기 위해 페이지 테이블을 소위 사용할 수 있는 실제 메모리입니다. 위반은 OS에 의해 트랩되는 페이지 결함을 트리거합니다.

이에 대한 자세한 내용은 이 기사를 참조 하십시오 .

페이지 스와핑 문제에 답하려면 먼저 운영 체제가 어떤 프로세스에서 어떤 페이지를 사용하고 어떻게 할당되는지 추적하는 방법에 대한 질문을 방문해야합니다. 그러한 용도로 사용할 수있는 여러 가지 데이터 구조가 있습니다. 프레임 할당 여부를 표시하는 플랫 비트 배열은 한 가지 방법입니다. 연결된 목록 또는 스택은 다른 것입니다. 순수 수요 페이징을 사용하면 할당 된 페이지가 할당 될 때 실제로 존재하는 것으로 표시되지 않습니다. 이것은 프로세스에 실제로 쓰일 때까지 물리적 램이 따로 설정되지 않는 효과가 있습니다. 일단 하드웨어가 설치되면 하드웨어가 OS에서 트랩하는 결함을 처리 한 다음, 이미 할당 된 가상 페이지에 할당 할 수있는 실제 페이지가없는 경우 OS는 스와핑 알고리즘을 사용합니다.

페이지 프레임 할당에 대한 자세한 내용은 여기를 참조 하십시오 . 여기에는 몇 가지 적합한 데이터 구조에 대한 일반적인 개요가 표시됩니다.

페이지 할당에 적합한 알고리즘이 구현되면 스왑을 위해 디스크 공간을 할당하기위한 다른 알고리즘을 선택해야합니다. 예를 들어, Windows는 페이지 스와핑을 위해 파일 시스템에서 플랫 파일을 사용해 왔습니다. 할당 된 페이지를 추적하는 데이터 구조의 각 노드에 대해 파일에서 오프셋에 대한 관련 포인터가 있으며 디스크에서 페이지의 위치를 ​​나타냅니다. 유닉스 계열 운영 체제는 전통적으로 페이지 스와핑을 위해 별도의 파티션을 사용했지만 파일 시스템 계층이 없기 때문에 더 빠릅니다.

스와핑 알고리즘 데이터 구조를 할당 알고리즘의 데이터 구조와 이혼하는 것도 가능하지만, 둘은 서로 관련되어 있기 때문에 종종 수행되지 않을 수 있습니다.

내가 처리 한 상대적인 간결함에도 불구하고 귀하의 질문에 답변이 되었기를 바랍니다. 운영 체제에 대해 배우는 가장 좋은 방법은 wiki.osdev.org 및 www.osdever.net과 같은 사이트에서 찾을 수있는 불쾌한 아키텍처 별 세부 정보를 자세히 살펴 보는 것입니다. 그런 세부 사항에.


예, 이제 osdev.org에 대한 링크에 대해 데이터 구조 등의 세부 사항이 OS마다 크게 다를 수 있음을 이해합니다!
TCSGrad
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.