2017년 5월 21일 일요일

17. 페이지 크기


* 가상 메모리의 요구 페이징에서 페이지 크기는 어느 정도가 적당한가?
  : 명확히 정해진 크기가 있지는 않다. 즉, 꼭 커야 좋다거나 작아야 좋다는 결론을 얻을 수는 없다.

  : 그러나 하나의 프로세스 크기가 점차 커지고 있기 때문에 오늘날 페이지 크기도 점차 크게 설정하는 경향이 있다. 즉, 프로세스가 커지면 페이지도 커지게 된다.
  : 512 byte, 1 Kb, 2 Kb, 4Kb → 4MB, 16 MB

 * 페이지 크기를 결정하는 기준
   : 내부 단편화(Internal Fragmentation)
   : Page-in, page-out 시간 - I/O Overhead
   : 페이지 테이블(Page Table) 크기
   : 메모리 해상도(Memory resolution) - 필요한 내용만 메모리에 담을 수 있는 정도
   : 페이지 부재(Page fault) 발생 확률

 * 페이지 크기가 작을 수록 좋은 기준
   : 내부 단편화
     - 페이지가 작을 수록 버려지는 메모리의 내부 공간(내부 단편화)도 작아진다.
   : 메모리 해상도
     - 페이지가 크면 불필요한 영역까지 함께 적재될 수 밖에 없다. 반대로 적을 수록 필요한 부분만 메모리에 적재되는 정밀도가 증가한다.

 * 페이지크기가 클 수록 좋은 기준
   : Page-in, Page-out 시간
     - I/O 시간은 대부분 디스크의 해드 이동시간이다. 페이지가 클 수록 한 번 이동해서 많은 데이타를 읽어 올 수 있는 장점이 있다.
   : Page Table Size
     - 페이지가 클 수록 페이지 테이블의 열수는 적게 된다.
   : Page Fault 발생 확률
     - 페이지가 클 수록 하나의 페이지 내에 많은 내용을 담고 있기 때문에 페이지 재사용 가능성이 높게 되고 메모리 국지성에 의해 페이지 부재도 덜 발생하게 된다.


* 페이지 테이블(Page Table)
  : 페이지 테이블은 뭘로 만들 것인가?
    - CPU의 레지스터로 구현한다면, 너무 비싸다
    - Memory내에 둔다면 너무 느려진다.
    - 따라서 별도의 Chip(TLB: translation look a side buffer)으로 만든다.


  : 따라서 페이지 테이블은 별도의 chip(TLB 캐시)으로 제작되었다.
  : 그러나 오늘날 반도체 기술의 발달로 CPU 내에 함께 내장되어져 있다.

댓글 없음:

댓글 쓰기