본문 바로가기

운영체제/Demand Paging

Demand Paging - (2) Demand Paging key issue

Demand Paging - (2) Demand Paging key issue

Page selection policy
- 디스크에서 페이지를 가져오는 정책
1. Demand paging : 요청이 있을 때(on demand) 디스크에서 메인 메모리로 페이지 로드
2. Pre-paging : 미래에 사용될 것으로 예측되는 페이지를 미리 디스크에서 메인 메모리로 로드
- 효과적인 pre-paging방안? spatial locality에 기반하여 page fault가 발생한 페이지 근처에 있는 페이지들을 메인 메모리로 로드한다.

Page replacement policy 
- 메인 메모리가 꽉 찼을 때, 어떤 페이지를 swap-out할 것인가를 결정하는 정책
1. Random : 하드웨어 적으로 랜덤하게 victim page를 결정
2. FIFO : 제일 먼저 swap-in된 page를 victim page로 결정
3. LRU(least recently used) : 최근에 가장 참조되지 않았던 페이지를 victim page로 결정
- 이것을 구현하기 위해 page table에 reference bit을 두어 페이지 reference 여부를 판단함

Page replacement style
1. Global replacement : 페이지 victim 정책을 global단위로 관리.
2. Per-process replacement : 페이지 victim 정책을 각 프로세스 단위로 관리.

Q. per-process replacement에서 효과적인 adoptive allocation을 위해 process가 현재 memory가 부족한지 아닌지를 판단하는 방법은?
- 단위 시간 동안 page fault가 발생한 횟수를 확인한다.