- **`vm/vm.h` & `vm/vm.c` (구조 잡기)** - `struct frame`에 `list_elem`과 `owner` 필드 추가. - `vm.c` 전역 변수(`frame_table`, `clock_elem`, `lock`) 선언 및 `vm_init` 초기화. - `vm_get_frame`에 프레임 테이블 등록(`list_push_back`) 로직 추가. - **`vm/anon.c` (단순 작업자 구현)** - `vm_anon_init`: 스왑 디스크와 비트맵 생성. - `anon_swap_out`: 비트맵 빈 곳 찾기 -> 디스크 쓰기 -> 인덱스 저장. - `anon_swap_in`: 인덱스 확인 -> 디스크 읽기 -> 비트맵 비우기. - **`vm/vm.c` (관리자 구현)** - `vm_get_victim`: Clock 알고리즘으로 `accessed bit` 확인하며 희생자 선정. - `vm_evict_frame`: 희생자 `swap_out` 호출 후 프레임 리턴.
vm/vm.h&vm/vm.c(구조 잡기)struct frame에list_elem과owner필드 추가.vm.c전역 변수(frame_table,clock_elem,lock) 선언 및vm_init초기화.vm_get_frame에 프레임 테이블 등록(list_push_back) 로직 추가.vm/anon.c(단순 작업자 구현)vm_anon_init: 스왑 디스크와 비트맵 생성.anon_swap_out: 비트맵 빈 곳 찾기 -> 디스크 쓰기 -> 인덱스 저장.anon_swap_in: 인덱스 확인 -> 디스크 읽기 -> 비트맵 비우기.vm/vm.c(관리자 구현)vm_get_victim: Clock 알고리즘으로accessed bit확인하며 희생자 선정.vm_evict_frame: 희생자swap_out호출 후 프레임 리턴.