Swap Disk

Anonymous Page를 구현하기 위한 필수 개념 Swap Disk에 대해 알아보자

스왑 디스크(Swap Disk)의 기본 개념

개념설명
목적물리 메모리(RAM)가 부족할 때, 사용하지 않는 페이지(4KB 단위)를 SSD/HDD같은 보조 저장장치에 임시로 저장해 두는 공간
형태① 스왑 파티션 (독립된 블록 디바이스)
② 스왑 파일 (일반 파일시스템 위 파일)
구분페이지가 RAM에 있으면 present 상태, 스왑으로 나가면 swapped 상태(PTE의 present 비트 = 0), 나머지 비트로 스왑 슬롯 번호 등 메타데이터 저장
근거가상메모리 구현에서 페이지 부재(page fault)시 디스크 I/O(DMA)로 교체

동작 흐름

  1. Page Fault

    • CPU가 PTE의 present 비트를 확인 → 0이면 트랩 → 커널의 page-fault 핸들러 진입
  2. 물리 프레임 할당 실패

    • 모든 프레임이 사용 중이면 페이지 교체(page replacement) 정책(LRU/Clock 등)으로 희생 페이지 선정
  3. swap-out

    1. 스왑 비트맵(bitmap)에서 빈 슬롯 검색

    2. 페이지 내용을 8 섹터(512B x 8 = 4KB)단위로 block_write()

    3. PTE present = 0, swapped flag · 슬롯 번호 기록

  4. swap-in(해당 가상주소 재접근 시)

    1. 새 프레임 확보 후 block_read()로 8섹터 읽음

    2. PTE present = 1, 스왑 메타데이터 초기화, TLB flush

    3. 비트맵 슬롯 free

  5. I/O 세부

    • 실제 전송은 디스크 컨트롤러가 DMA로 처리 → 완료 시 인터럽트 발생 → 커널이 잠들어 있던 프로세스 깨움

© 2022 JeongHwan Yun.