페이지 크기: 1KB
페이지 테이블: 1 2 5 4 8 3 0 6 일때,
3000을 2진수로 변환하면 1011 1011 1000
페이지 크기가 1KB = 2^10 Byte 이므로, 뒤에서부터 10자리가 변위 데이터
페이지 인덱스: 10(이진수) = 2(십진수)
변위(displacement): 11 1011 1000 = 952
페이지 테이블에서 인덱스 2에 해당하는 프레임 넘버는 5이며, 이는 이진수로 101이다.
∴ 물리주소: 1 0111 1011 1000 = 0x17B8
0x1A53를 이진수로 변환하면 1 1010 0101 0011
110을 10진수로 변환하면 6
프레임 넘버 6에 해당하는 페이지 테이블 인덱스는 7
7을 이진수로 나타내면 111
∴ 논리주소: 1 1110 0101 0011 = 7763
프로세스마다 최대 (프레임 크기 - 1) 만큼의 메모리가 낭비될 수 있다.
ex) 프로세스 크기가 15KB이고, 메모리 프레임 크기가 4KB인 경우 15 % 4는 1이므로, 1KB만큼 내부 단편화가 발생하게 된다.
장점: 주소 변환 속도가 빠르다.
단점: 페이지 테이블 크기에 제한이 있다.
장점: 페이지 테이블 크기에 제한이 없다.
단점: 주소 변환으로 인해 속도가 느리다.
MMU에 소속된 칩으로, 자주 참조되는 가상주소-물리주소 변환 정보를 저장해놓은 캐시이다.
👉 TLB를 사용하는 이유는?
Page Table을 이용하는 방법으로 레지스터를 이용하는 방법과 메인 메모리를 이용하는 방법을 생각할 수 있는데, 레지스터를 사용하는 방법을 이용하기에는 Page Table이 너무 크고, 메인 메모리에 Page Table을 저장하면 문맥 교환 속도는 빨라지지만 두 번의 메모리 액세스가 필요하므로 메모리 액세스 시간이 느려질 수 있다. 이러한 문제점을 해결하기 위해 TLB를 사용한다.