솜은 코튼

[OS] 프레임 (페이지 테이블) 본문

OS

[OS] 프레임 (페이지 테이블)

솜.코 2023. 5. 27. 22:33

 

 

페이지 테이블 크기

.

 

 

 

 

예로 가상 주소 공간의 크기가 2³²(4G)B, 페이지 1개의 크기는 2¹²(4,098)B이다.

전체 4GB의 가상 주소를 페이지 1개의 크기로 나누면 2²⁰(1,048,576)B이다.

 

페이지 테이블로 나타내려면 1,048,576개의 행과 각 행을 표현할 주소 공간 20bit가 필요하다.

즉, 페이지 테이블이 차지하는 공간은 1,048,576 X 20bit = 약 2.62B이다.

 

 

만약 페이지 크기가 2⁹(512)B이고, 2³²(4G)B의 주소공간을 가진다면

전체 페이지는 1,048,576에서 8,388,607으로 늘어나고,

페이지 테이블은 8,388,607개의 행과 23bit의 주소 공간이 필요하다.

 

즉, 페이지 테이블이 차지하는 공간은 8,388,607 X 23bit = 약 24.11B로

페이지 크기가 클 때보다 9.2배 크다.

 

 

중요한 점은 페이지 테이블이 메모리에 있는 모든 프로세스에 하나씩 필요하다는 것이다.

 

페이지 테이블의 크기를 줄이기 위해 한 페이지의 크기를 크게 하면 좋을 것이다.

하지만 무작정 페이지의 크기를 늘린다면 내부 단편화로 인해 낭비되는 공간이 많아진다.

 

 

 

 

 

 

 

 

* 해당 글은 '쉽게 배우는 운영체제'와 '운영체제' 책을 참고하여 작성하였습니다. 출처: 쉽게 배우는 운영체제 (조성호), 운영체제 10판 (Abraham Silberschatz)