LISTORY
[윈도우즈 시스템 프로그래밍] 캐쉬와 캐쉬 알고리즘 본문
뇌를 자극하는 윈도우즈 시스템 프로그래밍 책 관련 유투브 강의 정리이다.
오늘 정리할 내용은 캐쉬와 캐쉬 알고리즘 내용이다.
YouTube 주소 : 캐쉬와 캐쉬 알고리즘
캐쉬와 캐쉬 알고리즘
프로그램의 시작과 끝이 있을 때, 프로그램의 흐름은 지역적인 특성을 지닌다.
다시 말하자면 프로그램의 흐름은 산발적으로 실행되지 않는다. 실행하던 그 주변을 연속하여 실행하는 경향이 있다.
이건 프로그래머가 프로그램을 의도적으로 산발적으로 짠다 해도 마찬가지이다.
모든 프로그램은 지역적인 특성을 지닌다.
즉, 이 말은 캐쉬가 도움이 된다는 듯이기도 하다.
CPU에서 필요로 하는 데이터가 캐쉬에 있을 확률은 90%가 넘는다. 즉, 캐쉬는 크면 클 수록 좋다.
또한, 좋은 프로그램은 지역성이 좋다
캐쉬를 원활히, 아주 많이 사용할 수 있기 때문이다.
⊙ 성능향상과 캐시 메모리
성능향상과 캐쉬메모리는 밀접한 관계가 있다. 이는 Locality, 즉 지역성으로 인한 것이다.
Locality에는 두 가지가 있다.
Locality
- Temporal Locality : 반복접근
- Spatial Locality : 주변 접근
Temporal Locality는 변수 int a를 선언하였을 때, 이 a에 또다시 접근한 확률이 높다는 것이고
Spatial Locality는 int a, int b 순차적 선언하였을 경우, a에 접근했을 때, b에 접근할 확률이 높다는 것이다.
이 두가지 특성을 캐쉬메모리가 갖는다.
보통 캐쉬메모리하면 반복접근에 대해 많이 생각하는 경향이 있는데, 실제로는 주변접근이 더 중요하다.
메인메모리, 하드메모리 L1, L2 캐쉬가 존재한다.
그림에서 블럭의 크기를 봐라.
하드디스크와 메모리 사이에서 메모리가 올때?
'IT > 윈도우 프로그래밍' 카테고리의 다른 글
[윈도우즈 시스템 프로그래밍] 가상 메모리(2) (0) | 2018.10.14 |
---|---|
[윈도우즈 시스템 프로그래밍] 가상 메모리(1) (0) | 2018.10.14 |
[윈도우즈 시스템 프로그래밍] 메모리 계층 (0) | 2018.10.12 |
[윈도우즈 시스템 프로그래밍] 쓰레드 풀의 구현 (0) | 2018.09.29 |
[윈도우즈 시스템 프로그래밍] 쓰레드 풀에 대한 이해 (0) | 2018.09.29 |