운영체제(OS)/keyword

(Project3-Virtual Memory) 페이지 테이블(Page Table)

스탠딩 2023. 12. 16. 15:31

페이지 테이블은 가상 주소와 물리 주소 간의 대응 관계를 기록한 표이다. 가상 메모리를 사용하는 시스템에서는 페이지 테이블을 통해 가상 주소가 어떤 물리 주소로 변환되는지를 알 수 있다. 각 프로세스마다 별도의 페이지 테이블이 존재하며, 페이지 테이블은 페이지 번호와 해당 페이지의 물리 주소를 매핑하는 엔트리로 구성된다.

 

출처 : https://cs.stackexchange.com/questions/66698/difference-between-page-table-and-inverted-page-table

 

페이지 테이블의 동작 원리

  • 가상 주소 변환: 프로세스가 가상 주소에 접근하려고 할 때, 페이지 번호를 추출하고 이를 페이지 테이블에서 검색하여 해당 페이지의 물리 주소를 찾아낸다.
  • 페이지 폴트 처리: 만약 페이지 테이블에서 해당 페이지 번호를 찾을 수 없다면 페이지 폴트가 발생하며, 운영체제는 디스크에서 해당 페이지를 읽어와 램에 적재하고 페이지 테이블을 갱신한다.

다단계 페이지 테이블

  • 개념: 모든 페이지 테이블을 메모리에 유지하면 메모리 소비가 많아지므로 다단계 페이지 테이블이 도입되기도 한다. 여러 수준의 테이블을 사용하여 일부만 메모리에 유지함으로써 효율을 높인다.
  • 페이지 테이블 엔트리 크기 조절: 다단계 페이지 테이블을 사용하면 페이지 테이블 엔트리의 크기를 작게 조절할 수 있어 메모리 절약 효과도 있다.

다단계 페이지 테이블 동작 원리:

  • 수준 1: 가장 높은 수준의 페이지 테이블, 가상 주소를 가상 페이지 번호로 변환.
  • 수준 2: 각 가상 페이지를 더 작은 페이지로 나누어 더 작은 페이지 번호로 변환.
  • 수준 3: 가장 낮은 수준의 페이지 테이블, 물리 주소로 변환.

출처 : https://stackoverflow.com/questions/59816941/how-do-multi-level-page-tables-actually-save-space