기말고사 -> 정의 쓰는 것 물어볼 것.
Demand Paging

Page Replacement Algorithms


- 컴퓨터 느리면 램 늘리라는 것과 똑같은 개념.
FIFO Algorithm


- 9 page faults (empty 때 채우는 것 3개 + 6개 수정)
Optimal Algorithm

- 앞으로 가장 오랫동안 사용되지 않을 페이지 교체
- 미래에 어떤 페이지가 오게 될지 아는 것은 불가능 (구현 불가능 알고리즘)
Least Recently Used (LRU) Algorithm

- 가장 오래 사용되지 않은 (least recently used) 페이지를 교체
- 많은 OS가 채택하고 있음. 가장 효율적이라고 평가 받음
Counting Algorithms

Thrashing

- 메모리 영역에 접근할때, 메모리에 페이지 부재(=페이지 폴트(Page fault)율이 높은 것을 의미 => CPU의 효율성을 떨어지게 함.
- 과도한 페이징 작업이 일어나는 경우를 의미
Thrashing의 원인

- 멀티 프로세싱을 계속 발생시키면 각각의 프로세스는 page fault가 발생함.
- 멀티 프로그래밍 정도가 과도하게 높아지면 ? -> 프로세스 프레임 개수 감소, page fault 증가/ CPU 이용률 감소 (효율성 떨어짐)
- 따라서 멀티프로그래밍을 감소시키는게 솔루션이 될 것.
Thrashing 해결의 solution

- 각 프로세스가 필요로 하는 최소한의 프레임 갯수를 보장해주어야 함.
- CPU의 효율성을 높이고 ,Thrashing 방지를 위해서는 degree of multiprogramming 을 낮춰야 함.
- 각 프로세스들에게 충분한 페이지 프레임을 할당하도록 해줘야 함.
- 주기억장치 내의 working set을 유지 ( 집중적으로 참조되는 페이지들을 모두 주기억 장치에 적재. page fault를 줄임)
- locality 이용.
Prepaging

TLB Reach
