ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 23. 페이지 크기
    운영체제/운영체제 정리 2020. 2. 18. 17:38

    Demang paging 등 프로세스를 일정 크기로 자르고 이 하나하나를 페이지라고 한다고 하였다.

     

    이 페이지들의 크기는 어떻게 나눌까?

     

    페이지 크기는 일반적으로 4KB ~ 4MB이다. 하나의 프로세스의 용량이 커지면서 점점 커지고 있다.

     

     

    페이지 크기는 큰 게 좋을까 작은 게 좋을까?

     

    그 기준을 여러 측면에서 알아보자.

     

    1. 내부단편화

     

         -  페이징을 통해 프로세스를 하나하나 나누어서 외부 단편화는 막을 수 있지만 마지막 페이지는

      최대 페이지 크기 -1 만큼 메모리가 버려지게 된다. 

     

        - 이 내부 단편화를 최소화하기 위해서는 페이지의 크기는 작은 게 좋겠다.

     

    2. page in/out 시간

     

      - 긴 page fault 시간을 최소화하려면 페이지 크기는 큰 게 좋다. page in/out을 하며 디스크에 헤더를

        움직이는데 많은 시간이 걸린다고 하였는데 읽어오는 페이지가 1kb 밖에 안된다면 1mb와 비교하여

        헤더를 움직이는 시간은 똑같지만 들고 오는 내용은 많은 차이가 나게 되기 때문이다.  따라서 그다음

        Page fault를 예방할 수 있는 것.

     

     

    3.  페이지 테이블 크기

       

     - CPU가 어떤 주소를 내면 그 주소가 page 번호와 displacement로 나누어지는데 그 페이지 번호에 따라

       페이지 테이블 엔트리가 들어가게 된다.  따라서 페이지의 크기가 클수록 페이지 엔트리 크기는 작아지게 되고

       페이지 테이블의 크기가 작을수록 비용면에서 좋게 된다.

     

    - 따라서 페이지 크기가 클수록 비용면에서 좋다.

     

     

    4. Memory Resolution

     

    - 페이지를 가져올 때는 지역성의 원리에 따라 여러 페이지를 가져오게 되는데 이때 페이지의 크기가 크다면

     필요치 않은 페이지를 가져올 수도 있게 된다. 이는 메모리면에서 손해이다. 따라서 페이지 크기가 작을수록 좋다.

     

     

    5.  Page fault 발생 확률

     

    -  Page fault가 적게 일어나려면 페이지 크기는 클수록 좋다. 앞서 말한 지역성의 원리 때문인데 CPU가

    100번지를 낸다면 일반적으로 그다음은 104, 108, 112번지를 읽을 확률이 많다.  따라서 100번지에 fault

     가 일어나면 그 지역에 있는 page들을 함께 가져오는 게 좋은데  페이지의 크기가 작다면 또 fault가

    일어나게 될 것.

     

    - 따라서 페이지 크기가 클수록 페이지 fault는 줄어든다.

     

     

     

    결론적으로 척도에 따라 다르게 되는데 일반적으로 메모리는 점차 커지고 프로세스도 커지고 있는 상황에서

     

    페이지의 크기 역시 커지는 경향이다.

     

     

     

     

     

    TLB

     

    페이지 테이블은 CPU안에 넣으면 레지스터가 되어 빠르지만 용량이 적고 메모리에 넣는다면 속도가 너무 느리다고

     

    하였다.  따라서 CPU와 메모리 둘 다 아닌 별도의 chip으로 만드는 것을 TLB 캐시라고 한다. (Translator Lookaside buffer )

    별도의 칩으로 만드는 게 일반적인 방법이지만 CPU와 메모리 사이에는 l1, l2 등 tlb 뿐 아니라 캐시 메모리도 있는데

     

    기술이 발전하면서 대부분의 cpu들은 캐시메모리들을 가진 형태로 바뀌게 된다. 마찬가지로 TLB 역시 CPU안에

     

    들어가게 되고  따라서 오늘날은 캐쉬 칩 TLB 칩 모두 CPU 안에 있는 형태이다.

     

     

    '운영체제 > 운영체제 정리' 카테고리의 다른 글

    22. 프레임 할당  (0) 2020.02.17
    21. 페이지 교체 알고리즘  (0) 2020.02.04
    20. 페이지 교체  (1) 2020.02.02
    19. 가상 메모리  (0) 2020.01.30
    18. 세그먼테이션 (Segmentation)  (0) 2020.01.27
Designed by Tistory.