ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Page 교체 알고리즘
    CS 지식/운영체제(OS) 2023. 5. 1. 19:53

    1. FIFO

    - 가장 먼저 메모리에 올라온 페이지를 가장 먼저 내보내는 것.(메모리에 올라온 지 가장 오래된 페이지 교체)

    - 구현이 간단하지만 성능은 좋지 않음. 

    - Belady's Anomaly(page frame의 개수가 많아져도 page가 없는 page fault 발생이 오히려 늘어나는 현상) 발생 가능.

    https://code-lab1.tistory.com/60

     

    https://code-lab1.tistory.com/60

     

    2. Optimal Page Replacement(최적 페이지 교체)

    - 앞으로 가장 오랫동안 사용하지 않을 페이지를 교체하는 알고리즘

    - 가장 page-fault 발생이 적을 알고리즘

    - Belady's Anomaly 발생 X

    - process가 앞으로 사용할 page를 미리 알아야 해서 실제로 구현이 거의 불가능. 

    https://code-lab1.tistory.com/60

     

    3. LRU(Least Recently Used) 페이지 교체

    - 가장 오랫동안 사용하지 않은 페이지를 교체하는 알고리즘

    - 최적 알고리즘과 비슷한 효과. 성능이 좋은 편이라서 많은 OS가 채택하는 알고리즘

    https://code-lab1.tistory.com/60

     

    4. LFU(Least Frequently Used) 페이지 교체

    - 참조횟수가 가장 적은 페이지를 교체하는 알고리즘

    - 교체 대상이 여러 개면 가장 오랫동안 사용하지 않은 페이지 교체

    - 초기에 한 페이지를 집중해서 참조하다가 이후 다시 참조하지 않는 경우 문제가 될 수 있음.

    앞으로 사용하지 않아도 초기에 사용된 참조 횟수가 높아 메모리에 계속 남아있기 때문. 

    https://code-lab1.tistory.com/60

     

     

    5. MFU(Most Frequently Used)

    - 참조 횟수가 가장 많은 페이지를 교체

    - 참조횟수가 적은 페이지가 비교적 최근에 사용되어서 앞으로 사용될 가능성이 높다는 판단

    https://medium.com/pocs/%ED%8E%98%EC%9D%B4%EC%A7%80-%EA%B5%90%EC%B2%B4-page-replacement-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-650d58ae266b

     

    LFU와 MFU는 실제로 잘 사용되지 않음. 

    구현에 상당한 비용이 들고, LRU만큼 제대로 유사하게 구현해내지 못하기 때문

     

     

    Reference

    'CS 지식 > 운영체제(OS)' 카테고리의 다른 글

    paging vs segmentation  (0) 2023.05.23
    Process 동기화(semaphore vs mutex vs monitor)  (0) 2023.04.26
    IPC(Interprocess Communication) protocol  (0) 2023.04.23
    Process vs Thread  (0) 2023.04.19
Designed by Tistory.