서버/서버 이론

캐시 이론

잼잼재미 2025. 3. 18. 23:12

캐시란?


데이터 또는 계산 결과를 임시로 저장하는 기술로, 미래에 해당 데이터에 대한 요청이 있을 때, 더 빠르게 응답할 수 있도록 한다.

 

ex) 식당에서 점원이 주문을 받고, 바로 주문현황에 업데이트하지 않고, 잠시 기억했다가 다른 주문도 받고 함께 주문현황에 업데이트를 함. 이때, 기억하는 방법은 단순 기억, 메모장, 큰 메모장 등이 있다.

 

  • CPU는 여러개의 코어 (멀티 코어)로 이루어져 있음
  • 코어는 각각 ALU라는 연산장치와 기억을 하는 캐시장치로 이루어져 있음
  • 매번 RAM에 데이터를 갱신하는 것은 부담이 많이 됨
  • 캐시는 레지스터, L1 캐시, L2 캐시 처럼 다양한 기억 장치들이 있음 (레지스터 -> L1 캐시 -> L2 캐시 순으로 많은 기억을 함)

 

 

캐시 철학

  • Temporal Locality : 시간적으로, 최근에 사용된 변수가 또 다시 사용될 확률이 높음
  • Spacial Locality : 공간적으로, 최근에 사용된 변수의 인접한 변수가 다시 사용될 확률이 높음

ex) 식당에서 방금 주문한 손님이 다시 주문할 확률이 높고, 방금 주문한 손님과 합석한 손님이 다시 주문할 확률이 높음

 

 

멀티 쓰레드

멀티 쓰레드 환경에서 코어의 캐시가 항상 데이터를 갱신하는 것이 아니기 때문에, 데이터를 변경하더라도 또 다른, 코어의 캐시가 접근해서 문제가 발생할 수 있음.

 

ex) 식당의 손님이 점원에게 주문 변경을 요청했는데, 다른 점원이 주문을 받아서 주문에 대한 내용을 모름

'서버 > 서버 이론' 카테고리의 다른 글

Lock  (0) 2025.03.27
InterLocked  (0) 2025.03.24
메모리 배리어  (0) 2025.03.19
쓰레드 (Thread)  (0) 2025.03.03
프로세스와 쓰레드  (0) 2025.03.02