LRU/2 알고리즘을 도입해도, 페이지를 추가/이동할 때마다 리스트를 조작하는 것은 비효율적임으로 한번에 14개까지 저장할 수 있는 pagevec 구조체를 이용한다.
struct pagevec{
unsigned long nr;
unsigned long cold;
struct page *pages[PAGEVEC_SIZE];
}
struct pagevec{
unsigned long nr;
unsigned long cold;
struct page *pages[PAGEVEC_SIZE];
}
add_page_to_active_list() | active list에 페이지를 추가 |
add_page_to_inactive_list() | inactive list에 페이지를 추가 |
del-page_from_active_list() | active list에 페이지를 제거 |
del_page_from_inactive_list() | inactive list에 페이즈를 제거 |
del_page_from_lru() | active / inactive list 페이지를 제거 |
'OS이야기' 카테고리의 다른 글
프로세스 관리 - 파일시스템 & 파일 (0) | 2012.01.04 |
---|---|
C 컴파일러 과정 (0) | 2012.01.04 |
LRU/k (0) | 2012.01.03 |
mm_struct, vm_area_struct (0) | 2012.01.03 |
kmap() 함수 (0) | 2012.01.03 |