콘텐츠로 이동

캐시 (Cache)

Jan 25, 2026

캐시는 정보가 사용될 때 더 빠른 저장 시스템에 임시로 복사하여, 필요한 정보를 먼저 캐시에서 확인하고 있으면 직접 사용하는 컴퓨터 시스템의 중요한 원리이다.

  1. 정보가 필요할 때 먼저 캐시에 있는지 확인
  2. 캐시 히트: 캐시에 있으면 캐시에서 직접 정보 사용
  3. 캐시 미스: 캐시에 없으면 소스에서 정보 사용하고, 곧 다시 필요할 것이라는 가정 하에 캐시에 복사
캐시 유형설명관리자
레지스터주 메모리를 위한 고속 캐시 제공컴파일러
명령어 캐시다음에 실행될 것으로 예상되는 명령어 보관하드웨어
데이터 캐시메모리 계층구조 내 고속 데이터 캐시하드웨어
레벨이름일반적 크기접근 시간(ns)관리자
1레지스터< 1KB0.25-0.5컴파일러
2캐시< 16MB0.5-25하드웨어
3주 메모리< 64GB80-250운영체제

캐시는 크기가 제한되어 있으므로 캐시 관리는 중요한 설계 문제:

  • 캐시 크기와 교체 정책(replacement policy)의 신중한 선택이 성능을 크게 향상시킬 수 있음
  • 저장 계층 간 정보 이동:
    • 캐시 → CPU/레지스터: 보통 하드웨어 기능 (OS 개입 없음)
    • 디스크 → 메모리: 보통 운영체제가 제어

디스크 데이터를 메인 메모리에 캐싱:

  • 파일 I/O 요청 시 커널이 먼저 버퍼 캐시 확인
  • 캐시 히트 시 물리적 디스크 I/O 회피 가능
  • 쓰기 요청은 버퍼에 수 초간 축적 후 일괄 디스크 기록 (delayed write)
구분설명
Buffer유일한 데이터 복사본일 수 있음
Cache정의상 다른 곳에 원본이 반드시 존재

디스크의 파일 B에 있는 정수 A를 1 증가시키려면:

  1. A가 있는 디스크 블록을 주 메모리로 복사하는 I/O 연산 발행
  2. A를 캐시로, 그 다음 내부 레지스터로 복사
  3. 내부 레지스터에서 증가 연산 수행
  4. 새 값이 하드 디스크에 다시 쓰여질 때만 모든 저장 시스템에서 A 값이 동일해짐
  • Operating System Concepts, 10th Edition, Chapter 1, p.30-32