Memory Paging
- Paging 페이징
- 페이징이란? 가상주소공간을 고정된 크기 만큼의 유닛으로 나누는 것(그 유닛을 page라부름)
- Page Frame
- 가상주소에서 페이징이 일어나면, 물리주소에서는 Page Frame 페이지 프레임이라고 하는 page로 분할된다. (page 의 크기 = frame 의 크기 but page번호가 맞을 필요는 없다!)
- Page Table
- 페이지 테이블은 가상주소 → 물리주소로 변환할 때 필요한 것으로, PFN이라는 유닛으로 분할되어있다.(가상주소 페이지같이!)
- page - PFN - page frame이 1:1:1로 연결되어 있다.
- paging의 장점 → 외부단편화 문제 해결, 내부단편화 문제는 있을 수 있지만 뭐 괜찮아!
- 유연성(주소 공간 추상화(힙/스택이 어떻게 grow하는지 상관x))
- 단순성(free space 관리 차원)



- VPN : 페이지의 인덱스(번호) ⇒ Nbit, 주소공간 전체 크기/page의 사이즈 = 2^N
- Offset : 페이지의 사이즈를 나타냄 → 위의 예시에서 4bit 이므로 2^4 = 16byte의 크기의 page
- offset을 보고 사이즈를 알아내어 vpn이 몇 비트로 구성되어있는지 알아낼 수 있다.
- 문제에서 21 = 0~16(vpn = 00) / 17~32(vpn = 01) → 01 + 0101(5) 즉, 17과의 떨어진거리+1 (offset) = 21이 된다!
- 예시

3bit으로 변경되는 이유는 물리주소가 더 커서 !(가상주소 = 64KB 물리주소 = 128KB)
-
Page table
- 페이지테이블은 어디에 저장될까? → 메모리에 저장됨
- 계산 예시
