Linux 프로세스의 가상 메모리 구조

Linux 프로세스의 가상 메모리 구조

가상 메모리를 다음과 같이 보여주는 교과서를 읽고 있습니다. 여기에 이미지 설명을 입력하세요.

Linux는 또한 연속적인 가상 페이지 세트(시스템의 총 DRAM 크기와 동일한 크기)를 해당하는 연속적인 물리적 페이지 세트에 매핑합니다. 이는 커널이 물리적 메모리의 특정 위치에 액세스할 수 있는 편리한 방법을 제공합니다.

나는 여기서 약간 혼란 스럽습니다. 제 생각에는 두 번째 부분인 "물리적 기억"을 가리키는 것 같아요. 하지만 i가 물리적 메모리의 특정 위치에 액세스하는 편리한 방법이라는 것은 무엇을 의미합니까? 특정 위치에 액세스하려면 CPU는 여전히 TLB에서 사용할 수 있는 가상 주소로 명령을 발행해야 하며, 이는 물리적 메모리에 액세스하기 위한 물리적 주소를 생성하므로 "물리적 메모리" 부분은 정확히 무엇입니까? ? 을 위한?

답변1

실제 메모리를 매핑하는 부분은 실제로 실제 메모리에 액세스하는 편리한 방법을 제공하기 위한 것입니다. 이 매핑을 사용하는 아키텍처에서는 다음과 같습니다.x86-64addr, 가상 주소 +에 액세스하면 모든 물리적 주소에 액세스할 수 있습니다 .page_offset_baseaddr

이 매핑이 없으면 지정된 물리적 주소에 액세스하려면 해당 주소가 포함된 매핑을 찾거나, 존재하지 않는 경우 매핑을 만들어야 합니다. 이것은 훨씬 더 비쌉니다.

관련 정보