가상메모리 2

[PintOS Project 3 - VIRTUAL MEMORY] pintos 가상 메모리 구조

pintos 실제 가상 메모리 구조가상 메모리는 페이지 단위로 나뉘고, 페이지 테이블을 통해 가상 주소를 물리 주소로 매핑한다. 가상 메모리는 물리 메모리 크기와 상관 없이 더 큰 주소 공간을 제공하고, 실제로 필요한 시점에만 물리 메모리를 할당하는 방식이다.  👇pintos에서 가상 메모리와 물리 메모리의 실체  `init.c`에서 Pintos main program을 시작하는 `int main(void)` 함수에서 `paging_init( mem_end )` 함수를 사용하여 페이징 초기화를 해준다.  `paging_init( mem_end )` 함수를 보면 pintos 실제 물리 주소 [ 0 ~ mem_end] 범위를 가상 주소에 매핑 해주는 반복문이 나온다. 실제 가상 메모리에서의 KERN_BAS..

카테고리 없음 2024.10.12

pml4(page map level 4) 페이지 테이블 최상위 레벨

pml4x86-64 아키텍처에서 사용하는 페이지 테이블(Paging) 시스템의 최상위 레벨을 나타낸다.페이지 테이블의 최상위 구조가 뭔데?쉽게 표현하자면, 페이지 테이블이 4층 건물이라면, PML4는 건물 4층에 위치한 첫 번째 입구라고 생각하시면 됩니다. 거기서부터 계단을 따라 더 낮은 레벨의 페이지 테이블로 내려가면서, 최종적으로 물리 메모리의 주소를 찾게 되는 겁니다.x86-64에서는 4단계의 페이지 페이지 테이블을 사용하여 가상 메모리와 물리 메모리 간의 매핑을 관리하는데 PML4(Page Map Level 4)는 가상 메모리 주소를 물리적 메모리 주소에 매핑하기 위한 가장 상위 레벨의 구조각 프로세스 또는 스레드가 자신의 페이지 테이블을 가리키고 관리하기 위해 사용된다.프로세스마다 다른 가상 주..