본문 바로가기
OS/os 공부

10-5. VM. Management 시 기타 고려해야 할 사항들

by Success T.H.I.E.F 2022. 1. 12.

Page size

페이징 시스템에서 메모리는 페이지단위로 나누어져 있다고했다.

그렇다면 페이지의 크기는 큰게 무조건 좋을까?

 

공학에서 무조건 좋기만 한 답은 없는것 같다. 페이지 사이즈 역시 시스템 특성에 따라 다르다.

적당한게 좋다 :)

HW가 발전하는 경향에 따라 페이지 사이즈는 점점 커지는 경향이다.

 

일반적인 page sizd는 이렇다고 한다. 

 

 

페이지 크기가 작다면 페이지 수가 많아져 커널이 관리하는 페이지가 많아 상대적으로 High overhead를 가질것이고

페이지들을 불러오는데도 시간이 증가하므로 I/O시간이 증가할 것이다. 또한 잦은 페이지 교체로 page fault가 증가한다.

하지만 페이지 크기가 작은만큼 내부단편화가 감소할 것이고 locality는 향상될 것이다.

 

반면 페이지 크기가 크다면 페이지 수는 적어 커널이 관리하는 페이지가 적어지므로 상대적으로 low overhead를 가질 것이며 I/O시 불러오는 페이지 수가 적어지므로 시간또한 감소할 것이다. 페이지의 변환이 적으니 page fault도 감소할 것이다. 하지만 페이지 크기가 커지면서 불필요한 공간의 낭비인 내부 단편화가 증가할 것이고 locality는 저하할 것이다.

 

CPU 와 Memorysize가 발전하고 있지만 그들의 발전속도 차이에서  CPU의 발전 속도가 빨르기 때문에 상대적으로 Page fault의 처리비용이 증가하기 때문에 이를 줄여주기 위해  페이지 사이즈의 크기는 커지는 경향이 있다.

 

 

Program Restructuring

가상 메모리 관리는 OS가 해줄텐데 왜 배워야 할까?

시스템의 특성을 잘 이해한다면 프로그램을 더 효율적으로 만들 수 있다.

 

즉 아래 예제에서 볼 수 있듯 가상 메모리 시스템의 특성에 맞도록 프로그램을 재구성 할 수있다.

 

이렇게 사용자가 가상 메모리 관리 기법에 대해 이해하면 프로그램의 구조를 변경하셔 성능을 높일 수 있다.

 

TLB Reach

TLB Reach는 TLB를 통해 접근 할 수 있는 메모리의 범위/양 을 의미하며

TLB Reach = (The number of entries)*(the page size)

로 구할 수 있다.

 

TLB리치가 높으면 TLB의 hit ratior가 높아진다.

 

TLB hit ratio를 높이려면?

TLB의 크기를 증가시키는 것이지만 비싸다.

page의 크기를 증가 시켜 TLB의 리치를 키울 수있지만 크기만 키웠을때의 단점이 있으므로 다양한 page size를 지원(os의 지원필요) 함으로써 hit ratio를 증가 시킬 수 있다.