본문 바로가기

운영체제

x86(32비트) 모드, 주소 변환 과정

32비트 모드에서의 가상 주소 -> 선형 주소 -> 물리 주소 변환 과정

 

 

가상 주소를 선형 주소로 변환하는 과정(세그먼테이션)

 

GDTR 레지스터 -> GDT의 크기 필드와 기준 주소 필드로 구성 -> GDT의 기준 주소

세그먼트 셀렉터의 구조 



index는 GDT 또는 LDT 상에서의 위치를 나타내고,TI 비트는 GDT인지 LDT인지를 구분합니다.

 

GDTR로부터 GDT의 기준 주소와 세그먼트 셀렉터의 index를 통해 -> 세그먼트 디스크립터에 접근합니다.

세그먼트 디스크립터에는 세그먼트 기준 주소와 기타 정보가 포함되어있는데

세그먼트 기준 주소 + 논리주소값(오프셋) = 선형주소 가 됩니다.

 






 

 

 

선형 주소를 물리 주소로 변환하는 과정(페이징) 

  1. CR3 레지스터가 페이지 디렉터리 테이블의 기준 주소를 가리킨다.
  2. 페이지 디렉토리 테이블의 기준 주소 + 선형주소의 페이지 디렉토리 오프셋 = 페이지 디렉터리 엔트리
  3. 페이지 디렉터리 엔트리가 페이지 테이블의 기준 주소를 가리키고
  4. 페이지 테이블의 기준 주소 + 선형 주소의 페이지 테이블 오프셋 = 페이지 테이블 엔트리
  5. 페이지 테이블 엔트리는 페이지 기준 주소를 가리킨다.
  6. 페이지 기준 주소 + 선형주소의 오프셋 = 물리주소 가 됩니다.

 

 

 

전체적인 그림을 보면…