운영체제 | Cache

성수당·2025년 9월 12일

운영체제

목록 보기
15/31
post-thumbnail

🥔 Cache란?

캐시(Cache) 는 컴퓨터 시스템에서 데이터 접근 속도를 높이기 위해 사용하는 임시 저장 공간이다.
CPU와 메모리 사이, 혹은 디스크와 메모리 사이처럼 느린 계층과 빠른 계층 사이에 위치하며, 자주 사용하는 데이터를 저장해 재사용 시 빠른 응답을 가능하게 만든다.

🥔 왜 캐시가 필요한가?

CPU의 연산 속도는 점점 빨라지는 반면, 메모리(특히 DRAM) 접근 속도는 상대적으로 느리다.
속도 차이(Latency Gap) 를 줄이기 위해, CPU와 메모리 사이에 고속의 캐시 메모리를 둔다.

핵심 목적: “자주 쓰는 데이터를 가까운 곳에 저장해서 더 빠르게 가져오자!

🥔 캐시 계층 구조 (Cache Hierarchy)

캐시는 여러 레벨로 나뉘며, 일반적으로 다음과 같은 구조를 가진다:

계층위치크기속도비용
L1 CacheCPU 내부수십 KB매우 빠름높음
L2 CacheCPU 내부/외부수백 KB~MB빠름중간
L3 CacheCPU 공유수 MB느림낮음
RAM메인 메모리수 GB더 느림더 낮음
Disk보조 기억장치수 TB매우 느림매우 낮음

L1 → L2 → L3 → RAM → 디스크 순서로 접근 속도는 느려지고, 용량은 커진다.

🥔 캐시의 작동 원리

🔸 지역성(Locality)의 원리

캐시는 지역성(Locality) 개념에 기반하여 동작한다:

  • 시간 지역성 (Temporal locality): 최근에 접근한 데이터는 다시 접근할 가능성이 높음
  • 공간 지역성 (Spatial locality): 근처 데이터도 함께 접근될 가능성이 높음

예: 배열을 순차적으로 접근하면 다음 인덱스도 곧 사용할 가능성이 높음 → 미리 가져다 놓자!

🥔 캐시 적중(Cache Hit)과 실패(Cache Miss)

용어설명
Cache Hit원하는 데이터가 캐시에 있어서 빠르게 접근 가능한 경우
Cache Miss캐시에 원하는 데이터가 없어 메모리 또는 디스크에서 다시 가져와야 하는 경우

캐시의 성능은 Hit Ratio(적중률) 에 따라 결정되며, 이는 다음과 같이 계산된다:

Hit Ratio = 캐시 히트 수 / 전체 접근 수

높은 적중률을 유지하는 것이 캐시 설계의 핵심이다.

🥔 캐시 매핑 기법 (CPU 캐시 기준)

1. Direct Mapping (직접 매핑)

  • 하나의 메모리 블록이 오직 하나의 캐시 라인에만 대응
  • 구현 간단하지만 충돌이 많아질 수 있음

2. Fully Associative Mapping (완전 연관)

  • 모든 메모리 블록이 모든 캐시 라인에 들어갈 수 있음
  • 유연하지만 검색 시간이 오래 걸림

3. Set Associative Mapping (집합 연관)

  • 캐시를 여러 Set으로 나누고, 각 Set에 여러 블록 저장 가능
  • Direct와 Fully의 절충안 (현대 CPU에서 주로 사용)

🥔 캐시 교체 알고리즘 (Replacement Policy)

캐시 용량은 제한적이므로, 새로운 데이터를 넣기 위해 기존 데이터를 제거해야 할 때 사용되는 정책

알고리즘설명
FIFO먼저 들어온 데이터를 먼저 제거
LRU가장 오래 사용되지 않은 데이터를 제거
LFU가장 적게 사용된 데이터를 제거
Random랜덤하게 하나를 선택하여 제거

LRU(Least Recently Used) 가 가장 널리 사용됨

🥔 CPU Cache와 OS의 관계

  • CPU 캐시는 하드웨어 수준에서 관리되며, 운영체제가 직접 제어하지는 않음
  • 그러나 페이지 교체, 디스크 캐시, 파일 시스템 캐시(buffer cache) 등은 OS 차원에서 관리됨
  • 운영체제는 캐시를 통해 디스크 I/O를 줄이고 성능을 향상시킴

🥔 기타 캐시 예시

분야캐시 종류예시
브라우저웹 캐시이미지, JS, CSS 캐시
파일 시스템디스크 버퍼 캐시read() 이후 자주 읽는 파일 페이지 캐시
DBMS쿼리 캐시, 인덱스 캐시MySQL InnoDB Buffer Pool 등
네트워크DNS 캐시google.com → IP 매핑 캐시

🥔 마무리

  • 캐시는 속도와 효율을 극대화하기 위한 핵심 컴퓨터 구조
  • CPU 내부부터 OS, 응용 프로그램, 네트워크까지 다양한 계층에서 사용됨
  • 캐시의 원리와 동작 방식을 이해하면 성능 최적화, 시스템 설계에 큰 도움이 된다
profile
말하는 감자🥔

0개의 댓글