어떤 페이지를 스왑 아웃/ 스왑 인 할 것인가를 결정하는 알고리즘
k번 참조해야 lru 리스트에 끼워줌이란 뜻
리눅스에서는 LRU/2를 사용
active list 와 inactive list를 사용
Active bit / Referenced bit 사용
0 0 //inactive no reference
0 1 //inactive reference
1 0 //active no reference
리눅스에서는 LRU/2를 사용
active list 와 inactive list를 사용
Active bit / Referenced bit 사용
0 0 //inactive no reference
0 1 //inactive reference
1 0 //active no reference
1 1 //active reference
function()
page_referenced() : 주기적으로 호출되며 페이지가 참조되지 않으면 비트를 제거, (1,1)->(1,0) , (0,1)->(0,0)
refill_inactive_zone() : 주기적으로 호출되는 함수로 active list에 있는 페이지가 일정시간 동안 접근되지 않으면 inactive list로 옮기는 역할을 수행
function()
page_referenced() : 주기적으로 호출되며 페이지가 참조되지 않으면 비트를 제거, (1,1)->(1,0) , (0,1)->(0,0)
refill_inactive_zone() : 주기적으로 호출되는 함수로 active list에 있는 페이지가 일정시간 동안 접근되지 않으면 inactive list로 옮기는 역할을 수행
lru_cache_add() | inactive list에 페이지를 추가 |
lru_cache_add_active() | active list에 페이지를 추가 |
make_page_accessed() | Access Bit에 대한 처리, inactive->active list로 페이지 이동 |
page_referenced() | Referenced Bit에 대한 처리 |
refill_inactive_zone() | LRU 정책에 따른 캐시 정리, inactive->active list페이지 이동 |