페이징 ⭐️⭐️
페이징 기법?
- 메모리의 물리 주소 공간을 프레임이라는 일정 크기로 자른 뒤,
- 프로세스의 논리 주소 공간을 페이지라는 프레임과 동일한 크기로 자르고,
- 페이지를 프레임에 할당
→ 즉 논리주소 & 물리주소가 완전히 분리됨
→ but 내부 단편화.. 프로세스 크기에서 페이지 크기를 나누었을 때 딱 나누어떨어지지 않을수도 있음. 남은 공간 낭비됨.
페이지 테이블 (프로세스마다 있음)
논리 주소 <페이지 번호, offset> → 페이지 테이블로 변환 → 물리 주소 <프레임 번호, offset>
- 물리 주소에 불연속적으로 배치되더라도
- 논리 주소에는 연속적으로 배치되도록 하는 방법
→ 페이지 번호와 프레임 번호를 짝지어주면 되니간 ~~

PTBR (Page Table Base Register)
- 컨텍스트 스위칭이 일어날 때, 페이지 테이블 역시 reload 되어야 한다. 왜? 프로세스마다 페이지 테이블이 있기 때문. → 페이지 테이블의 주소를 PCB에 저장하기!
- (메모리 내에 있는) 프로세스마다 있는 페이지 테이블 주소값을
- (CPU 내에 있는) PTBR이 저장한다(가리킨다).
TLB (Translation Look-aside Buffer)
- PBE 참조 + 실제 데이터 참조를 위해 메모리를 두 번 접근하게 됨
- 페이지 테이블의 일부를 CPU 내부로 갖고 와서 저장하는 캐시 메모리로 불필요한 메모리 접근을 하지 않을 수 있음