Chapter10. 가상 메모리 관리(2)

Date:     Updated:

카테고리:

태그:

유튜브에 있는 김덕수 교수님의 Operating System 강의를 듣고 정리한 내용입니다.
중간에 등장하는 ppt 내용들은 모두 강의자료를 캡처한 것입니다.


🔧 Replacement strategies (교체 기법)

Locality

10-5

  • 프로세스가 프로그램/데이터의 특정 영역을 집중적으로 참조하는 현상
    • Loop structure
    • Array structure
    • 등등…
  • 예시의 경우 4,7,8,6 4개의 page만을 집중적으로 접근


🔧 Fixed allocation

MIN algorithm (OPT algorithm)

Replacement Example
10-6 10-7
  • 앞으로 가장 오랫동안 참조되지 않을 page 교체
  • Minimize page fault frequency (Optimal solution)
    • Proved
  • 실현 불가능 (Inrealizable)
    • Page reference string을 미리 알고 있어야 함
  • 교체 기법의 성능 평가 도구로 사용됨


Random algorithm

  • 무작위로 교체할 page 선택
  • Low overhead
  • No policy


FIFO algorithm

Replacement Example
10-8 10-9
  • First In First Out : 가장 오래된 page를 교체
  • Page가 적재된 시간을 기억하고 있어야함
  • 자주 사용되는 page가 교체될 가능성이 큼
    • Locality에 대한 고려가 없음
  • FIFO anomaly
    • 더 많은 page frame을 할당 받음에도 불구하고 page fault의 수가 증가하는 경우가 있음


LRU (Least Recently Used) algorithm

Replacement Example
10-10 10-11
  • 가장 오랫동안 참조되지 않은 page를 교체
  • Page 참조할 때마다 시간을 기록해야 함
  • Locality에 기반을 둔 교체 기법
  • MIN algorithm에 근접한 성능을 보여줌
  • 실제로 가장 많이 활용되는 기법
  • 단점
    • 참조할 때마다 시간 기록 (overhead)
      • 정확한 시간 대신 순서만 기록하는 등 간소화 가능
    • Loop 실행에 필요한 크기보다 작은 수의 page frame이 할당 된 경우, page fault 수가 급격히 증가
      • Allocation 기법으로 해결해야 함


LFU (Least Frequently Used) algorithm

Replacement Example
10-12 10-13
  • 참조 횟수가 가장 적은 page를 교체
  • Page 참조할 때마다 참조 횟수를 누적시켜야 함
    • LRU 대비 적은 overhead
  • 단점 : 최근 적재된 참조될 가능성이 높은 page가 교체될 수 있음


NUR (Not Used Recently) algorithm

10-14

  • LRU와 비슷
    • 시간이 아닌 참조 여부만 다짐
    • LRU보다 적은 overhead & 비슷한 성능
  • Bit vector 사용하면 편함!
    • reference bit 주기적으로 초기화


Clock algorithm

Replacement Example
10-15 10-16
  • Reference bit 주기적인 초기화 없음
  • Page frame들을 순차적으로 가리키는 pointer(시계바늘)를 사용하여 교체될 page를 결정
    • 현재 가리키고 있는 page의 reference bit (r) 확인
    • r = 0인 경우 교체 page로 결정
    • r = 1인 경우 reference bit 초기화 후 pointer 이동
  • 먼저 적재된 page가 교체될 가능성이 높음
    • FIFO와 유사
  • Reference bit을 이용하여 교체 page 결정
    • LRU (NUR)과 유사
    • 더 적은 overhead


Second chance algorithm

Replacement Example
10-17 10-18
  • Update bit (m)도 함께 고려 (write-back 필요 없는 page 먼저 교체)
    • (0,0) : 교체 page로 결정
    • (0,1) → (0,0) : write-back(cleaning) list에 추가 후 이동
    • (1,0) → (0,0) 후 이동
    • (1,1) → (0,1) 후 이동


Other algorithms

  • Additional reference bits algorithm
    • reference bit 여러 개 정의
  • MRU (Most Recently Used) algorithm
    • LRU와 정반대 기법
  • MFU (Most Frequently Used) algorithm
    • LFU와 정반대 기법


🔧 Variable allocation

Working Set (WS) algorithm

10-19

Working set

  • 프로세스가 일정시간(window size) 동안 참조된 page들의 집합


Working set memory management

  • Locality 기반
  • Working set을 메모리에 항상 유지
    • Page fault rate (thrashing) 감소
  • Window size는 고정
    • memory allocation은 가변
    • size 값이 성능을 결정짓는 요소


process working set size
10-21 10-22
  • Working set은 시간에 따라 크기가 변함
  • 특징
    • 적재되는 page가 없더라도, 메모리를 반납하는 page가 있을 수 있음
    • 새로 적재되는 page가 있더라도, 교체되는 page가 없을 수 있음
  • 단점
    • window 계속 쳐다봐야 함
    • page fault가 없더라도 메모리 지속적으로 관리해야 함


10-23

  • window size가 너무 크면 page fault는 감소하지만, 메모리를 비효율적으로 쓰게 됨
  • 적당하게 유지해야 함


Page Fault Frequency (PFF) algorithm

메모리에 적재할 page frame 갯수를 page fault rate에 따라 결정

  • low page fault rate (long inter-fault time)
    • 프로세스에게 할당된 page frame 수 감소
  • high page fault rate (short inter-fault time)
    • 프로세스에게 할당된 page frame 수 증가
  • page fault 발생시에만 갱신 (low overhead)


Criteria for page fault rate

  • threshold value t(타우) 설정
  • IFT : inter-fault time
    • page fault와 page fault 사이의 간격
  • IFT > t (low page fault rate)
    • 최근 IFT 동안 참조된 page들만 유지
    • 나머지 page들은 메모리에서 내림
    • 메모리 할당은 유지 및 감소
  • IFT < t (high page fault rate)
    • 기존 page들 유지
    • 현재 참조된 page들 추가 적재
    • 메모리 할당 증가


Variable MIN (VMIN) algorithm

  • variable allocation 기반 교체 기법 중 optimal algorithm
  • Page reference string을 미리 알고 있어야 함
  • 실현 불가능한 기법
  • 성능 평가에 이용


🔧 Page size

Page 크기에 따른 장단점이 있지만, 가장 크리티컬한 문제는 I/O bottleneck 현상이다. 최근 나오는 CPU는 연산 속도가 너무 빠르기 때문에 데이터 가져오는 속도가 이를 못 따라온다. 따라서 I/O 시간을 단축시키는 것이 중요하기 때문에 Page 크기는 점점 커지는 경향이다.


맨 위로 이동하기

OS 카테고리 내 다른 글 보러가기

댓글 남기기