Skip to content

Latest commit

 

History

History
59 lines (36 loc) · 2.48 KB

README.md

File metadata and controls

59 lines (36 loc) · 2.48 KB

Paging

1. 개요

페이징 기법으로 메모리를 관리할 때, 페이지 테이블 내 페이지가 가득차면 디스크에서 페이지를 가져와야 하는 상황이 왕왕 발생한다. 디스크는 속도가 느리기 때문에 Page fault가 발생할 상황을 가능한한 적게 만들어야 하는 데 이 때, 프로세서는 어느 페이지가 테이블에 할당되어져야 하는 지와 어느 페이지를 교체시킬 것인지에 대한 여러가지 정책이 있다.

2. FCFS (First In First Service)

먼저 들어온 페이지가 먼저 나가는 정책

  • 들어온 지 제일 오래된 페이지가 victim이 된다.
  • 간단하지만 성능이 그닥 좋지는 않다.

2. Reference 1-bit

페이지가 또 다시 할당되어 질 때(처음은 제외) reference bit에 1을 넣는다.
이 reference bit에 1이 있는 것은 victim이 되지 않는다.

  • 1bit의 주소기억만 활용하기 때문에 할당되어진 지 오래된 페이지도 1, 방금 재할당된 페이지도 1로 같아서 문제가 발생한다.

3. Count

페이지가 재차 할당되어질 때 마다 count bit를 1씩 증가시킨다.

  • Reference 1-bit보다 공간복잡도가 높다
  • 재할당 되어진 페이지들 중에서도 많이 참조된 페이지를 알 수 있다.

4. Second Chance

Clock이라는 시계라는 개념이 존재하는 데, Refernece 1-bit정책과 같이 페이지가 재참조될 때 Reference bit을 1로 대응시킨다.
그리고 Clock이 가리키는 시계바늘이 있는 데 이 Clock 포인터는 Reference bit를 참조하며 1이면 0으로 변환시키고 0이면 victim으로 삼는다.

  • 1bit의 주소공간을 가지는 데 비해 count방식보다 성능이 좋다.

5. Optimal

들어올 페이지에 대해 미리 알고있다는 게 전제가 되어야 한다.
페이지교체가 일어날 때 victim은 미리 들어올 페이지를 참조하고 가까운 미래에 나오는 페이지는 victim으로 제외함으로써 최상의 효율을 내는 정책이다.

  • 하지만 어떤 페이지가 들어올 지에 대한 정보는 알 수 없기 때문에 이상적인 이론일 뿐이다.

6. 프로그램 다루는 법

  1. 압축을 푼다
  2. index.html을 연다.
  3. Reference String에 숫자 혹은 문자열을 넣는다.
    • 1524384129903 혹은 ABDGKREOTDSASD
  4. 정책버튼을 누르고 결과값을 조회한다.
    • 주황색이 fault이고 보라색이 hit임을 의미한다.