Page table

이후띵·2022년 1월 3일
0

PintOS

목록 보기
15/31

페이징 기법(paging)은 컴퓨터가 메인 메모리에서 사용하기 위해 2차 기억 장치로부터 데이터를 저장하고 검색하는 메모리 관리 기법이다. 즉 가상기억장치를 모두 같은 크기의 블록으로 편성하여 운용하는 기법이다. 이때의 일정한 크기를 가진 블록을 페이지(page)라고 한다. 주소공간을 페이지 단위로 나누고 실제기억공간은 페이지 크기와 같은 프레임으로 나누어 사용한다.

페이징 기법이 적용된 시스템에서 가상주소는 순서쌍 (p,d) 로 나타낼 수 있다.
p는 가상기억장치 내에서 참조될 항목이 속해 있는 페이지 번호이고,
d는 페이지 내에서 참조될 항목이 위치하고 있는 곳의 변위(?)이다.

어떤 프로세스가 현재 참조하고 있는 페이지가 주기억장치 내에 있다면 그 프로세스는 수행될 수 있다. 반대로 주기억장치 내에 없다면 그 해당 페이지를 보조기억장치로부터 읽어와서 페이지 프레임의 한 블록에 저장한다.


virtual memory 를 page 단위로 (핀토스의 경우는 4kb)나눠서 관리함. 각 프로세스는 하나의 페이지 테이블을 갖음. 페이지 테이블은 프로세스의 페이지 정보를 저장하고 있음. 테이블은 페이지번호와 해당 페이지에 할당된 물리 메모리의 시작주소가 써있음. 테이블의 두 정보를 합해서 물리메모리 주소를 알 수 있음.(offset 등을 통해서)

논리 주소 공간의 크기가 2의 m승이고, 페이지가 2의 n승이라면 논리주소(logical address)의 상위 m-n Bit는 페이지 번호를 하위 n비트는 페이지 변위(offset)을 나타낸다

하나의 페이지는 x86과 amd64에서는 4KB, ia64에서는 8KB의 크기를 가진다.

profile
이후띵's 개발일지

0개의 댓글